'use client';
import { GithubComponent } from '@gitroom/frontend/components/settings/github.component';
import { useCallback, useEffect } from 'react';
import { useUser } from '@gitroom/frontend/components/layout/user.context';
import { TeamsComponent } from '@gitroom/frontend/components/settings/teams.component';
import { useFetch } from '@gitroom/helpers/utils/custom.fetch';
import useSWR from 'swr';
import { LoadingComponent } from '@gitroom/frontend/components/layout/loading';
import { useRouter } from 'next/navigation';
import { useVariables } from '@gitroom/react/helpers/variable.context';
export const SettingsComponent = () => {
const {isGeneral} = useVariables();
const user = useUser();
const router = useRouter();
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
);
useEffect(() => {
if (!isLoadingSettings && !loadAll) {
router.push('/');
}
}, [loadAll, isLoadingSettings]);
if (isLoadingSettings) {
return