Gatsby

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