Skip to content

Commit 9cccdf1

Browse files
committed
feat: add onboarding cat to product page
1 parent f0d245f commit 9cccdf1

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import Button from "@modules/common/components/button"
2+
3+
const ProductOnboardingCta = () => {
4+
return (
5+
<div className="max-w-4xl h-full bg-gray-100 w-full mb-4 p-8">
6+
<div className="flex flex-col gap-y-6 center">
7+
<span className="text-gray-700 text-xl">
8+
Your test product was successfully created! 🎉
9+
</span>
10+
<span className="text-gray-700 text-small-regular">
11+
You can now continue setting up your store in the admin.
12+
</span>
13+
<a href="http://localhost:7001/a/orders?onboarding_step=create_order_nextjs">
14+
<Button className="md:w-80">Continue setup in admin</Button>
15+
</a>
16+
</div>
17+
</div>
18+
)
19+
}
20+
21+
export default ProductOnboardingCta

src/modules/products/templates/index.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
11
"use client"
22

3+
import React, { useEffect, useRef, useState } from "react"
34
import { ProductProvider } from "@lib/context/product-context"
45
import { useIntersection } from "@lib/hooks/use-in-view"
6+
import ProductInfo from "@modules/products/templates/product-info"
57
import ProductTabs from "@modules/products/components/product-tabs"
68
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"
1112
import { PricedProduct } from "@medusajs/medusa/dist/types/pricing"
1213

1314
type ProductTemplateProps = {
1415
product: PricedProduct
1516
}
1617

1718
const ProductTemplate: React.FC<ProductTemplateProps> = ({ product }) => {
19+
const [isOnboarding, setIsOnboarding] = useState<boolean>(false)
20+
1821
const info = useRef<HTMLDivElement>(null)
1922

2023
const inView = useIntersection(info, "0px")
2124

25+
useEffect(() => {
26+
const onboarding = window.sessionStorage.getItem("onboarding")
27+
setIsOnboarding(onboarding === "true")
28+
}, [])
29+
2230
return (
2331
<ProductProvider product={product}>
2432
<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 }) => {
2937
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"
3038
ref={info}
3139
>
40+
{isOnboarding && <ProductOnboardingCta />}
3241
<ProductInfo product={product} />
3342
<ProductTabs product={product} />
3443
</div>

0 commit comments

Comments
 (0)