mirror of
https://github.com/mudabbir-ahmad/MAD-Treasure-Hunt.git
synced 2026-10-08 03:00:20 +00:00
Add initial JSON data files and implement core page components for game functionality
This commit is contained in:
1 parent
81847a9188
commit
ca27f8d6ed
54 files changed
+2424
-250
No files matched your search
@@ -0,0 +1,66 @@
|
||||
import { useCallback, useEffect, useState } from 'react';
|
||||
import { createSubgroup, getSubgroups, updateSubgroupCache } from '../API/API';
|
||||
import { getSession } from '../Model/SessionStore';
|
||||
|
||||
const useSubgroupAdminViewModel = () => {
|
||||
const [subgroups, setSubgroups] = useState([]);
|
||||
const [subgroupName, setSubgroupName] = useState('');
|
||||
const [cacheTriggerMeters, setCacheTriggerMeters] = useState('20');
|
||||
const [error, setError] = useState('');
|
||||
const { currentGid } = getSession();
|
||||
|
||||
const loadSubgroups = useCallback(async () => {
|
||||
if (!currentGid) {
|
||||
return;
|
||||
}
|
||||
const rows = await getSubgroups(currentGid);
|
||||
setSubgroups(rows);
|
||||
}, [currentGid]);
|
||||
|
||||
useEffect(() => {
|
||||
loadSubgroups();
|
||||
}, [loadSubgroups]);
|
||||
|
||||
const addSubgroup = async () => {
|
||||
setError('');
|
||||
try {
|
||||
await createSubgroup({
|
||||
gid: currentGid,
|
||||
subgroupName: subgroupName.trim(),
|
||||
cacheTriggerMeters: Number(cacheTriggerMeters),
|
||||
});
|
||||
setSubgroupName('');
|
||||
await loadSubgroups();
|
||||
return true;
|
||||
} catch (e) {
|
||||
setError(e.message);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
const updateCacheForSubgroup = async (sgid, triggerMeters) => {
|
||||
setError('');
|
||||
try {
|
||||
await updateSubgroupCache({ gid: currentGid, sgid, triggerMeters });
|
||||
await loadSubgroups();
|
||||
return true;
|
||||
} catch (e) {
|
||||
setError(e.message);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
subgroups,
|
||||
subgroupName,
|
||||
cacheTriggerMeters,
|
||||
error,
|
||||
setSubgroupName,
|
||||
setCacheTriggerMeters,
|
||||
addSubgroup,
|
||||
updateCacheForSubgroup,
|
||||
};
|
||||
};
|
||||
|
||||
export default useSubgroupAdminViewModel;
|
||||
|
||||
Reference in new issue
Block a user