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 * 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 { AuthProvider } from './providers/AuthProvider';
|
||||||
|
import { ElectronProvider } from './providers/ElectronProvider';
|
||||||
import ErrorParent from './providers/ErrorBoundary';
|
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';
|
import { connectCore } from '@nirvana/core/src/index';
|
||||||
|
|
||||||
connectCore();
|
connectCore();
|
||||||
@@ -27,9 +26,11 @@ root.render(
|
|||||||
<ErrorParent>
|
<ErrorParent>
|
||||||
<ElectronProvider>
|
<ElectronProvider>
|
||||||
<AuthProvider>
|
<AuthProvider>
|
||||||
<TerminalProvider>
|
<ZenProvider>
|
||||||
<></>
|
<TerminalProvider>
|
||||||
</TerminalProvider>
|
<></>
|
||||||
|
</TerminalProvider>
|
||||||
|
</ZenProvider>
|
||||||
</AuthProvider>
|
</AuthProvider>
|
||||||
</ElectronProvider>
|
</ElectronProvider>
|
||||||
</ErrorParent>
|
</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