mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-12 07:36:42 +08:00
31 lines
897 B
TypeScript
31 lines
897 B
TypeScript
import { ProviderComposer } from '@affine/component/provider-composer';
|
|
import { ThemeProvider } from '@affine/component/theme-provider';
|
|
import type { createStore } from 'jotai';
|
|
import { Provider } from 'jotai';
|
|
import type { PropsWithChildren } from 'react';
|
|
import { useMemo } from 'react';
|
|
|
|
import { ConfirmModalProvider } from '../../ui/modal';
|
|
|
|
export type AffineContextProps = PropsWithChildren<{
|
|
store?: ReturnType<typeof createStore>;
|
|
}>;
|
|
|
|
export function AffineContext(props: AffineContextProps) {
|
|
return (
|
|
<ProviderComposer
|
|
contexts={useMemo(
|
|
() =>
|
|
[
|
|
<Provider key="JotaiProvider" store={props.store} />,
|
|
<ThemeProvider key="ThemeProvider" />,
|
|
<ConfirmModalProvider key="ConfirmModalProvider" />,
|
|
].filter(Boolean),
|
|
[props.store]
|
|
)}
|
|
>
|
|
{props.children}
|
|
</ProviderComposer>
|
|
);
|
|
}
|