diff options
| -rw-r--r-- | desktop/packages/mullvad-vpn/src/renderer/lib/components/link/LinkContext.tsx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/link/LinkContext.tsx b/desktop/packages/mullvad-vpn/src/renderer/lib/components/link/LinkContext.tsx new file mode 100644 index 0000000000..128428c081 --- /dev/null +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/link/LinkContext.tsx @@ -0,0 +1,28 @@ +import React from 'react'; + +import { LinkProps } from './Link'; + +interface LinkContextProps { + color?: LinkProps['color']; + variant?: LinkProps['variant']; +} + +const LinkContext = React.createContext<LinkContextProps | undefined>(undefined); + +export const useLinkContext = (): LinkContextProps => { + const context = React.useContext(LinkContext); + if (!context) { + throw new Error('useLinkContext must be used within a LinkProvider'); + } + return context; +}; + +interface LinkProviderProps { + color?: LinkContextProps['color']; + variant?: LinkContextProps['variant']; + children: React.ReactNode; +} + +export function LinkProvider({ color, variant, children }: LinkProviderProps) { + return <LinkContext.Provider value={{ color, variant }}>{children}</LinkContext.Provider>; +} |
