diff --git a/packages/desktop/src/app.tsx b/packages/desktop/src/app.tsx index 8d43899..a9b14d8 100644 --- a/packages/desktop/src/app.tsx +++ b/packages/desktop/src/app.tsx @@ -1,15 +1,14 @@ -import { ThemeProvider } from '@mui/material'; import * as React from 'react'; -import ReactDOM from 'react-dom/client'; -import { TerminalProvider } from './components/Terminal'; - -import { SnackbarProvider } from 'notistack'; -import { NirvanaTheme } from './mui/NirvanaTheme'; -import { ElectronProvider } from './providers/ElectronProvider'; import { AuthProvider } from './providers/AuthProvider'; - +import { ElectronProvider } from './providers/ElectronProvider'; import ErrorParent from './providers/ErrorBoundary'; +import { NirvanaTheme } from './mui/NirvanaTheme'; +import ReactDOM from 'react-dom/client'; +import { SnackbarProvider } from 'notistack'; +import { TerminalProvider } from './components/Terminal'; +import { ThemeProvider } from '@mui/material'; +import { ZenProvider } from './providers/ZenProvider'; import { connectCore } from '@nirvana/core/src/index'; connectCore(); @@ -27,9 +26,11 @@ root.render( - - <> - + + + <> + + diff --git a/packages/desktop/src/providers/CommunicationsProvider.tsx b/packages/desktop/src/providers/CommunicationsProvider.tsx new file mode 100644 index 0000000..d1ac213 --- /dev/null +++ b/packages/desktop/src/providers/CommunicationsProvider.tsx @@ -0,0 +1,3 @@ +interface CommunicationsProvider { + userLocalStream?: MediaStream; +} diff --git a/packages/desktop/src/providers/ConversationProvider.tsx b/packages/desktop/src/providers/ConversationProvider.tsx new file mode 100644 index 0000000..a6bffe2 --- /dev/null +++ b/packages/desktop/src/providers/ConversationProvider.tsx @@ -0,0 +1,13 @@ +import { ConversationContentMap, ConversationMap } from '../util/types'; + +import React from 'react'; + +interface IConversationContext { + conversationMap: ConversationMap; + conversationContentMap: ConversationContentMap; +} + +const ConversationContext = React.createContext({ + conversationContentMap: {}, + conversationMap: {}, +}); diff --git a/packages/desktop/src/providers/RouteProvider.tsx b/packages/desktop/src/providers/RouteProvider.tsx new file mode 100644 index 0000000..e69de29 diff --git a/packages/desktop/src/providers/SearchProvider.tsx b/packages/desktop/src/providers/SearchProvider.tsx new file mode 100644 index 0000000..e69de29 diff --git a/packages/desktop/src/providers/ZenProvider.tsx b/packages/desktop/src/providers/ZenProvider.tsx new file mode 100644 index 0000000..42d772c --- /dev/null +++ b/packages/desktop/src/providers/ZenProvider.tsx @@ -0,0 +1,34 @@ +import React, { useCallback, useContext, useState } from 'react'; + +interface IZenContext { + flowState: boolean; + toggleFlowState?: () => void; + + hasSecretAccess: boolean; + + handleEscape?: () => void; +} + +const ZenContext = React.createContext({ + flowState: false, + hasSecretAccess: false, +}); + +export function ZenProvider({ children }: { children: React.ReactNode }) { + const [flowState, setFlowState] = useState(false); + const [hasSecretAccess, setHasSecretAccess] = useState(false); + + const toggleFlowState = useCallback(() => { + console.log('toggling flow state'); + }, []); + + return ( + + {children} + + ); +} + +export default function useZen() { + return useContext(ZenContext); +}