docs: documentation changes for release (#4300)

* 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>
This commit is contained in:
Shahed Nasser
2023-06-20 13:25:22 +03:00
committed by GitHub
parent 8db03619b5
commit 76c4bf4acb
177 changed files with 8828 additions and 1196 deletions

View File

@@ -0,0 +1,90 @@
import useIsBrowser from "@docusaurus/useIsBrowser"
import React, { createContext, useContext, useEffect, useState } from "react"
import uuid from "react-uuid"
type UserContextType = {
id: string
track: (
event: string,
options?: Record<string, any>,
callback?: () => void
) => void
}
const UserContext = createContext<UserContextType | null>(null)
type UserProviderProps = {
children?: React.ReactNode
}
const UserProvider: React.FC<UserProviderProps> = ({ children }) => {
const [id, setId] = useState<string>("")
const isBrowser = useIsBrowser()
const initId = () => {
if (!id.length) {
if (isBrowser) {
const storedId = localStorage.getItem("ajs_anonymous_id")
if (storedId) {
setId(storedId)
} else {
const generatedId = uuid()
localStorage.setItem("ajs_anonymous_id", generatedId)
setId(generatedId)
}
}
}
}
const track = (
event: string,
options?: Record<string, any>,
callback?: () => void
) => {
if (isBrowser) {
if (window.analytics) {
window.analytics.track(
event,
{
...options,
uuid: id,
anonymousId: id,
},
callback
)
} else if (callback) {
console.warn(
"Segment is either not installed or not configured. Simulating success..."
)
callback()
}
}
}
useEffect(() => {
initId()
}, [isBrowser])
return (
<UserContext.Provider
value={{
id,
track,
}}
>
{children}
</UserContext.Provider>
)
}
export default UserProvider
export const useUser = () => {
const context = useContext(UserContext)
if (!context) {
throw new Error("useUser must be used within a UserProvider")
}
return context
}