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:
@@ -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();
|
||||
|
||||
+14
-1
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user