Skip to content

Instantly share code, notes, and snippets.

@benschac
Created May 3, 2025 11:17
Show Gist options
  • Save benschac/ce781b39f6eade7a30d73fdec931b1ad to your computer and use it in GitHub Desktop.
Save benschac/ce781b39f6eade7a30d73fdec931b1ad to your computer and use it in GitHub Desktop.
import { DatePickerProvider } from '@rehookify/datepicker'
import { Session } from '@supabase/supabase-js'
// import { GlobalStoreProvider } from 'app/utils/global-store'
import React from 'react'
import { AuthProvider } from './auth'
// import { BottomSheetProvider } from './bottomsheet'
// import { BottomSheetModalProvider } from './bottomsheetmodal'
import { CalendarProvider } from './calendar'
import { NotificationProvider } from './notifications'
import { RadarProvider } from './radar/RadarProvider'
import { QueryClientProvider } from './react-query'
import { SafeAreaProvider } from './safe-area'
import { TamaguiProvider } from './tamagui'
import { UniversalThemeProvider } from './theme'
import { ToastProvider } from './toast'
export { loadThemePromise } from './theme/UniversalThemeProvider'
export function Provider({
initialSession,
children,
}: {
initialSession?: Session | null
children: React.ReactNode
}) {
return (
// Note: DatePickerProvider Conflicted with Popover so this is just a temporary solution
<DatePickerProvider config={{ selectedDates: [], onDatesChange: () => {} }}>
<AuthProvider initialSession={initialSession}>
<Providers>{children}</Providers>
</AuthProvider>
</DatePickerProvider>
)
}
const RadarProviderWithKey: React.FC<{ children: React.ReactNode }> = ({ children }) => {
// Replace with your actual publishable key
// TEST KEY
return (
<RadarProvider publishableKey="prj_test_sk_81f26fa99bbf5735ffe1c17f9985690a525c407d">
{children}
</RadarProvider>
)
}
const compose = (providers: React.FC<{ children: React.ReactNode }>[]) =>
providers.reduce((Prev, Curr) => ({ children }) => {
const Provider = Prev ? (
<Prev>
<Curr>{children}</Curr>
</Prev>
) : (
<Curr>{children}</Curr>
)
return Provider
})
const Providers = compose([
UniversalThemeProvider,
SafeAreaProvider,
TamaguiProvider,
ToastProvider,
QueryClientProvider,
// GlobalStoreProvider,
// BottomSheetProvider,
// BottomSheetModalProvider,
NotificationProvider,
CalendarProvider,
RadarProviderWithKey,
])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment