fix(web/udt-011): AuditFilters datetime-local usa parseArgentinaDateTimeToUtc (fix BUG-FE-05)

This commit is contained in:
2026-04-18 10:26:56 -03:00
parent 03a02c63d5
commit ef4b02be3b

View File

@@ -2,6 +2,7 @@ import { useState, type FormEvent } from 'react'
import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
import { Button } from '@/components/ui/button'
import { parseArgentinaDateTimeToUtc } from '@/lib/dateFormat'
/** Filtros crudos del form (todos strings para binding directo del input). */
export interface AuditFiltersValue {
@@ -132,8 +133,8 @@ export function AuditFilters({
* que espera el cliente de API.
*
* - `actor` vacío o NaN → omitido
* - `from`/`to` vienen del `datetime-local` (local time, sin timezone).
* Los convertimos a ISO UTC vía `new Date(...).toISOString()`.
* - `from`/`to` vienen del `datetime-local` (hora ART implícita, sin timezone).
* Los convertimos a ISO UTC vía `parseArgentinaDateTimeToUtc()` (fix BUG-FE-05).
* - Strings vacíos → omitidos.
*/
export function toApiFilter(
@@ -148,12 +149,11 @@ export function toApiFilter(
if (value.targetType.trim() !== '') out.targetType = value.targetType.trim()
if (value.targetId.trim() !== '') out.targetId = value.targetId.trim()
if (value.from.trim() !== '') {
const d = new Date(value.from)
if (!Number.isNaN(d.getTime())) out.from = d.toISOString()
// BUG-FE-05: interpretar el string como ART (-03:00), no como local del browser
try { out.from = parseArgentinaDateTimeToUtc(value.from) } catch { /* invalid input */ }
}
if (value.to.trim() !== '') {
const d = new Date(value.to)
if (!Number.isNaN(d.getTime())) out.to = d.toISOString()
try { out.to = parseArgentinaDateTimeToUtc(value.to) } catch { /* invalid input */ }
}
return out