Merge pull request #5 from MauMauStudios/developmaunt

Developmaunt
This commit is contained in:
Jordan Geurtsen
2023-04-07 12:29:36 +02:00
committed by GitHub
4 changed files with 57 additions and 11 deletions

View File

@@ -4,14 +4,21 @@ services:
build:
context: .
dockerfile: Dockerfile
#target: final
container_name: 'MauMau-Client'
ports:
- '3000:3000'
restart: always
networks:
- MauMau
labels:
traefik.enable: "true"
traefik.http.routers.maumau.entrypoints: "websecure"
traefik.http.routers.maumau.rule: "Host(`mau-mau.nl`)"
traefik.http.routers.maumau.tls: "true"
traefik.http.routers.maumau.tls.certresolver: "lets-encrypt"
traefik.docker.network: "traefik"
networks:
MauMau:
# hier later extern naar client
driver: bridge
traefik:
external: true

View File

@@ -2,14 +2,17 @@ import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import ThemeContextProvider from "./utils/contexts/ThemeContext";
import AuthContextProvider from "./utils/contexts/AuthContext";
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
document.getElementById('root') as HTMLElement
);
root.render(
<React.StrictMode>
<ThemeContextProvider>
<App />
</ThemeContextProvider>
</React.StrictMode>
<React.StrictMode>
<AuthContextProvider>
<ThemeContextProvider>
<App/>
</ThemeContextProvider>
</AuthContextProvider>
</React.StrictMode>
);

View File

@@ -14,8 +14,8 @@ const MainLobby = () => {
const handleCreateRoom = () => {
fetch(ROOM_URL, {
method: 'POST',
}).then(r => r.json()).then(data => {
navigateTo(`/room/${data}`)
}).then(res => res.json()).then(room => {
navigateTo(`/room/${room}`);
});
}

View File

@@ -0,0 +1,36 @@
import React from "react";
const AUTH_URL = `http://${process.env.REACT_APP_API_URL}/auth`;
interface IAuthContext {
sessionToken: string
}
const AuthContext = React.createContext<IAuthContext>({
sessionToken: ''
});
export const useAuth = () => React.useContext(AuthContext);
const AuthContextProvider = ({children}: any) => {
const [sessionToken] = React.useState('');
React.useEffect(() => {
const token = window.localStorage.getItem('session_token');
if (!token) {
fetch(AUTH_URL, {
method: 'GET'
}).then(res => res.json()).then(token => {
window.localStorage.setItem('session_token', token);
});
}
}, []);
return (
<AuthContext.Provider value={{sessionToken}}>
{children}
</AuthContext.Provider>
);
};
export default AuthContextProvider;