Skip to content

Commit c42e726

Browse files
committed
Add off-day remote reset all action
1 parent 0c6ab0c commit c42e726

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

src/hooks/useNotifyCompRemoteActivities/useNotifyCompRemoteActivities.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,12 @@ export function useNotifyCompRemoteActivities({
160160
variables: { competitionId, activityIds },
161161
}),
162162
),
163+
resetAllActivities: () =>
164+
runMutation(() =>
165+
resetActivities({
166+
variables: { competitionId },
167+
}),
168+
),
163169
resetActivity: (activityId: number) =>
164170
runMutation(() =>
165171
resetActivity({

src/pages/Competition/Remote/index.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { useParams } from 'react-router-dom';
44
import { BarLoader } from 'react-spinners';
55
import { Button, Container, NoteBox } from '@/components';
66
import { useCompetitionRemoteControl } from '@/hooks/useCompetitionRemoteControl';
7+
import { isCompetitionDay } from '@/lib/competitionDates';
78
import { RemoteActivityGroup } from '@/lib/notifyCompRemoteActivities';
89
import { useNotifyCompRemoteAuth } from '@/providers/NotifyCompRemoteAuthProvider';
910
import { useWCIF } from '@/providers/WCIFProvider';
@@ -38,6 +39,10 @@ export default function CompetitionRemote() {
3839
return null;
3940
}
4041

42+
const hasStartedRemoteActivities = remote.activities.some((activity) => activity.startTime);
43+
const canResetAllActivities =
44+
Boolean(remote.competition) && !isCompetitionDay(wcif) && hasStartedRemoteActivities;
45+
4146
const selectGroup = (group: RemoteActivityGroup) => {
4247
const action =
4348
group.status === 'done'
@@ -140,6 +145,26 @@ export default function CompetitionRemote() {
140145
onSelectGroup={selectGroup}
141146
/>
142147
</div>
148+
149+
{canResetAllActivities && (
150+
<div className="border-t border-tertiary-weak pt-4 text-right">
151+
<Button
152+
type="button"
153+
variant="gray"
154+
disabled={remote.isSaving}
155+
onClick={() => {
156+
if (
157+
confirmAction(
158+
'Reset all NotifyComp activities for this competition? This will clear every remote start and stop time.',
159+
)
160+
) {
161+
void remote.resetAllActivities();
162+
}
163+
}}>
164+
Reset all activities
165+
</Button>
166+
</div>
167+
)}
143168
</div>
144169
)}
145170
</>

0 commit comments

Comments
 (0)