diff --git a/src/pages/AdminRemnawave.tsx b/src/pages/AdminRemnawave.tsx index f60503d..e5b9365 100644 --- a/src/pages/AdminRemnawave.tsx +++ b/src/pages/AdminRemnawave.tsx @@ -664,9 +664,6 @@ interface SyncTabProps { onRunAutoSync: () => void; onSyncFromPanel: () => void; onSyncToPanel: () => void; - onValidate: () => void; - onCleanup: () => void; - onSyncStatuses: () => void; syncResults: Record; loadingStates: Record; } @@ -677,9 +674,6 @@ function SyncTab({ onRunAutoSync, onSyncFromPanel, onSyncToPanel, - onValidate, - onCleanup, - onSyncStatuses, syncResults, loadingStates, }: SyncTabProps) { @@ -703,135 +697,98 @@ function SyncTab({ {t('admin.remnawave.sync.autoSync', 'Auto Sync')} - - {autoSyncStatus.enabled ? 'Enabled' : 'Disabled'} - +
+ + {autoSyncStatus.enabled ? 'Enabled' : 'Disabled'} + + +
-
-
-

Schedule

-

+

+
+

+ {t('admin.remnawave.sync.schedule', 'Schedule')} +

+

{autoSyncStatus.times.length > 0 ? autoSyncStatus.times.join(', ') : '—'}

-
-

Next Run

-

+

+

+ {t('admin.remnawave.sync.nextRun', 'Next Run')} +

+

{autoSyncStatus.next_run ? new Date(autoSyncStatus.next_run).toLocaleString() : '—'}

-
-

Last Run

-

+

+

+ {t('admin.remnawave.sync.lastRun', 'Last Run')} +

+

{autoSyncStatus.last_run_finished_at ? new Date(autoSyncStatus.last_run_finished_at).toLocaleString() : '—'}

-
-

Status

+
+

{t('admin.remnawave.sync.status', 'Status')}

{autoSyncStatus.is_running - ? 'Running...' + ? t('admin.remnawave.sync.running', 'Running...') : autoSyncStatus.last_run_success - ? 'Success' + ? t('admin.remnawave.sync.success', 'Success') : autoSyncStatus.last_run_error || '—'}

- -
)} - {/* Manual Sync Options */} -
-

- {t('admin.remnawave.sync.manual', 'Manual Sync')} -

-
- - -
-
- - {/* Subscriptions */} -
-

- {t('admin.remnawave.sync.subscriptions', 'Subscriptions')} -

-
- - - -
+ {/* Manual Sync */} +
+ +
); @@ -1074,11 +1031,6 @@ export default function AdminRemnawave() { handleSyncAction('fromPanel', () => adminRemnawaveApi.syncFromPanel('all')) } onSyncToPanel={() => handleSyncAction('toPanel', adminRemnawaveApi.syncToPanel)} - onValidate={() => handleSyncAction('validate', adminRemnawaveApi.validateSubscriptions)} - onCleanup={() => handleSyncAction('cleanup', adminRemnawaveApi.cleanupSubscriptions)} - onSyncStatuses={() => - handleSyncAction('statuses', adminRemnawaveApi.syncSubscriptionStatuses) - } syncResults={syncResults} loadingStates={loadingStates} />