feat(maintenance): Update maintenance mode status schema and UI logic

This commit is contained in:
debudebuye 2026-02-24 19:18:36 +03:00
parent ba209593f5
commit 83743343c9
2 changed files with 16 additions and 10 deletions

View File

@ -52,6 +52,8 @@ export default function MaintenancePage() {
return <div className="text-center py-8">Loading maintenance status...</div>
}
const isEnabled = status?.status === 'ACTIVE'
return (
<div className="space-y-6">
<h2 className="text-3xl font-bold">Maintenance Mode</h2>
@ -60,8 +62,8 @@ export default function MaintenancePage() {
<CardHeader>
<div className="flex items-center justify-between">
<CardTitle>Maintenance Status</CardTitle>
<Badge variant={status?.enabled ? 'destructive' : 'default'}>
{status?.enabled ? 'Enabled' : 'Disabled'}
<Badge variant={isEnabled ? 'destructive' : 'default'}>
{isEnabled ? 'Enabled' : 'Disabled'}
</Badge>
</div>
</CardHeader>
@ -74,12 +76,12 @@ export default function MaintenancePage() {
</p>
</div>
<Switch
checked={status?.enabled || false}
checked={isEnabled}
onCheckedChange={handleToggle}
/>
</div>
{!status?.enabled && (
{!isEnabled && (
<div className="space-y-2">
<Label htmlFor="message">Maintenance Message (Optional)</Label>
<Input
@ -94,7 +96,7 @@ export default function MaintenancePage() {
</div>
)}
{status?.enabled && status?.message && (
{isEnabled && status?.message && (
<div>
<Label>Current Message</Label>
<p className="text-sm mt-2">{status.message}</p>
@ -105,4 +107,3 @@ export default function MaintenancePage() {
</div>
)
}

View File

@ -30,10 +30,15 @@ export interface SystemInfo {
}
export interface MaintenanceStatus {
enabled: boolean
id: string
status: 'ACTIVE' | 'INACTIVE'
message?: string
scheduledStart?: string
scheduledEnd?: string
scheduledAt?: string | null
startedAt?: string | null
endedAt?: string | null
enabledBy?: string
createdAt: string
updatedAt: string
}
class SystemService {
@ -57,7 +62,7 @@ class SystemService {
* Get maintenance mode status
*/
async getMaintenanceStatus(): Promise<MaintenanceStatus> {
const response = await apiClient.get<MaintenanceStatus>('/admin/maintenance/status')
const response = await apiClient.get<MaintenanceStatus>('/admin/maintenance')
return response.data
}