mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-09 09:23:51 +00:00
6ac963684d
* chore: upgrade minor versions * chore: upgrade cypress * chore: upgrade fe dependencies * update readme * update osx images * update readme * upgrade dependencies * upgrade test dependency * feat: add option to input autofill * feat: autofill to the left * chore: update docs * chore: cleanup ci * version bump * style: prevent zero height bar * fix: prevent loosing menu * ux: improve input, no spellcheck or autocomplete * small ux improvements in cuesheets * feat 111/increase maximum number of events * fix: optimistic delete issue with filter * refact: pincode workflow * chore: add versioning to packages
56 lines
1.4 KiB
React
56 lines
1.4 KiB
React
import React, { createContext, useCallback, useEffect, useState } from 'react';
|
|
import { useFetch } from '../hooks/useFetch';
|
|
import { APP_SETTINGS } from '../api/apiConstants';
|
|
import { getSettings } from '../api/ontimeApi';
|
|
|
|
export const AppContext = createContext({
|
|
auth: false,
|
|
data: {
|
|
pinCode: null,
|
|
},
|
|
});
|
|
|
|
export const AppContextProvider = ({ children }) => {
|
|
const [auth, setAuth] = useState(true);
|
|
const { data } = useFetch(APP_SETTINGS, getSettings);
|
|
|
|
useEffect(() => {
|
|
if (data == null) return;
|
|
const previousEntry = sessionStorage.getItem('ontime-entry');
|
|
if (previousEntry) {
|
|
if (previousEntry === data?.pinCode) {
|
|
setAuth(true);
|
|
} else {
|
|
sessionStorage.removeItem('ontime-entry')
|
|
}
|
|
} else if (data?.pinCode == null || data?.pinCode === '') {
|
|
setAuth(true);
|
|
} else {
|
|
setAuth(false);
|
|
}
|
|
}, [data]);
|
|
|
|
/**
|
|
* Validates a pincode
|
|
* @return boolean - whether the pin is valid
|
|
*/
|
|
const validate = useCallback(
|
|
(pin) => {
|
|
let correct;
|
|
if (data?.pinCode == null || data?.pinCode === '') {
|
|
correct = true;
|
|
} else {
|
|
correct = pin === data?.pinCode;
|
|
}
|
|
if (correct) {
|
|
sessionStorage.setItem('ontime-entry', pin);
|
|
}
|
|
setAuth(correct);
|
|
return correct;
|
|
},
|
|
[data]
|
|
);
|
|
|
|
return <AppContext.Provider value={{ auth, validate }}>{children}</AppContext.Provider>;
|
|
};
|