Clean up most of the schedules code to use server context

This commit is contained in:
Dane Everitt 2020-04-10 10:46:00 -07:00
parent 07d19ad326
commit 0ebf842757
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
9 changed files with 132 additions and 92 deletions

View file

@ -9,6 +9,7 @@ import FlashMessageRender from '@/components/FlashMessageRender';
import getServerSubusers from '@/api/server/users/getServerSubusers';
import { httpErrorToHuman } from '@/api/http';
import Can from '@/components/elements/Can';
import ListRefreshIndicator from '@/components/elements/ListRefreshIndicator';
export default () => {
const [ loading, setLoading ] = useState(true);
@ -21,10 +22,6 @@ export default () => {
const getPermissions = useStoreActions((actions: Actions<ApplicationStore>) => actions.permissions.getPermissions);
const { addError, clearFlashes } = useStoreActions((actions: Actions<ApplicationStore>) => actions.flashes);
useEffect(() => {
getPermissions().catch(error => console.error(error));
}, []);
useEffect(() => {
clearFlashes('users');
getServerSubusers(uuid)
@ -38,12 +35,20 @@ export default () => {
});
}, []);
if (loading || !Object.keys(permissions).length) {
useEffect(() => {
getPermissions().catch(error => {
addError({ key: 'users', message: httpErrorToHuman(error) });
console.error(error);
});
}, []);
if (!subusers.length && (loading || !Object.keys(permissions).length)) {
return <Spinner size={'large'} centered={true}/>;
}
return (
<div className={'mt-10 mb-6'}>
<ListRefreshIndicator visible={loading}/>
<FlashMessageRender byKey={'users'} className={'mb-4'}/>
{!subusers.length ?
<p className={'text-center text-sm text-neutral-400'}>