diff options
Diffstat (limited to 'src/components/molecules/card/card-provider.tsx')
| -rw-r--r-- | src/components/molecules/card/card-provider.tsx | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/components/molecules/card/card-provider.tsx b/src/components/molecules/card/card-provider.tsx new file mode 100644 index 0000000..5bcdb49 --- /dev/null +++ b/src/components/molecules/card/card-provider.tsx @@ -0,0 +1,43 @@ +import { + createContext, + type FC, + type ReactElement, + type ReactNode, + useContext, +} from 'react'; + +export type CardCoverProviderProps = { + children: ReactNode; + cover?: ReactElement; +}; + +export const CardCoverContext = createContext<ReactElement | null>(null); + +export const useCardCover = () => useContext(CardCoverContext); + +export const CardCoverProvider: FC<CardCoverProviderProps> = ({ + children, + cover, +}) => ( + <CardCoverContext.Provider value={cover ?? null}> + {children} + </CardCoverContext.Provider> +); + +export type CardFooterMetaProviderProps = { + children: ReactNode; + meta?: ReactElement; +}; + +export const CardFooterMetaContext = createContext<ReactElement | null>(null); + +export const useCardFooterMeta = () => useContext(CardFooterMetaContext); + +export const CardFooterMetaProvider: FC<CardFooterMetaProviderProps> = ({ + children, + meta, +}) => ( + <CardFooterMetaContext.Provider value={meta ?? null}> + {children} + </CardFooterMetaContext.Provider> +); |
