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