postiz/apps/frontend/src/components/onboarding/github.onboarding.tsx

37 lines
1022 B
TypeScript

import { FC, useCallback } from 'react';
import { useFetch } from '@gitroom/helpers/utils/custom.fetch';
import useSWR from 'swr';
import { GithubComponent } from '@gitroom/frontend/components/settings/github.component';
export const GithubOnboarding: FC = () => {
const fetch = useFetch();
const load = useCallback(async (path: string) => {
const { github } = await (await fetch('/settings/github')).json();
if (!github) {
return false;
}
const emptyOnes = github.find((p: { login: string }) => !p.login);
const { organizations } = emptyOnes
? await (await fetch(`/settings/organizations/${emptyOnes.id}`)).json()
: {
organizations: [],
};
return {
github,
organizations,
};
}, []);
const { isLoading: isLoadingSettings, data: loadAll } = useSWR(
'load-all',
load
);
if (!loadAll) {
return null;
}
return (
<GithubComponent
github={loadAll.github}
organizations={loadAll.organizations}
/>
);
};