Initial api requests + stores + basic layout
This commit is contained in:
30
web/components/stores/ClientConfigStore.tsx
Normal file
30
web/components/stores/ClientConfigStore.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
import { useEffect } from 'react';
|
||||
import { ReactElement } from 'react-markdown/lib/react-markdown';
|
||||
import { atom, useRecoilState } from 'recoil';
|
||||
import { makeEmptyClientConfig, ClientConfig } from '../../models/ClientConfig';
|
||||
import ClientConfigService from '../../services/ClientConfigService';
|
||||
|
||||
export const clientConfigState = atom({
|
||||
key: 'clientConfigState',
|
||||
default: makeEmptyClientConfig(),
|
||||
});
|
||||
|
||||
export function ClientConfigStore(): ReactElement {
|
||||
const [, setClientConfig] = useRecoilState<ClientConfig>(clientConfigState);
|
||||
|
||||
const updateClientConfig = async () => {
|
||||
try {
|
||||
const config = await ClientConfigService.getConfig();
|
||||
console.log(`ClientConfig: ${JSON.stringify(config)}`);
|
||||
setClientConfig(config);
|
||||
} catch (error) {
|
||||
console.error(`ClientConfigService -> getConfig() ERROR: \n${error}`);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
updateClientConfig();
|
||||
}, []);
|
||||
|
||||
return null;
|
||||
}
|
||||
Reference in New Issue
Block a user