initial provider boilerplating...will be clean soon!!!!

This commit is contained in:
talksik
2022-05-31 06:31:07 -05:00
parent baf3d6f9a3
commit ad1a58ab5c
6 changed files with 62 additions and 11 deletions
+12 -11
View File
@@ -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(
<ErrorParent>
<ElectronProvider>
<AuthProvider>
<TerminalProvider>
<></>
</TerminalProvider>
<ZenProvider>
<TerminalProvider>
<></>
</TerminalProvider>
</ZenProvider>
</AuthProvider>
</ElectronProvider>
</ErrorParent>
@@ -0,0 +1,3 @@
interface CommunicationsProvider {
userLocalStream?: MediaStream;
}
@@ -0,0 +1,13 @@
import { ConversationContentMap, ConversationMap } from '../util/types';
import React from 'react';
interface IConversationContext {
conversationMap: ConversationMap;
conversationContentMap: ConversationContentMap;
}
const ConversationContext = React.createContext<IConversationContext>({
conversationContentMap: {},
conversationMap: {},
});
@@ -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<IZenContext>({
flowState: false,
hasSecretAccess: false,
});
export function ZenProvider({ children }: { children: React.ReactNode }) {
const [flowState, setFlowState] = useState<boolean>(false);
const [hasSecretAccess, setHasSecretAccess] = useState<boolean>(false);
const toggleFlowState = useCallback(() => {
console.log('toggling flow state');
}, []);
return (
<ZenContext.Provider value={{ toggleFlowState, hasSecretAccess, flowState }}>
{children}
</ZenContext.Provider>
);
}
export default function useZen() {
return useContext(ZenContext);
}