This commit is contained in:
Morten Olsen
2023-06-16 11:10:50 +02:00
commit bc0d501d98
163 changed files with 16458 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
import { DashboardProvider, Widget } from '@refocus/sdk';
import { UIProvider } from './theme/provider';
import { useCallback, useMemo } from 'react';
import { GithubLogin } from './github';
import { LinearLogin } from './linear';
import { SlackLogin } from './slack';
type FocusProviderProps = {
children: React.ReactNode;
widgets: Widget<any>[];
};
const FocusProvider: React.FC<FocusProviderProps> = ({ children, widgets }) => {
const save = useCallback((data: any) => {
localStorage.setItem('boards', JSON.stringify(data));
}, []);
const logins = useMemo(
() => ({
github: GithubLogin,
linear: LinearLogin,
slack: SlackLogin,
}),
[],
);
const load = useCallback(() => {
const data = localStorage.getItem('boards');
if (data) {
return JSON.parse(data);
}
return {
boards: {},
selected: undefined,
};
}, []);
return (
<UIProvider>
<DashboardProvider
load={load}
save={save}
widgets={widgets}
logins={logins}
>
{children}
</DashboardProvider>
</UIProvider>
);
};
export { FocusProvider };