fix(web/udt-011): AuditFilters datetime-local usa parseArgentinaDateTimeToUtc (fix BUG-FE-05)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user