Gatsby
IntelligemsGatsbyProvider
IntelligemsGatsbyProvider
interface IgUserContext {
id?: string;
isPreview?: boolean;
isIntegration?: boolean;
isPreviewAllTraffic?: boolean;
originalSlug?: string;
exps?: Record<string, string>;
ign?: Record<string, string>;
}
interface IgConfig extends Nullable<IgUserContext> {
config: PluginConfigType | null; // Internal Type
}
export type ActiveCurrency = string | (() => string);
type PriceFormat = 'dollars' | 'cents';
interface IntelligemsGatsbyProvider {
ig: IgConfig;
organizationId: string; // required
activeCurrencyCode?: ActiveCurrency;
storefrontApiToken: string;
debug?: boolean;
priceFormat?: PriceFormat;
version?: '12' | '13';
children?: ReactNode;
}
export default function MyApp({ Component, pageProps }: AppProps) {
return (
<IntelligemsNextProvider
storefrontApiToken={process.env.GATSBY_STOREFRONT_ACCESS_TOKEN}
antiFlicker={true}
organizationId={process.env.GATSBY_INTELLIGEMS_ORG_ID!}
>
...
</IntelligemsNextProvider>
)
}
Modifying State Directly
The following options are availble to change the Intelligems Context directly:
const { data, dispatchData } = useContext(IntelligemsContext);
interface IntelligemsContextType {
igId: string | null;
priceFormat: PriceFormat;
ig: IgConfig | null;
organizationId: string;
exclusions: string[];
unassigned: string[];
igVars: Record<string, string>;
ignores: Record<string, string>;
expIds: string[];
storefrontApiToken: string;
activeCurrencyCode: string;
framework: Framework;
priceRegex: RegExp;
antiFlicker: boolean;
events: IntelligemsEvents;
experiences: Experience[];
}
type ReducerAction =
| { type: "SET_IG_ID"; payload: string | null }
| { type: "SET_PRICE_FORMAT"; payload: PriceFormat }
| { type: "SET_IG"; payload: IgConfig | null }
| { type: "SET_ORGANIZATION_ID"; payload: string }
| { type: "SET_EXCLUSIONS"; payload: string[] }
| { type: "SET_UNASSIGNED"; payload: string[] }
| { type: "SET_IG_VARS"; payload: Record<string, string> }
| { type: "SET_IGNORES"; payload: Record<string, string> }
| { type: "SET_STOREFRONT_API_TOKEN"; payload: string }
| { type: "SET_ACTIVE_CURRENCY_CODE"; payload: string }
| { type: "SET_FRAMEWORK"; payload: Framework }
| { type: "SET_PRICE_REGEX"; payload: RegExp }
| { type: "SET_ANTI_FLICKER"; payload: boolean }
| { type: "SET_EVENTS"; payload: IntelligemsEvents }
| { type: "SET_EXPERIENCES"; payload: Experience[] };
Last updated