Skip to content

Commit 5c0ffdc

Browse files
committed
fix(getcloser): redirect to create view if myId is not exist in ready_members
1 parent 88dc6ab commit 5c0ffdc

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

getcloser/frontend/src/app/pages/Page2.tsx

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,28 @@ export default function Page2() {
224224
const interval = setInterval(async () => {
225225
try {
226226
const response = await authenticatedFetch(`/api/v1/teams/${String(teamId)}/status`);
227-
if (!response.ok) throw new Error('Failed to fetch team status');
227+
228+
if (!response.ok) {
229+
if (response.status === 404 || response.status === 403) {
230+
console.error('Team not found or user not authorized. Returning to create view.');
231+
setView('create');
232+
clearInterval(interval);
233+
return;
234+
}
235+
throw new Error(`Failed to fetch team status: ${response.status}`);
236+
}
237+
228238
const memberStatuses: { team_id: number, status: string, members_ready: number[] } = await response.json();
229239
const readyMemberIds = new Set(memberStatuses.members_ready);
230240

241+
// Per user request, if our ID is not in the list from the server, return to create view.
242+
if (myId && !readyMemberIds.has(Number(myId))) {
243+
console.log('User ID not in members_ready list. Returning to create view.', myId, readyMemberIds);
244+
setView('create');
245+
clearInterval(interval);
246+
return;
247+
}
248+
231249
setTeamMembers(prevTeamMembers =>
232250
prevTeamMembers.map(member => ({
233251
...member,
@@ -236,11 +254,13 @@ export default function Page2() {
236254
);
237255
} catch (error) {
238256
console.error('Error polling team status:', error);
257+
setView('create');
258+
clearInterval(interval);
239259
}
240260
}, 2000);
241261

242262
return () => clearInterval(interval);
243-
}, [view, teamId]);
263+
}, [view, teamId, myId, setView]);
244264

245265
useEffect(() => {
246266
if (view === 'waiting' && teamMembers.length > 0 && teamMembers.every(m => m.is_ready)) {

0 commit comments

Comments
 (0)