Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import {
createContext,
FunctionComponent,
useContext,
useEffect,
useState,
} from "react";
import * as shortbread from "../../lib/shortbread";
const { initialize, ...publicAPI } = shortbread;
const ShortbreadContext = createContext<Partial<typeof publicAPI>>({});
export const useShortBread = () => useContext(ShortbreadContext);
export const ShortbreadProvider: FunctionComponent = ({ children }) => {
const [isReady, setIsReady] = useState(false);
useEffect(() => {
let isCancelled = false;
initialize()
.then(() => {
if (!isCancelled) {
publicAPI.checkForCookieConsent();
setIsReady(true);
}
})
.catch((e) => {
console.error(e);
if (!isCancelled) {
setIsReady(false);
}
});
return () => {
isCancelled = true;
setIsReady(false);
};
}, []);
return (
<ShortbreadContext.Provider value={isReady ? publicAPI : {}}>
{children}
</ShortbreadContext.Provider>
);
};
|