pcp-tgu-ops-ui: надёжный 24ч ввод времени (своё текстовое поле вместо нативного)
Нативные input type=time/datetime-local рендерят время по локали браузера/ОС (AM/PM) и игнорируют атрибут lang в Chrome — поэтому lang=ru-RU не помогал. Заменено на собственные контролы (components/timeFields.tsx): - Time24Field — текстовый ввод ЧЧ:ММ[:СС] с валидацией, детерминированный 24ч; - DateTime24Field — нативный календарь для даты + Time24Field для времени. Подключено в окне маршрута редактора и во всех datetime-local фильтрах (Планы, заявки на карте, создание/фильтр заявок).
This commit is contained in:
@@ -4,6 +4,7 @@ import { TGU_2D_MAP_LAYERS, type Tgu2DMapLayerKey, type Tgu2DMapLayersState } fr
|
||||
import type { Tgu2DMapLayerAvailability } from "./Tgu2DMapLayers";
|
||||
import type { RequestsState } from "./Tgu2DMapTab";
|
||||
import { parseUtc } from "../../utils/utcTime";
|
||||
import { DateTime24Field } from "../../components/timeFields";
|
||||
|
||||
const DAY_MS = 24 * 60 * 60 * 1000;
|
||||
|
||||
@@ -105,21 +106,11 @@ export function Tgu2DMapSidebar({
|
||||
<div className="tgu-map-requests-filter">
|
||||
<label className="tgu-field">
|
||||
<span>С</span>
|
||||
<input
|
||||
lang="ru-RU"
|
||||
type="datetime-local"
|
||||
value={requestsState.fromValue}
|
||||
onChange={(e) => onRequestsFromChange(e.target.value)}
|
||||
/>
|
||||
<DateTime24Field value={requestsState.fromValue} onChange={onRequestsFromChange} />
|
||||
</label>
|
||||
<label className="tgu-field">
|
||||
<span>По</span>
|
||||
<input
|
||||
lang="ru-RU"
|
||||
type="datetime-local"
|
||||
value={requestsState.toValue}
|
||||
onChange={(e) => onRequestsToChange(e.target.value)}
|
||||
/>
|
||||
<DateTime24Field value={requestsState.toValue} onChange={onRequestsToChange} />
|
||||
</label>
|
||||
<div className="tgu-map-requests-filter__actions">
|
||||
<button
|
||||
|
||||
Reference in New Issue
Block a user