1
1
"use client"
2
2
3
+ import React , { useEffect , useRef , useState } from "react"
3
4
import { ProductProvider } from "@lib/context/product-context"
4
5
import { useIntersection } from "@lib/hooks/use-in-view"
6
+ import ProductInfo from "@modules/products/templates/product-info"
5
7
import ProductTabs from "@modules/products/components/product-tabs"
6
8
import RelatedProducts from "@modules/products/components/related-products"
7
- import ProductInfo from "@modules/products/templates/product-info"
8
- import React , { useRef } from "react"
9
- import ImageGallery from "../components/image-gallary"
10
- import MobileActions from "../components/mobile-actions"
9
+ import ImageGallery from "@modules/products/components/image-gallary"
10
+ import MobileActions from "@modules/products/components/mobile-actions"
11
+ import ProductOnboardingCta from "@modules/products/components/product-onboarding-cta"
11
12
import { PricedProduct } from "@medusajs/medusa/dist/types/pricing"
12
13
13
14
type ProductTemplateProps = {
14
15
product : PricedProduct
15
16
}
16
17
17
18
const ProductTemplate : React . FC < ProductTemplateProps > = ( { product } ) => {
19
+ const [ isOnboarding , setIsOnboarding ] = useState < boolean > ( false )
20
+
18
21
const info = useRef < HTMLDivElement > ( null )
19
22
20
23
const inView = useIntersection ( info , "0px" )
21
24
25
+ useEffect ( ( ) => {
26
+ const onboarding = window . sessionStorage . getItem ( "onboarding" )
27
+ setIsOnboarding ( onboarding === "true" )
28
+ } , [ ] )
29
+
22
30
return (
23
31
< ProductProvider product = { product } >
24
32
< div className = "content-container flex flex-col small:flex-row small:items-start py-6 relative" >
@@ -29,6 +37,7 @@ const ProductTemplate: React.FC<ProductTemplateProps> = ({ product }) => {
29
37
className = "small:sticky small:top-20 w-full py-8 small:py-0 small:max-w-[344px] medium:max-w-[400px] flex flex-col gap-y-12"
30
38
ref = { info }
31
39
>
40
+ { isOnboarding && < ProductOnboardingCta /> }
32
41
< ProductInfo product = { product } />
33
42
< ProductTabs product = { product } />
34
43
</ div >
0 commit comments