organizing stuff better with taking out a layer of abstraction as we don't have many pages and just do everything in the provider

This commit is contained in:
talksik
2022-05-18 06:57:55 -05:00
parent bd7dbb525c
commit ed7d71f5d0
8 changed files with 35 additions and 45 deletions
@@ -21,9 +21,8 @@
import React, { useEffect, useContext, useState, useRef, useMemo, useCallback } from 'react';
import Peer from 'simple-peer';
import useRealTimeRooms from './RealTimeRoomProvider';
import useAuth from './AuthProvider';
import { Updater, useImmer } from 'use-immer';
import { useImmer } from 'use-immer';
import useSockets from './SocketProvider';
import {
RtcReceiveSignalResponse,
@@ -32,6 +31,7 @@ import {
ServerResponseChannels,
} from '@nirvana/core/sockets/channels';
import toast from 'react-hot-toast';
import useTerminalProvider from './TerminalProvider';
type PeerMap = {
[userId: string]: Peer;
@@ -45,7 +45,7 @@ const StreamProviderContext = React.createContext<IStreamProvider>({
});
export function StreamProvider({ children }: { children: React.ReactChild }) {
const { roomsMap } = useRealTimeRooms();
const { roomsMap } = useTerminalProvider();
const { user } = useAuth();
const { $ws } = useSockets();
@@ -26,6 +26,9 @@ import { updateLineMemberState } from '../api/NirvanaApi';
import UpdateLineMemberState from '@nirvana/core/requests/updateLineMemberState.request';
import useAuth from './AuthProvider';
import { User } from '@nirvana/core/models/user.model';
import SidePanel from '../tree/protected/terminal/panels/SidePanel';
import MainPanel from '../tree/protected/terminal/panels/MainPanel';
import useElectron from './ElectronProvider';
type LineIdToMasterLine = {
[lineId: string]: MasterLineData;
@@ -113,6 +116,8 @@ export function RealTimeRoomProvider({ children }: { children: React.ReactChild
const { $ws } = useSockets();
const [roomMap, updateRoomMap] = useImmer<LineIdToMasterLine>({});
const { desktopMode } = useElectron();
const [selectedLineId, setSelectedLineId] = useState<string>();
const [moveLineState, moveLine] = useAsyncFn(updateLineMemberState);
@@ -353,11 +358,19 @@ export function RealTimeRoomProvider({ children }: { children: React.ReactChild
handleShowNewChannelForm,
}}
>
<div className="flex flex-col flex-1">
<div className="flex flex-row flex-1">
<SidePanel />
{desktopMode === 'mainApp' && <MainPanel />}
</div>
</div>
{children}
</RealTimeRoomContext.Provider>
);
}
export default function useRealTimeRooms() {
export default function useTerminalProvider() {
return useContext(RealTimeRoomContext);
}