basic functionnalities

This commit is contained in:
grimhilt
2023-07-30 19:14:14 +02:00
parent f820f0142b
commit 0461ef6f93
9 changed files with 260 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
import { createContext, useState, useContext } from 'react';
const AuthContext = createContext();
const AuthProvider = ({ children }) => {
const [role, setRole] = useState(localStorage.getItem('role') ?? 'user');
return <AuthContext.Provider value={{ role, setRole }}>{children}</AuthContext.Provider>;
};
const logout = () => {
localStorage.removeItem('role');
window.location.href = '/auth';
};
const useAuth = () => useContext(AuthContext);
export default AuthContext;
export { AuthProvider, logout, useAuth };

View File

@@ -0,0 +1,15 @@
import { useLocalStorage, useColorScheme } from '@mantine/hooks';
const useColorSchemeToggle = function(){
const defaultColorScheme = useColorScheme()
const [colorScheme, setColorScheme] = useLocalStorage({
key: 'mantine-color-scheme',
defaultValue: defaultColorScheme,
getInitialValueInEffect: true,
});
const toggleColorScheme = () =>
setColorScheme((colorScheme === 'dark' ? 'light' : 'dark'));
return [ colorScheme, toggleColorScheme ];
};
export { useColorSchemeToggle };

View File

@@ -0,0 +1,8 @@
import { useAuth } from './auth-provider';
const GrantAccess = ({ roles, children }) => {
const { role } = useAuth();
return roles.includes(role) ? children : null;
};
export default GrantAccess;

16
src/tools/timeUtil.js Normal file
View File

@@ -0,0 +1,16 @@
export const parseTime = (preparationTime) => {
let res = '';
let hours = Math.floor(preparationTime / 3600);
res += hours > 0 ? `${hours}h` : '';
let min = Math.floor((preparationTime % 3600) / 60);
if (min > 0 && res != '') res += ' ';
res += min > 0 ? `${min}m` : '';
let sec = Math.floor((preparationTime % 3600) % 60);
if (sec > 0 && res != '') res += ' ';
res += sec > 0 ? `${sec}s` : '';
if (res == '') res = '0s';
return res;
};