Drying out
This commit is contained in:
@@ -2,26 +2,7 @@ import React, { useState } from 'react';
|
||||
import { useSessions } from '../../hooks/useSleepSession';
|
||||
import { Edit2, Check, X } from 'lucide-react';
|
||||
import type { SleepSessionRead } from '../../types';
|
||||
|
||||
function formatDateTime(isoString: string): string {
|
||||
const iso = isoString.endsWith('Z') ? isoString : isoString + 'Z';
|
||||
const d = new Date(iso);
|
||||
return d.toLocaleString('sv-SE', {
|
||||
year: 'numeric',
|
||||
month: '2-digit',
|
||||
day: '2-digit',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
hour12: false
|
||||
}).replace(',', ' ');
|
||||
}
|
||||
|
||||
function toDatetimeLocal(isoString: string): string {
|
||||
const iso = isoString.endsWith('Z') ? isoString : isoString + 'Z';
|
||||
const d = new Date(iso);
|
||||
const pad = (n: number) => n.toString().padStart(2, '0');
|
||||
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}`;
|
||||
}
|
||||
import { formatDateTime, toLocalDatetimeInputValue, getDurationMinutes } from '../../utils/time';
|
||||
|
||||
export function SessionList() {
|
||||
const { sessions, isLoading, updateSession } = useSessions();
|
||||
@@ -50,8 +31,8 @@ export function SessionList() {
|
||||
|
||||
const startEditing = (s: SleepSessionRead) => {
|
||||
setEditingId(s.id);
|
||||
setEditStart(toDatetimeLocal(s.start_time));
|
||||
setEditEnd(s.end_time ? toDatetimeLocal(s.end_time) : '');
|
||||
setEditStart(toLocalDatetimeInputValue(new Date(s.start_time)));
|
||||
setEditEnd(s.end_time ? toLocalDatetimeInputValue(new Date(s.end_time)) : '');
|
||||
};
|
||||
|
||||
const handleCancel = () => {
|
||||
@@ -120,10 +101,11 @@ export function SessionList() {
|
||||
</div>
|
||||
<div className="flex items-center space-x-2">
|
||||
<span className="text-blue-600 font-mono text-sm">
|
||||
{s.end_time && s.start_time
|
||||
? `${Math.round((new Date(s.end_time + 'Z').getTime() - new Date(s.start_time + 'Z').getTime()) / 60000)} min`
|
||||
: '—'}
|
||||
</span>
|
||||
{s.end_time && s.start_time
|
||||
? `${getDurationMinutes(s.start_time, s.end_time)} min`
|
||||
: '—'}
|
||||
</span>
|
||||
|
||||
<Edit2 size={14} className="text-gray-400" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user