summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/components/link/LinkContext.tsx28
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>;
+}