refactor: update sleep session logic, models, and agent protocols

This commit is contained in:
2026-06-04 16:37:37 +02:00
parent 81eadf618a
commit cfc3156906
6 changed files with 25 additions and 19 deletions
@@ -4,7 +4,7 @@ import { useSettings } from '../../hooks/useSettings';
import { Pagination } from './Pagination';
import { Edit2, Check, X, Trash2 } from 'lucide-react';
import type { SleepSessionRead } from '../../types';
import { formatDateTime, toLocalDatetimeInputValue, getDurationMinutes, formatMinutes } from '../../utils/time';
import { formatDateTime, toLocalDatetimeInputValue, getDurationMinutes, formatMinutes, toUTCFromLocalInput } from '../../utils/time';
export function SessionList() {
const { sessions, isLoading, updateSession, deleteSession, isDeleting } = useSessions();
@@ -29,13 +29,13 @@ export function SessionList() {
const handleSave = async (id: number) => {
try {
await updateSession({
sessionId: id,
payload: {
start_time: new Date(editStart).toISOString(),
end_time: editEnd ? new Date(editEnd).toISOString() : undefined,
}
});
await updateSession({
sessionId: id,
payload: {
start_time: toUTCFromLocalInput(editStart),
end_time: editEnd ? toUTCFromLocalInput(editEnd) : undefined,
},
});
setEditingId(null);
} catch (err) {
console.error(err);
+9 -3
View File
@@ -38,9 +38,15 @@ export function adjustForTimezone(utcMinutes: number): number {
* @returns string in "YYYY-MM-DDTHH:MM" format
*/
export function toLocalDatetimeInputValue(date: Date): string {
const offset = date.getTimezoneOffset() * 60 * 1000;
const localDate = new Date(date.getTime() - offset);
return localDate.toISOString().slice(0, 16);
const formatter = new Intl.DateTimeFormat('sv-SE', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
hour12: false,
});
return formatter.format(date).replace(' ', 'T');
}
export function formatElapsedTime(utcTimestamp: string): string {