const zeroQueryOptions = (userId: string, getToken: () => Promise<string>) =>
queryOptions({
queryKey: ["zero"],
queryFn: () => {
return createZero(userId, getToken); // create zero client
},
});
export const ZeroProvider = (props: PropsWithChildren) => {
const auth = useAuthentication();
const zeroQuery = useQueryTanstack(
zeroQueryOptions(auth.user.id, auth.getAccessToken)
);
if (zeroQuery.status === "pending") return null;
if (zeroQuery.status === "error") return <div>Issue syncing data, please try again later</div>;
return (
<ZeroProviderInternal zero={zeroQuery.data}>{props.children}</ZeroProviderInternal>
);
};
const zeroQueryOptions = (userId: string, getToken: () => Promise<string>) =>
queryOptions({
queryKey: ["zero"],
queryFn: () => {
return createZero(userId, getToken); // create zero client
},
});
export const ZeroProvider = (props: PropsWithChildren) => {
const auth = useAuthentication();
const zeroQuery = useQueryTanstack(
zeroQueryOptions(auth.user.id, auth.getAccessToken)
);
if (zeroQuery.status === "pending") return null;
if (zeroQuery.status === "error") return <div>Issue syncing data, please try again later</div>;
return (
<ZeroProviderInternal zero={zeroQuery.data}>{props.children}</ZeroProviderInternal>
);
};