Reacti ümbris
Üks pakkuja ja kaks konksu TypeScripti SDK peal. See paigaldab ühe kliendi lehe kohta, nii et Reacti range režiim ei kahekordista sinu sündmusi.
Kus see on avaldatud
@prodantix/react on npm. It wraps @prodantix/sdk, so install both.
Paigaldus
bun add @prodantix/sdk @prodantix/react| Export | What it is |
|---|---|
| ProdantixProvider | Creates the client once per page and provides it |
| useProdantix | The client for the page, or null |
| useMessenger | A handle that opens and closes the widget, or null |
| prodantixConfig | The config when both key and host are present, else null |
| skipReason | Why this mount will send nothing, or null |
| resetProdantixForTest | Clears the once-per-page install, for tests |
Pakkuja
Paigalda ProdantixProvider üks kord, juure lähedale. See loob veebikliendi esimesel paigaldusel ja kasutab seda edaspidi uuesti, sest teise loomine parandaks History API-t kaks korda ja kahekordistaks iga automaatselt püütud sündmuse.
import { ProdantixProvider } from '@prodantix/react';
export const Providers = ({ children }: { children: ReactNode }) => (
<ProdantixProvider
options={{
apiKey: process.env.NEXT_PUBLIC_PRODANTIX_KEY,
host: 'https://eu.api.prodantix.com',
messengerHost: 'https://eu.edge.prodantix.com',
}}
>
{children}
</ProdantixProvider>
);Konksud
useProdantix tagastab lehe kliendi või null serveris, enne efekti käivitumist ja väljaspool pakkujat. useMessenger tagastab pideme vidina avamiseks ja sulgemiseks ning püsib null, kuni projekti seadistus on loetud ja ütleb, et see on sisse lülitatud.
import { useMessenger, useProdantix } from '@prodantix/react';
export const HelpButton = () => {
const prodantix = useProdantix();
const messenger = useMessenger();
// Both are null until the provider effect has run, so neither is assumed.
return (
<button
onClick={() => {
prodantix?.capture('help.opened');
messenger?.open();
}}
type="button"
>
Get help
</button>
);
};Kui see midagi ei saada
Rakendus tarnitakse samamoodi ka väljalülitatud Prodantixiga, seega pole puuduv võti või host viga. prodantixConfig ütleb, kas mõlemad väärtused on olemas, ja skipReason selgitab ühe reaga, miks paigaldus midagi ei saada, selle asemel et vaikselt tagasi pöörduda.
import { prodantixConfig, skipReason } from '@prodantix/react';
const env = {
host: process.env.NEXT_PUBLIC_PRODANTIX_HOST,
key: process.env.NEXT_PUBLIC_PRODANTIX_KEY,
};
// null when either value is missing: the app runs with Prodantix switched off.
if (prodantixConfig(env) === null) {
console.warn(skipReason(env, null));
}