import React, { useEffect } from 'react'; import { Server } from '@/api/server/getServer'; import getServers from '@/api/getServers'; import ServerRow from '@/components/dashboard/ServerRow'; import Spinner from '@/components/elements/Spinner'; import PageContentBlock from '@/components/elements/PageContentBlock'; import useFlash from '@/plugins/useFlash'; import { useStoreState } from 'easy-peasy'; import { usePersistedState } from '@/plugins/usePersistedState'; import Switch from '@/components/elements/Switch'; import tw from 'twin.macro'; import useSWR from 'swr'; import { PaginatedResult } from '@/api/http'; export default () => { const { clearFlashes, clearAndAddHttpError } = useFlash(); const { rootAdmin } = useStoreState(state => state.user.data!); const [ showAdmin, setShowAdmin ] = usePersistedState('show_all_servers', false); const { data: servers, error } = useSWR>( [ '/api/client/servers', showAdmin ], () => getServers(undefined, showAdmin) ); useEffect(() => { if (error) clearAndAddHttpError({ key: 'dashboard', error }); if (!error) clearFlashes('dashboard'); }, [ error ]); return ( {rootAdmin &&

{showAdmin ? 'Showing all servers' : 'Showing your servers'}

setShowAdmin(s => !s)} />
} {!servers ? : servers.items.length > 0 ? servers.items.map((server, index) => ( 0 ? tw`mt-2` : undefined}/> )) :

There are no servers associated with your account.

}
); };