about summary refs log tree commit diff
path: root/src/state/shell/index.tsx
blob: 897a66020ffeaab8a67878dd8bd4db2c0aeb375b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import React from 'react'
import {Provider as ShellLayoutProvder} from './shell-layout'
import {Provider as DrawerOpenProvider} from './drawer-open'
import {Provider as DrawerSwipableProvider} from './drawer-swipe-disabled'
import {Provider as MinimalModeProvider} from './minimal-mode'
import {Provider as ColorModeProvider} from './color-mode'
import {Provider as OnboardingProvider} from './onboarding'
import {Provider as ComposerProvider} from './composer'
import {Provider as TickEveryMinuteProvider} from './tick-every-minute'
import {Provider as LoggedOutViewProvider} from './logged-out'

export {useIsDrawerOpen, useSetDrawerOpen} from './drawer-open'
export {
  useIsDrawerSwipeDisabled,
  useSetDrawerSwipeDisabled,
} from './drawer-swipe-disabled'
export {useMinimalShellMode, useSetMinimalShellMode} from './minimal-mode'
export {useColorMode, useSetColorMode} from './color-mode'
export {useOnboardingState, useOnboardingDispatch} from './onboarding'
export {useComposerState, useComposerControls} from './composer'
export {useTickEveryMinute} from './tick-every-minute'

export function Provider({children}: React.PropsWithChildren<{}>) {
  return (
    <ShellLayoutProvder>
      <LoggedOutViewProvider>
        <DrawerOpenProvider>
          <DrawerSwipableProvider>
            <MinimalModeProvider>
              <ColorModeProvider>
                <OnboardingProvider>
                  <ComposerProvider>
                    <TickEveryMinuteProvider>
                      {children}
                    </TickEveryMinuteProvider>
                  </ComposerProvider>
                </OnboardingProvider>
              </ColorModeProvider>
            </MinimalModeProvider>
          </DrawerSwipableProvider>
        </DrawerOpenProvider>
      </LoggedOutViewProvider>
    </ShellLayoutProvder>
  )
}