initial provider boilerplating...will be clean soon!!!!
This commit is contained in:
@@ -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>
|
||||
<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);
|
||||
}
|
||||
Reference in New Issue
Block a user