diff --git a/apps/dashboard/src/components/data-table/maintenances/columns.tsx b/apps/dashboard/src/components/data-table/maintenances/columns.tsx index cb405916..839181c1 100644 --- a/apps/dashboard/src/components/data-table/maintenances/columns.tsx +++ b/apps/dashboard/src/components/data-table/maintenances/columns.tsx @@ -1,6 +1,7 @@ "use client"; import { ProcessMessage } from "@/components/content/process-message"; +import { TableCellDate } from "@/components/data-table/table-cell-date"; import { TableCellNumber } from "@/components/data-table/table-cell-number"; import { DataTableColumnHeader } from "@/components/ui/data-table/data-table-column-header"; import type { RouterOutputs } from "@openstatus/api"; @@ -39,18 +40,7 @@ export const columns: ColumnDef[] = [ header: ({ column }) => ( ), - cell: ({ row }) => { - const value = row.getValue("from"); - if (value instanceof Date) { - return ( -
{value.toLocaleString()}
- ); - } - if (typeof value === "string") { - return
{value}
; - } - return
-
; - }, + cell: ({ row }) => , enableHiding: false, }, { diff --git a/apps/dashboard/src/components/data-table/status-report-updates/data-table.tsx b/apps/dashboard/src/components/data-table/status-report-updates/data-table.tsx index f0e18b89..54f46797 100644 --- a/apps/dashboard/src/components/data-table/status-report-updates/data-table.tsx +++ b/apps/dashboard/src/components/data-table/status-report-updates/data-table.tsx @@ -1,6 +1,7 @@ "use client"; import { ProcessMessage } from "@/components/content/process-message"; +import { TableCellDate } from "@/components/data-table/table-cell-date"; import { FormSheetStatusReportUpdate } from "@/components/forms/status-report-update/sheet"; import { Button } from "@/components/ui/button"; import { @@ -116,7 +117,7 @@ export function DataTable({ - {update.date.toLocaleString()} + diff --git a/apps/dashboard/src/components/data-table/table-cell-date.tsx b/apps/dashboard/src/components/data-table/table-cell-date.tsx index e5391420..e105ec8c 100644 --- a/apps/dashboard/src/components/data-table/table-cell-date.tsx +++ b/apps/dashboard/src/components/data-table/table-cell-date.tsx @@ -1,3 +1,4 @@ +import { HoverCardTimestamp } from "@/components/common/hover-card-timestamp"; import { cn } from "@/lib/utils"; import { format } from "date-fns"; @@ -9,9 +10,11 @@ export function TableCellDate({ }: React.ComponentProps<"div"> & { value: unknown; formatStr?: string }) { if (value instanceof Date) { return ( -
- {format(value, formatStr)} -
+ +
+ {format(value, formatStr)} +
+
); } if (typeof value === "string") { diff --git a/apps/dashboard/src/components/forms/maintenance/form.tsx b/apps/dashboard/src/components/forms/maintenance/form.tsx index a3aeff07..aff58ea4 100644 --- a/apps/dashboard/src/components/forms/maintenance/form.tsx +++ b/apps/dashboard/src/components/forms/maintenance/form.tsx @@ -71,6 +71,7 @@ export function FormMaintenance({ onSubmit: (values: FormValues) => Promise; }) { const mobile = useIsMobile(); + const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; const form = useForm({ resolver: zodResolver(schema), defaultValues: defaultValues ?? { @@ -81,6 +82,7 @@ export function FormMaintenance({ monitors: [], }, }); + const watchEndDate = form.watch("endDate"); const watchMessage = form.watch("message"); const [isPending, startTransition] = useTransition(); const { setIsDirty } = useFormSheetDirty(); @@ -184,17 +186,22 @@ export function FormMaintenance({ field.value.getMilliseconds(), ); field.onChange(newDate); + + // NOTE: if end date is before start date, set it to the same day as the start date + if (watchEndDate && newDate > watchEndDate) { + form.setValue("endDate", newDate); + } }} initialFocus />
-