progress in auth and other contexts
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import React, { useContext, useState, useEffect } from 'react';
|
||||
import { User } from '@nirvana/core/models/user.model';
|
||||
|
||||
interface IAuthProvider {
|
||||
user: User;
|
||||
}
|
||||
|
||||
const AuthContext = React.createContext<IAuthProvider>({
|
||||
user: null,
|
||||
});
|
||||
|
||||
export function AuthProvider({ children }: { children: React.ReactNode }) {
|
||||
if (true) return <></>;
|
||||
|
||||
return <AuthContext.Provider value={{}}>{children}</AuthContext.Provider>;
|
||||
}
|
||||
|
||||
export default function useAuth() {
|
||||
return useContext(AuthContext);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useContext, useEffect, useState } from 'react';
|
||||
import Channels, { DEFAULT_APP_PRESET, Dimensions } from '../electron/constants';
|
||||
|
||||
interface IElectronProvider {
|
||||
@@ -12,7 +12,7 @@ const ElectronContext = React.createContext<IElectronProvider>({
|
||||
desktopMode: 'mainApp',
|
||||
});
|
||||
|
||||
export default function ElectronProvider({ children }: { children: React.ReactNode }) {
|
||||
export function ElectronProvider({ children }: { children: React.ReactNode }) {
|
||||
const [desktopMode, setDesktopMode] = useState<DesktopMode>('mainApp');
|
||||
|
||||
// handle all window resizing logic
|
||||
@@ -62,3 +62,7 @@ export default function ElectronProvider({ children }: { children: React.ReactNo
|
||||
|
||||
return <ElectronContext.Provider value={{ desktopMode }}>{children}</ElectronContext.Provider>;
|
||||
}
|
||||
|
||||
export default function useElectron() {
|
||||
return useContext(ElectronContext);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,34 @@
|
||||
import React from 'react';
|
||||
import React, { useState, useEffect, useContext } from 'react';
|
||||
import { Socket } from 'socket.io-client';
|
||||
|
||||
export default function SocketProvider() {
|
||||
return <div></div>;
|
||||
interface ISocketProvider {
|
||||
$ws: Socket;
|
||||
}
|
||||
|
||||
const SocketContext = React.createContext<ISocketProvider>({
|
||||
$ws: null,
|
||||
});
|
||||
|
||||
export function SocketProvider({ children }: { children: React.ReactNode }) {
|
||||
const [$ws, set$ws] = useState<Socket>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const socketConnection = io('http://localhost:5000', {
|
||||
query: { token: jwtToken },
|
||||
transports: ['websocket'],
|
||||
upgrade: false,
|
||||
forceNew: true,
|
||||
reconnection: false, // ! TESTING THE PROBLEM WITH RECONNECTION CLIENT LISTENERS NOT ACTIVATING
|
||||
});
|
||||
|
||||
set$ws(socketConnection);
|
||||
}, [set$ws]);
|
||||
|
||||
if (!$ws) return <span>please wait for a solid connection</span>;
|
||||
|
||||
return <SocketContext.Provider value={{ $ws }}>{children}</SocketContext.Provider>;
|
||||
}
|
||||
|
||||
export default function useSockets() {
|
||||
return useContext(SocketContext);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user