postio / libraries /react-shared-libraries /src /helpers /variable.context.tsx
Leon4gr45's picture
Upload folder using huggingface_hub (part 11)
f2e9a59 verified
Raw
History Blame Contribute Delete
2.15 kB
'use client';
import { createContext, FC, ReactNode, useContext, useEffect } from 'react';
interface VariableContextInterface {
stripeClient: string;
billingEnabled: boolean;
isChatBase: boolean;
isGeneral: boolean;
genericOauth: boolean;
oauthLogoUrl: string;
oauthDisplayName: string;
mcpUrl?: string;
cloudflareUrl: string;
mainUrl: string;
frontEndUrl: string;
plontoKey: string;
storageProvider: 'local' | 'cloudflare';
backendUrl: string;
environment: string;
discordUrl: string;
uploadDirectory: string;
facebookPixel: string;
telegramBotName: string;
neynarClientId: string;
isSecured: boolean;
disableImageCompression: boolean;
disableXAnalytics: boolean;
language: string;
dub: boolean;
transloadit: string[];
sentryDsn: string;
extensionId: string;
googleAdsId?: string;
googleAdsTrialTracking?: string;
}
const VariableContext = createContext({
stripeClient: '',
billingEnabled: false,
isGeneral: true,
genericOauth: false,
isChatBase: false,
oauthLogoUrl: '',
googleAdsId: '',
googleAdsTrialTracking: '',
oauthDisplayName: '',
mcpUrl: '',
cloudflareUrl: '',
mainUrl: '',
frontEndUrl: '',
storageProvider: 'local',
plontoKey: '',
backendUrl: '',
discordUrl: '',
uploadDirectory: '',
isSecured: false,
telegramBotName: '',
facebookPixel: '',
neynarClientId: '',
disableImageCompression: false,
disableXAnalytics: false,
language: '',
dub: false,
transloadit: [],
sentryDsn: '',
extensionId: '',
} as VariableContextInterface);
export const VariableContextComponent: FC<
VariableContextInterface & {
children: ReactNode;
}
> = (props) => {
const { children, ...otherProps } = props;
useEffect(() => {
if (typeof window !== 'undefined') {
// @ts-ignore
window.vars = otherProps;
}
}, []);
return (
<VariableContext.Provider value={otherProps}>
{children}
</VariableContext.Provider>
);
};
export const useVariables = () => {
return useContext(VariableContext);
};
export const loadVars = () => {
// @ts-ignore
return window.vars as VariableContextInterface;
};