Files
nirvana-v3/packages/desktop/src/controller/lineDataProvider.tsx
T
2022-05-06 05:28:52 -05:00

37 lines
1.0 KiB
TypeScript

import React, { useContext } from "react";
import $ws from "./sockets";
import MasterLineData from "@nirvana/core/models/masterLineData.model";
import SocketChannels from "@nirvana/core/sockets/channels";
import { User } from "@nirvana/core/models";
import { io } from "socket.io-client";
import { useEffect } from "react";
import { useUserLines } from "./index";
interface ILineDataContext {
// represents the modified and up to date lines data with availability from session
lines: MasterLineData[];
relevantUsers: User[];
}
const lineDataContext = React.createContext<ILineDataContext>({
lines: [],
relevantUsers: [],
});
export function LineDataProvider() {
// persistent store of lines
const { data: basicUserLinesData } = useUserLines();
// connect through ws to enrich basic lines data
useEffect(() => {
// $ws.on(SocketChannels.CONNECT, );
}, [basicUserLinesData]);
// get updated associations with certain lines
}
export function useLineDataProvider() {
return useContext(lineDataContext);
}