Add ability to manually adjust the running timer's start time

Allows users to retroactively correct the start time of an ongoing timer
without stopping it. A pencil icon in the timer widget opens an inline
time input pre-filled with the current start time; confirming sends the
new time to the backend which validates it is in the past before persisting.
This commit is contained in:
simon.franken
2026-02-23 10:32:38 +01:00
parent c9f5bbb25a
commit 7358fa6256
6 changed files with 133 additions and 10 deletions

View File

@@ -17,6 +17,7 @@ interface TimerContextType {
elapsedSeconds: number;
startTimer: (projectId?: string) => Promise<void>;
updateTimerProject: (projectId?: string | null) => Promise<void>;
updateTimerStartTime: (startTime: string) => Promise<void>;
stopTimer: (projectId?: string) => Promise<TimeEntry | null>;
}
@@ -102,7 +103,14 @@ export function TimerProvider({ children }: { children: ReactNode }) {
const updateTimerProject = useCallback(
async (projectId?: string | null) => {
await updateMutation.mutateAsync(projectId);
await updateMutation.mutateAsync({ projectId });
},
[updateMutation],
);
const updateTimerStartTime = useCallback(
async (startTime: string) => {
await updateMutation.mutateAsync({ startTime });
},
[updateMutation],
);
@@ -127,6 +135,7 @@ export function TimerProvider({ children }: { children: ReactNode }) {
elapsedSeconds,
startTimer,
updateTimerProject,
updateTimerStartTime,
stopTimer,
}}
>