* docs: added manage reservations user guide (#4290) * docs: added manage reservations user guide * removed feature flag details * docs: added how-to for custom reservations (#4292) * docs: added how-to for custom reservations * eslint fixes * docs: added product module documentation (#4287) * docs: added product module documentation * added details about optional environment variables * small fixes * Remove reference link * added example usages * added link to sample project * address PR feedback * docs: moved product module guide + added product module tabs (#4307) * added product module tab * adjust design of badge * docs: added onboarding features (#4168) * added marketplace page * added subscription roadmap * added rating for onboarding * added learning path components * small fixes * fix build error * fix eslint errors * change roadmaps to recipes * small change in text * optimize learning path and notifications * fix tracking usage * fix eslint errors * added enter/exit animation * allow starting a path using a query parameter * fix gap between notifications * address vercel comments * fixed links issue * changed create-medusa-app docs steps * move troubleshooting section * improved tracking across docs * fix build errors * remove console * added a note about `boilerplate` option * added troubleshooting section for eagain * added invite option in cli reference * added track event for finished onboarding * update boilerplate option name * redesigned learning path component * docs: added how to create widget docs (#4318) * docs: added how to create widget docs * remove development guide * added types * docs: added details about createCustomAdminHooks (#4288) * docs: added details about createCustomAdminHooks * small improvement * added missing import * small changes * docs: added onboarding guide (#4320) * docs: added how to create widget docs * remove development guide * docs: added onboarding guide * added types * added recipes link * small adjustments * fixed eslint errors * styling fixes * change to singular product module * updated the what's new section * shorten down medusa react card * updated tailwind configurations * fix build error * fix newspaper icon * style fixes * change modal shadow * fix color of line numbers * fix code fade color * docs: updated admin documentations * eslint fixes * text changes * added a note about beta version * remove empty object argument * remove demo repo url * fix selection color for code headers * general fixes * fix eslint error * changed code theme * added preparation step * changes regarding beta version * Update docs/content/modules/products/serverless-module.md Co-authored-by: Riqwan Thamir <rmthamir@gmail.com> * Update docs/content/modules/products/serverless-module.md Co-authored-by: Riqwan Thamir <rmthamir@gmail.com> --------- Co-authored-by: Riqwan Thamir <rmthamir@gmail.com> Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
97 lines
3.1 KiB
TypeScript
97 lines
3.1 KiB
TypeScript
import { useLearningPath } from "@site/src/providers/LearningPath"
|
|
import { useNotifications } from "@site/src/providers/NotificationProvider"
|
|
import { getLearningPath } from "@site/src/utils/learning-paths"
|
|
import clsx from "clsx"
|
|
import React from "react"
|
|
import useBaseUrl from "@docusaurus/useBaseUrl"
|
|
import Button from "../Button"
|
|
import IconCircleMiniSolid from "@site/src/theme/Icon/CircleMiniSolid"
|
|
import LearningPathIcon from "./Icon"
|
|
|
|
type LearningPathProps = {
|
|
pathName: string
|
|
className?: string
|
|
} & React.AllHTMLAttributes<HTMLDivElement>
|
|
|
|
const LearningPath: React.FC<LearningPathProps> = ({
|
|
pathName,
|
|
className = "",
|
|
}) => {
|
|
const path = getLearningPath(pathName)
|
|
if (!path) {
|
|
throw new Error("Learning path does not exist.")
|
|
}
|
|
const { startPath, path: currentPath } = useLearningPath()
|
|
const notificationContext = useNotifications()
|
|
|
|
const handleClick = () => {
|
|
if (notificationContext && currentPath?.notificationId) {
|
|
notificationContext.removeNotification(currentPath.notificationId)
|
|
}
|
|
startPath(path)
|
|
}
|
|
|
|
return (
|
|
<div
|
|
className={clsx(
|
|
"tw-rounded tw-shadow-card-rest dark:tw-shadow-card-rest-dark tw-bg-docs-bg-surface dark:tw-bg-docs-bg-surface-dark tw-mt-1.5 tw-mb-4",
|
|
className
|
|
)}
|
|
>
|
|
<div
|
|
className={clsx(
|
|
"tw-flex tw-items-center tw-gap-1 tw-p-1 tw-border-0 tw-border-b tw-border-solid tw-border-medusa-border-base dark:tw-border-medusa-border-base-dark"
|
|
)}
|
|
>
|
|
<LearningPathIcon />
|
|
<div className={clsx("tw-flex-auto")}>
|
|
<span
|
|
className={clsx(
|
|
"tw-text-medusa-text-base dark:tw-text-medusa-text-base-dark tw-text-label-large-plus tw-block"
|
|
)}
|
|
>
|
|
{path.label}
|
|
</span>
|
|
{path.description && (
|
|
<span
|
|
className={clsx(
|
|
"tw-text-medusa-text-subtle dark:tw-text-medusa-text-subtle-dark tw-text-label-regular tw-mt-[4px] tw-inline-block"
|
|
)}
|
|
>
|
|
{path.description}
|
|
</span>
|
|
)}
|
|
</div>
|
|
<Button onClick={handleClick} className={clsx("tw-flex-initial")}>
|
|
Start Path
|
|
</Button>
|
|
</div>
|
|
{path.steps.map((step, index) => (
|
|
<div
|
|
className={clsx(
|
|
"tw-flex tw-items-center tw-p-1 tw-gap-1",
|
|
index !== path.steps.length - 1 &&
|
|
"tw-border-0 tw-border-b tw-border-solid tw-border-medusa-border-base dark:tw-border-medusa-border-base-dark"
|
|
)}
|
|
key={index}
|
|
>
|
|
<div
|
|
className={clsx("tw-w-3 tw-flex tw-items-center tw-justify-center")}
|
|
>
|
|
<IconCircleMiniSolid iconColorClassName="tw-stroke-medusa-icon-muted dark:tw-stroke-medusa-icon-muted-dark" />
|
|
</div>
|
|
<span
|
|
className={clsx(
|
|
"tw-text-medusa-text-base dark:tw-text-medusa-text-base-dark tw-text-label-regular-plus"
|
|
)}
|
|
>
|
|
{step.title}
|
|
</span>
|
|
</div>
|
|
))}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default LearningPath
|