From fb4ba62e7779985a5f6796c74d0113d0d35714e2 Mon Sep 17 00:00:00 2001 From: AnshShah-18 Date: Wed, 4 Nov 2026 23:39:31 -0600 Subject: [PATCH 1/2] fix timer submission pause and clear behavior --- .../Timelog/TimeEntryForm/TimeEntryForm.jsx | 16 +++++----- .../__tests__/TimeEntryForm.test.jsx | 29 +++++++++++++++++++ src/components/Timer/Timer.jsx | 3 +- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/src/components/Timelog/TimeEntryForm/TimeEntryForm.jsx b/src/components/Timelog/TimeEntryForm/TimeEntryForm.jsx index cfadb2d52b2..79a4fd82424 100644 --- a/src/components/Timelog/TimeEntryForm/TimeEntryForm.jsx +++ b/src/components/Timelog/TimeEntryForm/TimeEntryForm.jsx @@ -72,7 +72,8 @@ function TimeEntryForm(props) { // props from parent const { from, - sendStop, + sendPause, + sendClear, edit, data, toggle, @@ -370,6 +371,9 @@ function TimeEntryForm(props) { setSubmitting(false); return; } + if (from === 'Timer') { + sendPause(); + } const handleFormReset = () => { setFormValues(initialFormValues); @@ -386,12 +390,7 @@ function TimeEntryForm(props) { const handlePostSubmitActions = async () => { switch (from) { case 'Timer': { - const timerStopped = await sendStop(); - if (!timerStopped) { - toast.warning( - 'Time was logged, but the timer stop could not be confirmed. Refresh the timer before continuing.', - ); - } + sendClear(); clearForm(); // Enhanced callback with additional data if (onTimeSubmitted) { @@ -933,7 +932,8 @@ function TimeEntryForm(props) { TimeEntryForm.propTypes = { from: PropTypes.string, - sendStop: PropTypes.func, + sendPause: PropTypes.func, + sendClear: PropTypes.func, edit: PropTypes.bool.isRequired, toggle: PropTypes.func.isRequired, isOpen: PropTypes.bool.isRequired, diff --git a/src/components/Timelog/TimeEntryForm/__tests__/TimeEntryForm.test.jsx b/src/components/Timelog/TimeEntryForm/__tests__/TimeEntryForm.test.jsx index fa708e35ff1..4d0703be8c2 100644 --- a/src/components/Timelog/TimeEntryForm/__tests__/TimeEntryForm.test.jsx +++ b/src/components/Timelog/TimeEntryForm/__tests__/TimeEntryForm.test.jsx @@ -152,4 +152,33 @@ it('should change Project with user input', async () => { expect(select).toHaveValue(toSelect.projectId); expect(select).toHaveDisplayValue(toSelect.projectName); }); +it('pauses on timer submit and clears after successful logging', async () => { + const sendPause = vi.fn(); + const sendClear = vi.fn(); + + renderWithProvider( + , + { store }, + ); + + await userEvent.click(screen.getByRole('button', { name: /submit/i })); + + await waitFor(() => { + expect(sendPause).toHaveBeenCalledTimes(1); + expect(sendClear).toHaveBeenCalledTimes(1); + }); + + expect(sendPause.mock.invocationCallOrder[0]).toBeLessThan( + sendClear.mock.invocationCallOrder[0], + ); +}); }); diff --git a/src/components/Timer/Timer.jsx b/src/components/Timer/Timer.jsx index a227f21aec1..675404f19eb 100644 --- a/src/components/Timer/Timer.jsx +++ b/src/components/Timer/Timer.jsx @@ -816,7 +816,8 @@ function Timer({ authUser, darkMode, isPopout }) { toggle={toggleLogTimeModal} isOpen={logTimeEntryModal} data={logTimer} - sendStop={sendStop} + sendPause={sendPause} + sendClear={sendClear} timerConnected={customReadyState === ReadyState.OPEN} onTimeSubmitted={handleTimeSubmitted} sessionId={sessionId} From 985c8575f4ff35abdfc7985f147861f9437870dd Mon Sep 17 00:00:00 2001 From: AnshShah-18 Date: Fri, 6 Nov 2026 01:16:36 -0600 Subject: [PATCH 2/2] remove unused timer stop assignment --- src/components/Timer/Timer.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/Timer/Timer.jsx b/src/components/Timer/Timer.jsx index 675404f19eb..aa86c9f70f7 100644 --- a/src/components/Timer/Timer.jsx +++ b/src/components/Timer/Timer.jsx @@ -444,7 +444,6 @@ function Timer({ authUser, darkMode, isPopout }) { sendStart, sendPause, sendClear, - sendStop, sendAckForced, sendGetTimer, sendStartChime,