2024-05-31 19:49:46 +05:30
|
|
|
import React, { ReactNode, useMemo } from 'react';
|
|
|
|
|
import { useMatrixClient } from '../../hooks/useMatrixClient';
|
|
|
|
|
import { makeClosedNavCategoriesAtom } from '../../state/closedNavCategories';
|
|
|
|
|
import { ClosedNavCategoriesProvider } from '../../state/hooks/closedNavCategories';
|
|
|
|
|
import { makeClosedLobbyCategoriesAtom } from '../../state/closedLobbyCategories';
|
|
|
|
|
import { ClosedLobbyCategoriesProvider } from '../../state/hooks/closedLobbyCategories';
|
|
|
|
|
import { makeNavToActivePathAtom } from '../../state/navToActivePath';
|
|
|
|
|
import { NavToActivePathProvider } from '../../state/hooks/navToActivePath';
|
|
|
|
|
import { makeOpenedSidebarFolderAtom } from '../../state/openedSidebarFolder';
|
|
|
|
|
import { OpenedSidebarFolderProvider } from '../../state/hooks/openedSidebarFolder';
|
2026-03-07 18:03:32 +11:00
|
|
|
import { makeCallPreferencesAtom } from '../../state/callPreferences';
|
|
|
|
|
import { CallPreferencesProvider } from '../../state/hooks/callPreferences';
|
2024-05-31 19:49:46 +05:30
|
|
|
|
|
|
|
|
type ClientInitStorageAtomProps = {
|
|
|
|
|
children: ReactNode;
|
|
|
|
|
};
|
|
|
|
|
export function ClientInitStorageAtom({ children }: ClientInitStorageAtomProps) {
|
|
|
|
|
const mx = useMatrixClient();
|
|
|
|
|
const userId = mx.getUserId()!;
|
|
|
|
|
|
|
|
|
|
const closedNavCategoriesAtom = useMemo(() => makeClosedNavCategoriesAtom(userId), [userId]);
|
|
|
|
|
|
|
|
|
|
const closedLobbyCategoriesAtom = useMemo(() => makeClosedLobbyCategoriesAtom(userId), [userId]);
|
|
|
|
|
|
|
|
|
|
const navToActivePathAtom = useMemo(() => makeNavToActivePathAtom(userId), [userId]);
|
|
|
|
|
|
|
|
|
|
const openedSidebarFolderAtom = useMemo(() => makeOpenedSidebarFolderAtom(userId), [userId]);
|
|
|
|
|
|
2026-03-07 18:03:32 +11:00
|
|
|
const callPreferencesAtom = useMemo(() => makeCallPreferencesAtom(userId), [userId]);
|
|
|
|
|
|
2024-05-31 19:49:46 +05:30
|
|
|
return (
|
|
|
|
|
<ClosedNavCategoriesProvider value={closedNavCategoriesAtom}>
|
|
|
|
|
<ClosedLobbyCategoriesProvider value={closedLobbyCategoriesAtom}>
|
|
|
|
|
<NavToActivePathProvider value={navToActivePathAtom}>
|
|
|
|
|
<OpenedSidebarFolderProvider value={openedSidebarFolderAtom}>
|
2026-03-07 18:03:32 +11:00
|
|
|
<CallPreferencesProvider value={callPreferencesAtom}>
|
|
|
|
|
{children}
|
|
|
|
|
</CallPreferencesProvider>
|
2024-05-31 19:49:46 +05:30
|
|
|
</OpenedSidebarFolderProvider>
|
|
|
|
|
</NavToActivePathProvider>
|
|
|
|
|
</ClosedLobbyCategoriesProvider>
|
|
|
|
|
</ClosedNavCategoriesProvider>
|
|
|
|
|
);
|
|
|
|
|
}
|