diff --git a/src/components/admin/trafficUsage/filters/PeriodSelector.tsx b/src/components/admin/trafficUsage/filters/PeriodSelector.tsx
index da00ca9..9d020fe 100644
--- a/src/components/admin/trafficUsage/filters/PeriodSelector.tsx
+++ b/src/components/admin/trafficUsage/filters/PeriodSelector.tsx
@@ -1,5 +1,6 @@
import { useTranslation } from 'react-i18next';
import { CalendarIcon, XIcon } from '../TrafficIcons';
+import { DateField } from '../../../DateField';
// ──────────────────────────────────────────────────────────────────
// PeriodSelector — switches between fixed period tabs (1/3/7/14/30
@@ -44,22 +45,18 @@ export function PeriodSelector({
{t('admin.trafficUsage.dateFrom')}
- onCustomStartChange(e.target.value)}
- className="rounded-lg border border-dark-700 bg-dark-800 px-2 py-1 text-xs text-dark-200 focus:border-dark-600 focus:outline-none"
+ onChange={onCustomStartChange}
/>
{t('admin.trafficUsage.dateTo')}
- onCustomEndChange(e.target.value)}
- className="rounded-lg border border-dark-700 bg-dark-800 px-2 py-1 text-xs text-dark-200 focus:border-dark-600 focus:outline-none"
+ onChange={onCustomEndChange}
/>
@@ -721,12 +721,11 @@ export default function AdminAuditLog() {
>
{t('admin.auditLog.filters.dateTo')}
- setFilters((prev) => ({ ...prev, dateTo: e.target.value }))}
- className="w-full rounded-lg border border-dark-600 bg-dark-900 px-3 py-2 text-sm text-dark-100 outline-none transition-colors focus:border-accent-500"
+ min={filters.dateFrom}
+ onChange={(v) => setFilters((prev) => ({ ...prev, dateTo: v }))}
+ className="flex w-full items-center gap-2 rounded-lg border border-dark-600 bg-dark-900 px-3 py-2 text-sm text-dark-100 transition-colors hover:border-accent-500"
/>
diff --git a/src/pages/AdminPayments.tsx b/src/pages/AdminPayments.tsx
index 76daaab..e35f6c2 100644
--- a/src/pages/AdminPayments.tsx
+++ b/src/pages/AdminPayments.tsx
@@ -3,6 +3,7 @@ import { useNavigate } from 'react-router';
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import { useTranslation } from 'react-i18next';
import { adminPaymentsApi, type SearchStats } from '../api/adminPayments';
+import { DateField } from '../components/DateField';
import { useCurrency } from '../hooks/useCurrency';
import type { PendingPayment, PaginatedResponse } from '../types';
import { usePlatform } from '../platform/hooks/usePlatform';
@@ -327,20 +328,20 @@ export default function AdminPayments() {
- setDateFrom(e.target.value)}
- className="w-full rounded-lg border border-dark-700 bg-dark-800 px-3 py-2 text-sm text-dark-100 focus:border-accent-500 focus:outline-none"
+ max={dateTo}
+ onChange={setDateFrom}
+ className="flex w-full items-center gap-2 rounded-lg border border-dark-700 bg-dark-800 px-3 py-2 text-sm text-dark-100 transition-colors hover:border-accent-500"
/>
- setDateTo(e.target.value)}
- className="w-full rounded-lg border border-dark-700 bg-dark-800 px-3 py-2 text-sm text-dark-100 focus:border-accent-500 focus:outline-none"
+ min={dateFrom}
+ onChange={setDateTo}
+ className="flex w-full items-center gap-2 rounded-lg border border-dark-700 bg-dark-800 px-3 py-2 text-sm text-dark-100 transition-colors hover:border-accent-500"
/>