Files
MAD-Treasure-Hunt/app/ViewModel/useTeamViewModel.js
T

34 lines
709 B
JavaScript

import { useEffect, useState } from 'react';
import { getTeam } from '../API/API';
import { getSession } from '../Model/SessionStore';
const useTeamViewModel = (teamId = null) => {
const [team, setTeam] = useState(null);
const resolvedTeamId = teamId ?? getSession().currentTGid;
useEffect(() => {
if (!resolvedTeamId) {
setTeam(null);
return;
}
let active = true;
getTeam(resolvedTeamId).then((payload) => {
if (active) {
setTeam(payload);
}
}).catch(() => {
if (active) {
setTeam(null);
}
});
return () => {
active = false;
};
}, [resolvedTeamId]);
return { team };
};
export default useTeamViewModel;