basic functionnalities
This commit is contained in:
19
src/tools/auth-provider.js
Normal file
19
src/tools/auth-provider.js
Normal 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 };
|
||||
15
src/tools/color-scheme-toggle.jsx
Normal file
15
src/tools/color-scheme-toggle.jsx
Normal 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 };
|
||||
8
src/tools/grant-access.jsx
Normal file
8
src/tools/grant-access.jsx
Normal 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
16
src/tools/timeUtil.js
Normal 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;
|
||||
};
|
||||
Reference in New Issue
Block a user