From 87b7b425aaa134e88874934c3c99a4911e72021b Mon Sep 17 00:00:00 2001 From: Nikhil Bhatia Date: Tue, 1 Oct 2024 16:01:47 -0700 Subject: [PATCH] Reset settings on poll close --- .../src/components/voter_settings_manager.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/scan/frontend/src/components/voter_settings_manager.tsx b/apps/scan/frontend/src/components/voter_settings_manager.tsx index a8294d7743..c6b566cbf0 100644 --- a/apps/scan/frontend/src/components/voter_settings_manager.tsx +++ b/apps/scan/frontend/src/components/voter_settings_manager.tsx @@ -7,7 +7,7 @@ import { } from '@votingworks/ui'; import { DefaultTheme, ThemeContext } from 'styled-components'; import { LanguageCode } from '@votingworks/types'; -import { getAuthStatus, getScannerStatus } from '../api'; +import { getAuthStatus, getPollsInfo, getScannerStatus } from '../api'; /** * Side-effect component for monitoring for auth and voter session changes and @@ -19,6 +19,7 @@ export function VoterSettingsManager(): JSX.Element | null { const authStatusQuery = getAuthStatus.useQuery(); const scannerStatusQuery = getScannerStatus.useQuery(); + const pollsInfoQuery = getPollsInfo.useQuery(); const { reset: resetLanguage, setLanguage } = useLanguageControls(); const currentLanguage = useCurrentLanguage(); @@ -30,6 +31,19 @@ export function VoterSettingsManager(): JSX.Element | null { null ); + useQueryChangeListener(pollsInfoQuery, { + select: ({ pollsState }) => pollsState, + onChange: (newState) => { + // Reset to default theme when polls close + if (newState === 'polls_closed_final') { + voterSettingsManager.resetThemes(); + resetLanguage(); + setVoterSessionTheme(null); + setVoterLanguage(null); + } + }, + }); + useQueryChangeListener(authStatusQuery, { select: ({ status }) => status, onChange: (newStatus, previousStatus) => {