From 26be762c3a74ec3ccc4b54b67b168087f1b2b4e1 Mon Sep 17 00:00:00 2001 From: ryan Date: Mon, 13 Jul 2026 15:44:03 +0800 Subject: [PATCH] prettier --- .../components/access-log-filters.tsx | 18 +++-- .../access-logs/components/cleanup-dialog.tsx | 18 +++-- .../database/components/cache-manager.tsx | 26 ++++--- .../(main)/admin/demo/tabs/controls-tab.tsx | 26 +++++-- .../(main)/admin/demo/tabs/dashboard-tab.tsx | 6 +- .../admin/files/components/file-list.tsx | 37 ++++++---- .../admin/files/components/file-stats.tsx | 35 +++++++-- .../logs/components/access-analytics.tsx | 40 ++++++++--- .../admin/logs/components/access-logs.tsx | 50 +++++++++---- .../(main)/admin/logs/components/app-logs.tsx | 14 ++-- .../admin/push/components/events-tab.tsx | 71 ++++++++++++++----- .../users/components/create-user-modal.tsx | 22 +++--- .../users/components/edit-user-modal.tsx | 26 ++++--- .../dashboard/capacity-trend-chart.tsx | 14 ++-- .../dashboard/distribution-rank-charts.tsx | 15 +++- .../dashboard/geo-distribution-list.tsx | 16 +++-- .../components/cleanup-dialog.tsx | 16 ++--- .../components/diff-dialog.tsx | 23 ++++-- .../nodes/components/agent-update-dialog.tsx | 22 +++--- .../nodes/components/disk-io-trend-chart.tsx | 17 +++-- .../nodes/components/distribution-list.tsx | 4 +- .../nodes/components/edge-node-detail.tsx | 48 +++++++++---- .../components/deployment-upload-dialog.tsx | 27 ++++--- .../detail/components/auth-section.tsx | 38 ++++++---- .../detail/components/cache-section.tsx | 43 +++++++---- .../detail/components/domain-section.tsx | 38 ++++++---- .../waf/components/create-rule-dialog.tsx | 10 +-- .../editor/components/editor-behavior.test.ts | 4 +- .../editor/components/editor-behavior.ts | 6 +- .../components/certificate-apply-dialog.tsx | 51 ++++++++----- .../components/certificate-detail-dialog.tsx | 22 +++--- .../components/certificate-editor-dialog.tsx | 36 +++++----- .../components/certificate-import-dialog.tsx | 38 ++++++---- .../components/dns-account-create-dialog.tsx | 32 +++++---- .../animate-ui/components/buttons/button.tsx | 4 +- .../components/animate-ui/icons/check.tsx | 9 ++- .../animate-ui/icons/chevron-down.tsx | 9 ++- .../animate-ui/icons/chevron-left.tsx | 9 ++- .../animate-ui/icons/chevron-right.tsx | 9 ++- .../animate-ui/icons/circle-check.tsx | 9 ++- .../animate-ui/primitives/buttons/button.tsx | 7 +- .../primitives/radix/collapsible.tsx | 8 +-- .../primitives/texts/counting-number.tsx | 4 +- frontend/components/auth/auth-shell.tsx | 8 +-- frontend/components/auth/cap-widget.tsx | 12 +++- frontend/components/common/docs/api.tsx | 4 +- .../components/common/file-image-preview.tsx | 6 +- .../common/settings/access-token.tsx | 43 +++++++---- .../components/common/settings/appearance.tsx | 12 ++-- .../common/settings/auth-source-modal.tsx | 22 +++--- .../components/common/user/file-manager.tsx | 18 ++--- .../components/home/developer-section.tsx | 8 +-- frontend/components/home/footer-section.tsx | 4 +- .../layout/avater-style/Christmas.tsx | 4 +- frontend/components/layout/empty.tsx | 6 +- frontend/components/layout/error.tsx | 6 +- .../components/providers/auth-provider.tsx | 2 +- frontend/components/ui/accordion.tsx | 4 +- frontend/components/ui/alert-dialog.tsx | 4 +- frontend/components/ui/aurora-background.tsx | 4 +- frontend/components/ui/avatar.tsx | 2 +- frontend/components/ui/badge.tsx | 6 +- frontend/components/ui/breadcrumb.tsx | 6 +- frontend/components/ui/button.tsx | 6 +- frontend/components/ui/calendar.tsx | 12 ++-- frontend/components/ui/card.tsx | 2 +- frontend/components/ui/carousel.tsx | 10 +-- frontend/components/ui/chart.tsx | 2 +- frontend/components/ui/checkbox.tsx | 4 +- frontend/components/ui/code-block.tsx | 4 +- frontend/components/ui/collapsible.tsx | 2 +- frontend/components/ui/command.tsx | 16 +++-- frontend/components/ui/dialog.tsx | 4 +- frontend/components/ui/docs-table.tsx | 2 +- frontend/components/ui/drawer.tsx | 4 +- frontend/components/ui/dropdown-menu.tsx | 4 +- frontend/components/ui/field.tsx | 10 +-- frontend/components/ui/fireworks-effect.tsx | 2 +- frontend/components/ui/form.tsx | 6 +- frontend/contexts/admin-context.tsx | 17 +++-- frontend/contexts/admin-users-context.tsx | 18 ++++- frontend/contexts/bell-ring-context.tsx | 8 ++- frontend/eslint.config.mjs | 6 +- frontend/lib/cap-solver.ts | 2 +- .../lib/services/admin/auth-source.service.ts | 8 ++- frontend/lib/services/admin/cache.service.ts | 4 +- frontend/lib/services/auth/auth.service.ts | 4 +- .../lib/services/config/config.service.ts | 4 +- frontend/lib/services/core/api-client.ts | 13 ++-- frontend/lib/services/core/base.service.ts | 4 +- .../services/db-manage/db-manage.service.ts | 10 ++- .../services/openflare/access-log.service.ts | 2 +- .../services/openflare/apply-log.service.ts | 9 ++- .../lib/services/openflare/base.service.ts | 2 +- .../openflare/config-version.service.ts | 4 +- .../services/openflare/dashboard.service.ts | 2 +- .../services/openflare/dns-account.service.ts | 4 +- .../services/upload/admin-upload.service.ts | 6 +- frontend/lib/theme/config.ts | 2 +- frontend/lib/theme/context.tsx | 16 +++-- frontend/lib/theme/themes.json | 2 +- frontend/lib/utils/error-handling.ts | 4 +- 102 files changed, 909 insertions(+), 490 deletions(-) diff --git a/frontend/app/(main)/access-logs/components/access-log-filters.tsx b/frontend/app/(main)/access-logs/components/access-log-filters.tsx index 61b38082..938c183b 100644 --- a/frontend/app/(main)/access-logs/components/access-log-filters.tsx +++ b/frontend/app/(main)/access-logs/components/access-log-filters.tsx @@ -1,12 +1,18 @@ 'use client'; -import {Search} from 'lucide-react'; +import { Search } from 'lucide-react'; -import {Button} from '@/components/ui/button'; -import {Input} from '@/components/ui/input'; -import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from '@/components/ui/select'; -import type {AccessLogTab, SearchDraft} from './access-log-utils'; -import {PAGE_SIZE_OPTIONS} from './access-log-utils'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import type { AccessLogTab, SearchDraft } from './access-log-utils'; +import { PAGE_SIZE_OPTIONS } from './access-log-utils'; interface AccessLogFiltersProps { tab: AccessLogTab; diff --git a/frontend/app/(main)/access-logs/components/cleanup-dialog.tsx b/frontend/app/(main)/access-logs/components/cleanup-dialog.tsx index 5253f77f..1d69a705 100644 --- a/frontend/app/(main)/access-logs/components/cleanup-dialog.tsx +++ b/frontend/app/(main)/access-logs/components/cleanup-dialog.tsx @@ -1,7 +1,7 @@ 'use client'; -import {useState} from 'react'; -import {Loader2} from 'lucide-react'; +import { useState } from 'react'; +import { Loader2 } from 'lucide-react'; import { AlertDialog, @@ -12,10 +12,16 @@ import { AlertDialogHeader, AlertDialogTitle, } from '@/components/ui/alert-dialog'; -import {Button} from '@/components/ui/button'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from '@/components/ui/select'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; const CLEANUP_PRESETS = [3, 7, 30]; diff --git a/frontend/app/(main)/admin/database/components/cache-manager.tsx b/frontend/app/(main)/admin/database/components/cache-manager.tsx index 0d46e599..ec09a178 100644 --- a/frontend/app/(main)/admin/database/components/cache-manager.tsx +++ b/frontend/app/(main)/admin/database/components/cache-manager.tsx @@ -1,16 +1,22 @@ 'use client'; import * as React from 'react'; -import {useCallback, useEffect, useState} from 'react'; -import {toast} from 'sonner'; -import {HardDrive, RefreshCw, Trash2} from 'lucide-react'; +import { useCallback, useEffect, useState } from 'react'; +import { toast } from 'sonner'; +import { HardDrive, RefreshCw, Trash2 } from 'lucide-react'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; -import {Button} from '@/components/ui/button'; -import {Skeleton} from '@/components/ui/skeleton'; -import {Label} from '@/components/ui/label'; -import {Input} from '@/components/ui/input'; -import {Switch} from '@/components/ui/switch'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; +import { Skeleton } from '@/components/ui/skeleton'; +import { Label } from '@/components/ui/label'; +import { Input } from '@/components/ui/input'; +import { Switch } from '@/components/ui/switch'; import { Dialog, DialogContent, @@ -19,7 +25,7 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; -import type {CacheStatus} from '@/lib/services/admin'; +import type { CacheStatus } from '@/lib/services/admin'; import services from '@/lib/services'; /** diff --git a/frontend/app/(main)/admin/demo/tabs/controls-tab.tsx b/frontend/app/(main)/admin/demo/tabs/controls-tab.tsx index b03e8ec2..30702f78 100644 --- a/frontend/app/(main)/admin/demo/tabs/controls-tab.tsx +++ b/frontend/app/(main)/admin/demo/tabs/controls-tab.tsx @@ -4,13 +4,25 @@ 'use client'; import * as React from 'react'; -import {Code} from 'lucide-react'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; -import {Label} from '@/components/ui/label'; -import {Input} from '@/components/ui/input'; -import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from '@/components/ui/select'; -import {Checkbox} from '@/components/ui/checkbox'; -import {Button} from '@/components/ui/button'; +import { Code } from 'lucide-react'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Label } from '@/components/ui/label'; +import { Input } from '@/components/ui/input'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import { Checkbox } from '@/components/ui/checkbox'; +import { Button } from '@/components/ui/button'; export function ControlsTab() { const [formData, setFormData] = React.useState({ diff --git a/frontend/app/(main)/admin/demo/tabs/dashboard-tab.tsx b/frontend/app/(main)/admin/demo/tabs/dashboard-tab.tsx index 84e48da2..fcc81455 100644 --- a/frontend/app/(main)/admin/demo/tabs/dashboard-tab.tsx +++ b/frontend/app/(main)/admin/demo/tabs/dashboard-tab.tsx @@ -4,9 +4,9 @@ 'use client'; import * as React from 'react'; -import {Code, Cpu, Database, HardDrive} from 'lucide-react'; -import {Card, CardContent, CardHeader, CardTitle} from '@/components/ui/card'; -import {Progress} from '@/components/ui/progress'; +import { Code, Cpu, Database, HardDrive } from 'lucide-react'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Progress } from '@/components/ui/progress'; export function DashboardTab() { return ( diff --git a/frontend/app/(main)/admin/files/components/file-list.tsx b/frontend/app/(main)/admin/files/components/file-list.tsx index 0ee121b5..eea4f8a3 100644 --- a/frontend/app/(main)/admin/files/components/file-list.tsx +++ b/frontend/app/(main)/admin/files/components/file-list.tsx @@ -1,8 +1,8 @@ 'use client'; import * as React from 'react'; -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'; -import {AnimatePresence, motion} from 'motion/react'; +import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; +import { AnimatePresence, motion } from 'motion/react'; import { Download, Eye, @@ -17,13 +17,20 @@ import { Upload, X, } from 'lucide-react'; -import {toast} from 'sonner'; +import { toast } from 'sonner'; -import {Button} from '@/components/ui/button'; -import {Input} from '@/components/ui/input'; -import {Badge} from '@/components/ui/badge'; -import {Checkbox} from '@/components/ui/checkbox'; -import {Table, TableBody, TableCell, TableHead, TableHeader, TableRow,} from '@/components/ui/table'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Badge } from '@/components/ui/badge'; +import { Checkbox } from '@/components/ui/checkbox'; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table'; import { AlertDialog, AlertDialogAction, @@ -34,10 +41,16 @@ import { AlertDialogHeader, AlertDialogTitle, } from '@/components/ui/alert-dialog'; -import {Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle,} from '@/components/ui/sheet'; -import {FileImagePreview} from '@/components/common/file-image-preview'; -import services, {formatFileSize} from '@/lib/services'; -import type {Upload as UploadRecord} from '@/lib/services/upload/types'; +import { + Sheet, + SheetContent, + SheetDescription, + SheetHeader, + SheetTitle, +} from '@/components/ui/sheet'; +import { FileImagePreview } from '@/components/common/file-image-preview'; +import services, { formatFileSize } from '@/lib/services'; +import type { Upload as UploadRecord } from '@/lib/services/upload/types'; /* ─── 工具函数 ─────────────────────────────────────────── */ diff --git a/frontend/app/(main)/admin/files/components/file-stats.tsx b/frontend/app/(main)/admin/files/components/file-stats.tsx index d0ad5866..ab608bf4 100644 --- a/frontend/app/(main)/admin/files/components/file-stats.tsx +++ b/frontend/app/(main)/admin/files/components/file-stats.tsx @@ -1,12 +1,35 @@ 'use client'; import * as React from 'react'; -import {useQuery} from '@tanstack/react-query'; -import {Database, Files, HardDrive, Info, Loader2, TrendingUp, Upload,} from 'lucide-react'; -import {Area, AreaChart, CartesianGrid, Cell, Pie, PieChart, XAxis, YAxis,} from 'recharts'; +import { useQuery } from '@tanstack/react-query'; +import { + Database, + Files, + HardDrive, + Info, + Loader2, + TrendingUp, + Upload, +} from 'lucide-react'; +import { + Area, + AreaChart, + CartesianGrid, + Cell, + Pie, + PieChart, + XAxis, + YAxis, +} from 'recharts'; -import {Button} from '@/components/ui/button'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; import { ChartConfig, ChartContainer, @@ -15,7 +38,7 @@ import { ChartTooltip, ChartTooltipContent, } from '@/components/ui/chart'; -import services, {formatFileSize} from '@/lib/services'; +import services, { formatFileSize } from '@/lib/services'; const categoryMap: Record = { 图片: 'images', diff --git a/frontend/app/(main)/admin/logs/components/access-analytics.tsx b/frontend/app/(main)/admin/logs/components/access-analytics.tsx index 95353acc..6cafdf3e 100644 --- a/frontend/app/(main)/admin/logs/components/access-analytics.tsx +++ b/frontend/app/(main)/admin/logs/components/access-analytics.tsx @@ -16,19 +16,37 @@ limitations under the License. 'use client'; -import {useCallback, useEffect, useState} from 'react'; -import {BarChart3, Globe, RefreshCw, TrendingUp, Users, XCircle,} from 'lucide-react'; -import {Area, AreaChart, CartesianGrid, XAxis, YAxis} from 'recharts'; +import { useCallback, useEffect, useState } from 'react'; +import { + BarChart3, + Globe, + RefreshCw, + TrendingUp, + Users, + XCircle, +} from 'lucide-react'; +import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from 'recharts'; import services from '@/lib/services'; -import {ErrorInline} from '@/components/layout/error'; -import {LoadingStateWithBorder} from '@/components/layout/loading'; -import {EmptyStateWithBorder} from '@/components/layout/empty'; -import {Badge} from '@/components/ui/badge'; -import {Button} from '@/components/ui/button'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; -import {ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent,} from '@/components/ui/chart'; -import {Spinner} from '@/components/ui/spinner'; +import { ErrorInline } from '@/components/layout/error'; +import { LoadingStateWithBorder } from '@/components/layout/loading'; +import { EmptyStateWithBorder } from '@/components/layout/empty'; +import { Badge } from '@/components/ui/badge'; +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { + ChartConfig, + ChartContainer, + ChartTooltip, + ChartTooltipContent, +} from '@/components/ui/chart'; +import { Spinner } from '@/components/ui/spinner'; interface TrendData { date: string; diff --git a/frontend/app/(main)/admin/logs/components/access-logs.tsx b/frontend/app/(main)/admin/logs/components/access-logs.tsx index c8c8ac8c..dcba3fc4 100644 --- a/frontend/app/(main)/admin/logs/components/access-logs.tsx +++ b/frontend/app/(main)/admin/logs/components/access-logs.tsx @@ -16,22 +16,44 @@ limitations under the License. 'use client'; -import {useMemo, useState} from 'react'; -import {useQuery} from '@tanstack/react-query'; -import {toast} from 'sonner'; -import {format} from 'date-fns'; -import {Activity, ChevronLeft, ChevronRight, Copy, Eye, RotateCcw, Search, XCircle,} from 'lucide-react'; +import { useMemo, useState } from 'react'; +import { useQuery } from '@tanstack/react-query'; +import { toast } from 'sonner'; +import { format } from 'date-fns'; +import { + Activity, + ChevronLeft, + ChevronRight, + Copy, + Eye, + RotateCcw, + Search, + XCircle, +} from 'lucide-react'; import services from '@/lib/services'; -import {ErrorInline} from '@/components/layout/error'; -import {LoadingStateWithBorder} from '@/components/layout/loading'; -import {EmptyStateWithBorder} from '@/components/layout/empty'; -import {Badge} from '@/components/ui/badge'; -import {Button} from '@/components/ui/button'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle,} from '@/components/ui/sheet'; -import {Table, TableBody, TableCell, TableHead, TableHeader, TableRow,} from '@/components/ui/table'; +import { ErrorInline } from '@/components/layout/error'; +import { LoadingStateWithBorder } from '@/components/layout/loading'; +import { EmptyStateWithBorder } from '@/components/layout/empty'; +import { Badge } from '@/components/ui/badge'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { + Sheet, + SheetContent, + SheetDescription, + SheetHeader, + SheetTitle, +} from '@/components/ui/sheet'; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table'; interface AccessLog { id: string; diff --git a/frontend/app/(main)/admin/logs/components/app-logs.tsx b/frontend/app/(main)/admin/logs/components/app-logs.tsx index 5d4f89f0..bd51880a 100644 --- a/frontend/app/(main)/admin/logs/components/app-logs.tsx +++ b/frontend/app/(main)/admin/logs/components/app-logs.tsx @@ -16,15 +16,15 @@ limitations under the License. 'use client'; -import {memo, useCallback, useEffect, useRef, useState} from 'react'; -import {useVirtualizer} from '@tanstack/react-virtual'; -import {toast} from 'sonner'; -import {ArrowDown, ChevronUp, Loader2} from 'lucide-react'; +import { memo, useCallback, useEffect, useRef, useState } from 'react'; +import { useVirtualizer } from '@tanstack/react-virtual'; +import { toast } from 'sonner'; +import { ArrowDown, ChevronUp, Loader2 } from 'lucide-react'; import services from '@/lib/services'; -import {ErrorInline} from '@/components/layout/error'; -import {LoadingStateWithBorder} from '@/components/layout/loading'; -import {Button} from '@/components/ui/button'; +import { ErrorInline } from '@/components/layout/error'; +import { LoadingStateWithBorder } from '@/components/layout/loading'; +import { Button } from '@/components/ui/button'; interface LogEntry { index: number; diff --git a/frontend/app/(main)/admin/push/components/events-tab.tsx b/frontend/app/(main)/admin/push/components/events-tab.tsx index eda87707..79f52e92 100644 --- a/frontend/app/(main)/admin/push/components/events-tab.tsx +++ b/frontend/app/(main)/admin/push/components/events-tab.tsx @@ -4,18 +4,37 @@ 'use client'; import * as React from 'react'; -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'; -import {toast} from 'sonner'; -import {ChevronDown, Edit2, Layers, Loader2, Plus, Trash2,} from 'lucide-react'; +import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; +import { toast } from 'sonner'; +import { + ChevronDown, + Edit2, + Layers, + Loader2, + Plus, + Trash2, +} from 'lucide-react'; -import {Button} from '@/components/ui/button'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Textarea} from '@/components/ui/textarea'; -import {Switch} from '@/components/ui/switch'; -import {Badge} from '@/components/ui/badge'; -import {Table, TableBody, TableCell, TableHead, TableHeader, TableRow,} from '@/components/ui/table'; -import {Tooltip, TooltipContent, TooltipProvider, TooltipTrigger,} from '@/components/ui/tooltip'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Textarea } from '@/components/ui/textarea'; +import { Switch } from '@/components/ui/switch'; +import { Badge } from '@/components/ui/badge'; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table'; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from '@/components/ui/tooltip'; import { Dialog, DialogContent, @@ -24,17 +43,31 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; -import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from '@/components/ui/select'; -import {Checkbox} from '@/components/ui/checkbox'; -import {Popover, PopoverContent, PopoverTrigger,} from '@/components/ui/popover'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import { Checkbox } from '@/components/ui/checkbox'; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover'; -import {ErrorInline} from '@/components/layout/error'; -import {LoadingStateWithBorder} from '@/components/layout/loading'; -import {EmptyStateWithBorder} from '@/components/layout/empty'; +import { ErrorInline } from '@/components/layout/error'; +import { LoadingStateWithBorder } from '@/components/layout/loading'; +import { EmptyStateWithBorder } from '@/components/layout/empty'; import services from '@/lib/services'; -import type {CreatePushEventRequest, PushEvent, UpdatePushEventRequest,} from '@/lib/services/push'; -import {PushService} from '@/lib/services/push'; +import type { + CreatePushEventRequest, + PushEvent, + UpdatePushEventRequest, +} from '@/lib/services/push'; +import { PushService } from '@/lib/services/push'; export function EventsTab() { const queryClient = useQueryClient(); diff --git a/frontend/app/(main)/admin/users/components/create-user-modal.tsx b/frontend/app/(main)/admin/users/components/create-user-modal.tsx index d57c8309..75d64953 100644 --- a/frontend/app/(main)/admin/users/components/create-user-modal.tsx +++ b/frontend/app/(main)/admin/users/components/create-user-modal.tsx @@ -1,13 +1,19 @@ 'use client'; -import {useEffect, useState} from 'react'; -import {Button} from '@/components/ui/button'; -import {Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle,} from '@/components/ui/dialog'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Switch} from '@/components/ui/switch'; -import {useAdminUsers} from '@/contexts/admin-users-context'; -import type {CreateUserRequest} from '@/lib/services/admin'; +import { useEffect, useState } from 'react'; +import { Button } from '@/components/ui/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Switch } from '@/components/ui/switch'; +import { useAdminUsers } from '@/contexts/admin-users-context'; +import type { CreateUserRequest } from '@/lib/services/admin'; const emptyForm: CreateUserRequest = { username: '', diff --git a/frontend/app/(main)/admin/users/components/edit-user-modal.tsx b/frontend/app/(main)/admin/users/components/edit-user-modal.tsx index fb024560..7df3c36a 100644 --- a/frontend/app/(main)/admin/users/components/edit-user-modal.tsx +++ b/frontend/app/(main)/admin/users/components/edit-user-modal.tsx @@ -1,14 +1,20 @@ 'use client'; -import {useEffect, useState} from 'react'; -import {Button} from '@/components/ui/button'; -import {Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle,} from '@/components/ui/dialog'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Switch} from '@/components/ui/switch'; -import {useAdminUsers} from '@/contexts/admin-users-context'; -import {useAuth} from '@/components/providers/auth-provider'; -import type {AdminUser} from '@/lib/services/admin'; +import { useEffect, useState } from 'react'; +import { Button } from '@/components/ui/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Switch } from '@/components/ui/switch'; +import { useAdminUsers } from '@/contexts/admin-users-context'; +import { useAuth } from '@/components/providers/auth-provider'; +import type { AdminUser } from '@/lib/services/admin'; import { AlertDialog, AlertDialogAction, @@ -19,7 +25,7 @@ import { AlertDialogHeader, AlertDialogTitle, } from '@/components/ui/alert-dialog'; -import {Loader2} from 'lucide-react'; +import { Loader2 } from 'lucide-react'; interface EditUserForm { nickname: string; diff --git a/frontend/app/(main)/components/dashboard/capacity-trend-chart.tsx b/frontend/app/(main)/components/dashboard/capacity-trend-chart.tsx index 3bdc0e0d..e5a0a680 100644 --- a/frontend/app/(main)/components/dashboard/capacity-trend-chart.tsx +++ b/frontend/app/(main)/components/dashboard/capacity-trend-chart.tsx @@ -1,10 +1,16 @@ 'use client'; -import {TrendChart} from '@/components/data/trend-chart'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; -import type {CapacityTrendPoint} from '@/lib/services/openflare'; +import { TrendChart } from '@/components/data/trend-chart'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import type { CapacityTrendPoint } from '@/lib/services/openflare'; -import {formatPercent, formatTrendHour} from './dashboard-utils'; +import { formatPercent, formatTrendHour } from './dashboard-utils'; export function CapacityTrendChart({ points, diff --git a/frontend/app/(main)/components/dashboard/distribution-rank-charts.tsx b/frontend/app/(main)/components/dashboard/distribution-rank-charts.tsx index eaf65b10..8140ca9a 100644 --- a/frontend/app/(main)/components/dashboard/distribution-rank-charts.tsx +++ b/frontend/app/(main)/components/dashboard/distribution-rank-charts.tsx @@ -1,8 +1,17 @@ 'use client'; -import {RankChart} from '@/components/data/rank-chart'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; -import type {DistributionItem, TrafficDistributions,} from '@/lib/services/openflare'; +import { RankChart } from '@/components/data/rank-chart'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import type { + DistributionItem, + TrafficDistributions, +} from '@/lib/services/openflare'; function toRankItems(items: DistributionItem[]) { return items.map((item) => ({ diff --git a/frontend/app/(main)/components/dashboard/geo-distribution-list.tsx b/frontend/app/(main)/components/dashboard/geo-distribution-list.tsx index 62e13a7c..43a6f2c8 100644 --- a/frontend/app/(main)/components/dashboard/geo-distribution-list.tsx +++ b/frontend/app/(main)/components/dashboard/geo-distribution-list.tsx @@ -1,12 +1,18 @@ 'use client'; -import {Globe2} from 'lucide-react'; +import { Globe2 } from 'lucide-react'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; -import {Progress} from '@/components/ui/progress'; -import type {DistributionItem} from '@/lib/services/openflare'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Progress } from '@/components/ui/progress'; +import type { DistributionItem } from '@/lib/services/openflare'; -import {formatCompactNumber} from './dashboard-utils'; +import { formatCompactNumber } from './dashboard-utils'; export function GeoDistributionList({ items }: { items: DistributionItem[] }) { const sortedItems = [...items] diff --git a/frontend/app/(main)/config-versions/components/cleanup-dialog.tsx b/frontend/app/(main)/config-versions/components/cleanup-dialog.tsx index a9e00ca2..b23feff8 100644 --- a/frontend/app/(main)/config-versions/components/cleanup-dialog.tsx +++ b/frontend/app/(main)/config-versions/components/cleanup-dialog.tsx @@ -1,10 +1,10 @@ 'use client'; -import {useEffect} from 'react'; -import {zodResolver} from '@hookform/resolvers/zod'; -import {Loader2} from 'lucide-react'; -import {useForm} from 'react-hook-form'; -import {z} from 'zod'; +import { useEffect } from 'react'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Loader2 } from 'lucide-react'; +import { useForm } from 'react-hook-form'; +import { z } from 'zod'; import { AlertDialog, @@ -15,9 +15,9 @@ import { AlertDialogHeader, AlertDialogTitle, } from '@/components/ui/alert-dialog'; -import {Button} from '@/components/ui/button'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; const cleanupSchema = z.object({ keepCount: z.number().int().min(3, '最少保留 3 个历史快照'), diff --git a/frontend/app/(main)/config-versions/components/diff-dialog.tsx b/frontend/app/(main)/config-versions/components/diff-dialog.tsx index 7ef8b89a..35bfd515 100644 --- a/frontend/app/(main)/config-versions/components/diff-dialog.tsx +++ b/frontend/app/(main)/config-versions/components/diff-dialog.tsx @@ -1,11 +1,24 @@ 'use client'; -import {Loader2} from 'lucide-react'; +import { Loader2 } from 'lucide-react'; -import {Badge} from '@/components/ui/badge'; -import {Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle,} from '@/components/ui/dialog'; -import {Table, TableBody, TableCell, TableHead, TableHeader, TableRow,} from '@/components/ui/table'; -import type {ConfigDiffResult} from '@/lib/services/openflare'; +import { Badge } from '@/components/ui/badge'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog'; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table'; +import type { ConfigDiffResult } from '@/lib/services/openflare'; interface DiffDialogProps { open: boolean; diff --git a/frontend/app/(main)/nodes/components/agent-update-dialog.tsx b/frontend/app/(main)/nodes/components/agent-update-dialog.tsx index c900ae21..edc80925 100644 --- a/frontend/app/(main)/nodes/components/agent-update-dialog.tsx +++ b/frontend/app/(main)/nodes/components/agent-update-dialog.tsx @@ -1,10 +1,10 @@ 'use client'; -import {useState} from 'react'; -import {useQuery} from '@tanstack/react-query'; -import {ExternalLink, Loader2} from 'lucide-react'; +import { useState } from 'react'; +import { useQuery } from '@tanstack/react-query'; +import { ExternalLink, Loader2 } from 'lucide-react'; -import {Button} from '@/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, @@ -13,12 +13,16 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; -import {formatDateTime} from '@/lib/utils'; -import type {NodeAgentReleaseInfo, NodeItem, ReleaseChannel,} from '@/lib/services/openflare'; -import {NodeService} from '@/lib/services/openflare'; +import { formatDateTime } from '@/lib/utils'; +import type { + NodeAgentReleaseInfo, + NodeItem, + ReleaseChannel, +} from '@/lib/services/openflare'; +import { NodeService } from '@/lib/services/openflare'; -import {NodeStatusBadge} from './node-status-badge'; -import {formatRelativeTime, getErrorMessage} from './node-utils'; +import { NodeStatusBadge } from './node-status-badge'; +import { formatRelativeTime, getErrorMessage } from './node-utils'; export function AgentUpdateDialog({ open, diff --git a/frontend/app/(main)/nodes/components/disk-io-trend-chart.tsx b/frontend/app/(main)/nodes/components/disk-io-trend-chart.tsx index 0582163c..78af3098 100644 --- a/frontend/app/(main)/nodes/components/disk-io-trend-chart.tsx +++ b/frontend/app/(main)/nodes/components/disk-io-trend-chart.tsx @@ -1,10 +1,19 @@ 'use client'; -import {TrendChart} from '@/components/data/trend-chart'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; -import type {DiskIOTrendPoint} from '@/lib/services/openflare'; +import { TrendChart } from '@/components/data/trend-chart'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import type { DiskIOTrendPoint } from '@/lib/services/openflare'; -import {formatBytes, formatTrendHour,} from '../../components/dashboard/dashboard-utils'; +import { + formatBytes, + formatTrendHour, +} from '../../components/dashboard/dashboard-utils'; export function DiskIOTrendChart({ points, diff --git a/frontend/app/(main)/nodes/components/distribution-list.tsx b/frontend/app/(main)/nodes/components/distribution-list.tsx index 6cd69484..7755bc0f 100644 --- a/frontend/app/(main)/nodes/components/distribution-list.tsx +++ b/frontend/app/(main)/nodes/components/distribution-list.tsx @@ -1,8 +1,8 @@ 'use client'; -import {Progress} from '@/components/ui/progress'; +import { Progress } from '@/components/ui/progress'; -import {formatCompactNumber} from '../../components/dashboard/dashboard-utils'; +import { formatCompactNumber } from '../../components/dashboard/dashboard-utils'; export function DistributionList({ items, diff --git a/frontend/app/(main)/nodes/components/edge-node-detail.tsx b/frontend/app/(main)/nodes/components/edge-node-detail.tsx index 43faf66f..ce24e72b 100644 --- a/frontend/app/(main)/nodes/components/edge-node-detail.tsx +++ b/frontend/app/(main)/nodes/components/edge-node-detail.tsx @@ -1,11 +1,21 @@ 'use client'; import Link from 'next/link'; -import {useRouter} from 'next/navigation'; -import {useMutation, useQueryClient} from '@tanstack/react-query'; -import {useState} from 'react'; -import {Activity, Cpu, FileText, Fingerprint, Package, RefreshCw, RotateCcw, Trash2, Upload,} from 'lucide-react'; -import {toast} from 'sonner'; +import { useRouter } from 'next/navigation'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { useState } from 'react'; +import { + Activity, + Cpu, + FileText, + Fingerprint, + Package, + RefreshCw, + RotateCcw, + Trash2, + Upload, +} from 'lucide-react'; +import { toast } from 'sonner'; import { AlertDialog, @@ -17,17 +27,25 @@ import { AlertDialogHeader, AlertDialogTitle, } from '@/components/ui/alert-dialog'; -import {Button} from '@/components/ui/button'; -import {formatDateTime} from '@/lib/utils'; -import type {NodeAgentReleaseInfo, NodeItem, ReleaseChannel,} from '@/lib/services/openflare'; -import {NodeService} from '@/lib/services/openflare'; +import { Button } from '@/components/ui/button'; +import { formatDateTime } from '@/lib/utils'; +import type { + NodeAgentReleaseInfo, + NodeItem, + ReleaseChannel, +} from '@/lib/services/openflare'; +import { NodeService } from '@/lib/services/openflare'; -import {AgentUpdateDialog} from './agent-update-dialog'; -import {NodeDetailShell} from './node-detail-shell'; -import {NodeErrorBanner, NodeInfoRow, NodeSectionCard,} from './node-detail-primitives'; -import {NodeEditorDialog} from './node-editor-dialog'; -import {NodeObservability} from './node-observability'; -import {NodeStatusBadge} from './node-status-badge'; +import { AgentUpdateDialog } from './agent-update-dialog'; +import { NodeDetailShell } from './node-detail-shell'; +import { + NodeErrorBanner, + NodeInfoRow, + NodeSectionCard, +} from './node-detail-primitives'; +import { NodeEditorDialog } from './node-editor-dialog'; +import { NodeObservability } from './node-observability'; +import { NodeStatusBadge } from './node-status-badge'; import { formatRelativeTime, getApplyLabel, diff --git a/frontend/app/(main)/pages/components/deployment-upload-dialog.tsx b/frontend/app/(main)/pages/components/deployment-upload-dialog.tsx index 2492e2e7..c0bc8bda 100644 --- a/frontend/app/(main)/pages/components/deployment-upload-dialog.tsx +++ b/frontend/app/(main)/pages/components/deployment-upload-dialog.tsx @@ -1,11 +1,11 @@ 'use client'; -import {useRef, useState} from 'react'; -import {useMutation, useQueryClient} from '@tanstack/react-query'; -import {Loader2, UploadCloud} from 'lucide-react'; -import {toast} from 'sonner'; +import { useRef, useState } from 'react'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { Loader2, UploadCloud } from 'lucide-react'; +import { toast } from 'sonner'; -import {Button} from '@/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, @@ -14,13 +14,18 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Progress} from '@/components/ui/progress'; -import {PagesService} from '@/lib/services/openflare'; -import {cn} from '@/lib/utils'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Progress } from '@/components/ui/progress'; +import { PagesService } from '@/lib/services/openflare'; +import { cn } from '@/lib/utils'; -import {deploymentsQueryKey, formatBytes, projectQueryKey, projectsQueryKey,} from './pages-utils'; +import { + deploymentsQueryKey, + formatBytes, + projectQueryKey, + projectsQueryKey, +} from './pages-utils'; interface DeploymentUploadDialogProps { open: boolean; diff --git a/frontend/app/(main)/proxy-routes/detail/components/auth-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/auth-section.tsx index 081af479..74d5bffe 100644 --- a/frontend/app/(main)/proxy-routes/detail/components/auth-section.tsx +++ b/frontend/app/(main)/proxy-routes/detail/components/auth-section.tsx @@ -1,19 +1,33 @@ 'use client'; -import {useEffect} from 'react'; -import {zodResolver} from '@hookform/resolvers/zod'; -import {useForm} from 'react-hook-form'; -import {toast} from 'sonner'; -import {z} from 'zod'; +import { useEffect } from 'react'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useForm } from 'react-hook-form'; +import { toast } from 'sonner'; +import { z } from 'zod'; -import {Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage,} from '@/components/ui/form'; -import {Input} from '@/components/ui/input'; -import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from '@/components/ui/select'; -import type {ProxyRouteItem} from '@/lib/services/openflare'; +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@/components/ui/form'; +import { Input } from '@/components/ui/input'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import type { ProxyRouteItem } from '@/lib/services/openflare'; -import {proxyRouteFormIds} from '../helpers'; -import {useRouteSectionSave} from '../hooks/use-route-section-save'; -import {SectionShell} from './section-shell'; +import { proxyRouteFormIds } from '../helpers'; +import { useRouteSectionSave } from '../hooks/use-route-section-save'; +import { SectionShell } from './section-shell'; const authSchema = z .object({ diff --git a/frontend/app/(main)/proxy-routes/detail/components/cache-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/cache-section.tsx index bc0dfe3f..e0983eac 100644 --- a/frontend/app/(main)/proxy-routes/detail/components/cache-section.tsx +++ b/frontend/app/(main)/proxy-routes/detail/components/cache-section.tsx @@ -1,20 +1,37 @@ 'use client'; -import {useEffect} from 'react'; -import {zodResolver} from '@hookform/resolvers/zod'; -import {useForm} from 'react-hook-form'; -import {z} from 'zod'; +import { useEffect } from 'react'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useForm } from 'react-hook-form'; +import { z } from 'zod'; -import {Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage,} from '@/components/ui/form'; -import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from '@/components/ui/select'; -import {Switch} from '@/components/ui/switch'; -import {Textarea} from '@/components/ui/textarea'; -import type {ProxyRouteItem} from '@/lib/services/openflare'; +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@/components/ui/form'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import { Switch } from '@/components/ui/switch'; +import { Textarea } from '@/components/ui/textarea'; +import type { ProxyRouteItem } from '@/lib/services/openflare'; -import {linesFromTextarea, validateCacheRules,} from '../../components/helpers'; -import {proxyRouteFormIds} from '../helpers'; -import {useRouteSectionSave} from '../hooks/use-route-section-save'; -import {SectionShell} from './section-shell'; +import { + linesFromTextarea, + validateCacheRules, +} from '../../components/helpers'; +import { proxyRouteFormIds } from '../helpers'; +import { useRouteSectionSave } from '../hooks/use-route-section-save'; +import { SectionShell } from './section-shell'; const cacheSchema = z .object({ diff --git a/frontend/app/(main)/proxy-routes/detail/components/domain-section.tsx b/frontend/app/(main)/proxy-routes/detail/components/domain-section.tsx index 846bd27f..7ceb81cd 100644 --- a/frontend/app/(main)/proxy-routes/detail/components/domain-section.tsx +++ b/frontend/app/(main)/proxy-routes/detail/components/domain-section.tsx @@ -1,22 +1,30 @@ 'use client'; -import {useEffect, useMemo} from 'react'; -import {zodResolver} from '@hookform/resolvers/zod'; -import {useQuery} from '@tanstack/react-query'; -import {useForm} from 'react-hook-form'; -import {z} from 'zod'; +import { useEffect, useMemo } from 'react'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useQuery } from '@tanstack/react-query'; +import { useForm } from 'react-hook-form'; +import { z } from 'zod'; -import {Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage,} from '@/components/ui/form'; -import {Input} from '@/components/ui/input'; -import {Switch} from '@/components/ui/switch'; -import type {ProxyRouteItem} from '@/lib/services/openflare'; -import {zoneQueryKey, ZoneService} from '@/lib/services/openflare'; +import { + Form, + FormControl, + FormDescription, + FormField, + FormItem, + FormLabel, + FormMessage, +} from '@/components/ui/form'; +import { Input } from '@/components/ui/input'; +import { Switch } from '@/components/ui/switch'; +import type { ProxyRouteItem } from '@/lib/services/openflare'; +import { zoneQueryKey, ZoneService } from '@/lib/services/openflare'; -import {listAllZoneDomains} from '../../components/helpers'; -import {ZoneDomainSelector} from '../../components/zone-domain-selector'; -import {proxyRouteFormIds} from '../helpers'; -import {useRouteSectionSave} from '../hooks/use-route-section-save'; -import {SectionShell} from './section-shell'; +import { listAllZoneDomains } from '../../components/helpers'; +import { ZoneDomainSelector } from '../../components/zone-domain-selector'; +import { proxyRouteFormIds } from '../helpers'; +import { useRouteSectionSave } from '../hooks/use-route-section-save'; +import { SectionShell } from './section-shell'; const domainSettingsSchema = z.object({ site_name: z diff --git a/frontend/app/(main)/waf/components/create-rule-dialog.tsx b/frontend/app/(main)/waf/components/create-rule-dialog.tsx index fdaac32c..69318948 100644 --- a/frontend/app/(main)/waf/components/create-rule-dialog.tsx +++ b/frontend/app/(main)/waf/components/create-rule-dialog.tsx @@ -1,8 +1,8 @@ 'use client'; -import {useEffect, useState} from 'react'; +import { useEffect, useState } from 'react'; -import {Button} from '@/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, @@ -11,9 +11,9 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; -import {Field, FieldGroup, FieldLabel} from '@/components/ui/field'; -import {Input} from '@/components/ui/input'; -import {Spinner} from '@/components/ui/spinner'; +import { Field, FieldGroup, FieldLabel } from '@/components/ui/field'; +import { Input } from '@/components/ui/input'; +import { Spinner } from '@/components/ui/spinner'; interface CreateRuleDialogProps { open: boolean; diff --git a/frontend/app/(main)/waf/rules/editor/components/editor-behavior.test.ts b/frontend/app/(main)/waf/rules/editor/components/editor-behavior.test.ts index 514cd923..47473622 100644 --- a/frontend/app/(main)/waf/rules/editor/components/editor-behavior.test.ts +++ b/frontend/app/(main)/waf/rules/editor/components/editor-behavior.test.ts @@ -1,6 +1,6 @@ -import {describe, expect, it} from 'vitest'; +import { describe, expect, it } from 'vitest'; -import type {WAFRuleGraph} from '@/lib/services/openflare'; +import type { WAFRuleGraph } from '@/lib/services/openflare'; import { acceptedNodeChanges, diff --git a/frontend/app/(main)/waf/rules/editor/components/editor-behavior.ts b/frontend/app/(main)/waf/rules/editor/components/editor-behavior.ts index 9a40051a..bdb2023c 100644 --- a/frontend/app/(main)/waf/rules/editor/components/editor-behavior.ts +++ b/frontend/app/(main)/waf/rules/editor/components/editor-behavior.ts @@ -1,7 +1,7 @@ -import type {EdgeChange, Node, NodeChange} from '@xyflow/react'; -import type {WAFRuleGraph, WAFRuleNode} from '@/lib/services/openflare'; +import type { EdgeChange, Node, NodeChange } from '@xyflow/react'; +import type { WAFRuleGraph, WAFRuleNode } from '@/lib/services/openflare'; -import {wouldCreateCycle} from './graph-validation'; +import { wouldCreateCycle } from './graph-validation'; export type GraphErrorTarget = { kind: 'node' | 'edge'; id: string }; diff --git a/frontend/app/(main)/websites/components/certificate-apply-dialog.tsx b/frontend/app/(main)/websites/components/certificate-apply-dialog.tsx index b6ef4839..fcd2c2cd 100644 --- a/frontend/app/(main)/websites/components/certificate-apply-dialog.tsx +++ b/frontend/app/(main)/websites/components/certificate-apply-dialog.tsx @@ -1,23 +1,42 @@ 'use client'; -import {zodResolver} from '@hookform/resolvers/zod'; -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'; -import {useEffect, useState} from 'react'; -import {useForm} from 'react-hook-form'; -import {ChevronDown, Loader2} from 'lucide-react'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; +import { useEffect, useState } from 'react'; +import { useForm } from 'react-hook-form'; +import { ChevronDown, Loader2 } from 'lucide-react'; -import {Button} from '@/components/ui/button'; -import {Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle,} from '@/components/ui/dialog'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from '@/components/ui/select'; -import {Switch} from '@/components/ui/switch'; -import {Textarea} from '@/components/ui/textarea'; -import type {TlsCertificateItem} from '@/lib/services/openflare'; -import {DnsAccountService, TlsCertificateService,} from '@/lib/services/openflare'; +import { Button } from '@/components/ui/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import { Switch } from '@/components/ui/switch'; +import { Textarea } from '@/components/ui/textarea'; +import type { TlsCertificateItem } from '@/lib/services/openflare'; +import { + DnsAccountService, + TlsCertificateService, +} from '@/lib/services/openflare'; -import {type AcmeApplyFormValues, acmeApplySchema, defaultAcmeApplyValues,} from './schemas'; -import {getErrorMessage} from './website-utils'; +import { + type AcmeApplyFormValues, + acmeApplySchema, + defaultAcmeApplyValues, +} from './schemas'; +import { getErrorMessage } from './website-utils'; const certificatesQueryKey = ['openflare', 'tls-certificates']; diff --git a/frontend/app/(main)/websites/components/certificate-detail-dialog.tsx b/frontend/app/(main)/websites/components/certificate-detail-dialog.tsx index 9c296792..1046e875 100644 --- a/frontend/app/(main)/websites/components/certificate-detail-dialog.tsx +++ b/frontend/app/(main)/websites/components/certificate-detail-dialog.tsx @@ -1,10 +1,10 @@ 'use client'; -import {useQuery} from '@tanstack/react-query'; -import {Copy, Loader2} from 'lucide-react'; -import {toast} from 'sonner'; +import { useQuery } from '@tanstack/react-query'; +import { Copy, Loader2 } from 'lucide-react'; +import { toast } from 'sonner'; -import {Button} from '@/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, @@ -13,14 +13,14 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; -import {EmptyStateWithBorder} from '@/components/layout/empty'; -import {ErrorInline} from '@/components/layout/error'; -import {LoadingStateWithBorder} from '@/components/layout/loading'; -import {TlsCertificateService} from '@/lib/services/openflare'; -import {formatDateTime} from '@/lib/utils'; +import { EmptyStateWithBorder } from '@/components/layout/empty'; +import { ErrorInline } from '@/components/layout/error'; +import { LoadingStateWithBorder } from '@/components/layout/loading'; +import { TlsCertificateService } from '@/lib/services/openflare'; +import { formatDateTime } from '@/lib/utils'; -import {WebsiteStatusBadge} from './status-badge'; -import {getCertificateStatus, getErrorMessage} from './website-utils'; +import { WebsiteStatusBadge } from './status-badge'; +import { getCertificateStatus, getErrorMessage } from './website-utils'; interface CertificateDetailDialogProps { certificateId: number | null; diff --git a/frontend/app/(main)/websites/components/certificate-editor-dialog.tsx b/frontend/app/(main)/websites/components/certificate-editor-dialog.tsx index 4ec48421..20329121 100644 --- a/frontend/app/(main)/websites/components/certificate-editor-dialog.tsx +++ b/frontend/app/(main)/websites/components/certificate-editor-dialog.tsx @@ -1,12 +1,12 @@ 'use client'; -import {zodResolver} from '@hookform/resolvers/zod'; -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'; -import {useEffect} from 'react'; -import {useForm} from 'react-hook-form'; -import {Loader2} from 'lucide-react'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; +import { useEffect } from 'react'; +import { useForm } from 'react-hook-form'; +import { Loader2 } from 'lucide-react'; -import {Button} from '@/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, @@ -15,17 +15,21 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; -import {EmptyStateWithBorder} from '@/components/layout/empty'; -import {ErrorInline} from '@/components/layout/error'; -import {LoadingStateWithBorder} from '@/components/layout/loading'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Textarea} from '@/components/ui/textarea'; -import type {TlsCertificateItem} from '@/lib/services/openflare'; -import {TlsCertificateService} from '@/lib/services/openflare'; +import { EmptyStateWithBorder } from '@/components/layout/empty'; +import { ErrorInline } from '@/components/layout/error'; +import { LoadingStateWithBorder } from '@/components/layout/loading'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Textarea } from '@/components/ui/textarea'; +import type { TlsCertificateItem } from '@/lib/services/openflare'; +import { TlsCertificateService } from '@/lib/services/openflare'; -import {defaultManualImportValues, type ManualImportFormValues, manualImportSchema,} from './schemas'; -import {getErrorMessage, toManualPayload} from './website-utils'; +import { + defaultManualImportValues, + type ManualImportFormValues, + manualImportSchema, +} from './schemas'; +import { getErrorMessage, toManualPayload } from './website-utils'; const certificatesQueryKey = ['openflare', 'tls-certificates']; diff --git a/frontend/app/(main)/websites/components/certificate-import-dialog.tsx b/frontend/app/(main)/websites/components/certificate-import-dialog.tsx index 2053aa4e..8e1cb2c7 100644 --- a/frontend/app/(main)/websites/components/certificate-import-dialog.tsx +++ b/frontend/app/(main)/websites/components/certificate-import-dialog.tsx @@ -1,19 +1,25 @@ 'use client'; -import {zodResolver} from '@hookform/resolvers/zod'; -import {useMutation, useQueryClient} from '@tanstack/react-query'; -import {type FormEvent, useEffect, useState} from 'react'; -import {useForm} from 'react-hook-form'; -import {Loader2} from 'lucide-react'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { type FormEvent, useEffect, useState } from 'react'; +import { useForm } from 'react-hook-form'; +import { Loader2 } from 'lucide-react'; -import {Button} from '@/components/ui/button'; -import {Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle,} from '@/components/ui/dialog'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Tabs, TabsContent, TabsList, TabsTrigger} from '@/components/ui/tabs'; -import {Textarea} from '@/components/ui/textarea'; -import type {TlsCertificateItem} from '@/lib/services/openflare'; -import {TlsCertificateService} from '@/lib/services/openflare'; +import { Button } from '@/components/ui/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; +import { Textarea } from '@/components/ui/textarea'; +import type { TlsCertificateItem } from '@/lib/services/openflare'; +import { TlsCertificateService } from '@/lib/services/openflare'; import { defaultFileImportValues, @@ -22,7 +28,11 @@ import { type ManualImportFormValues, manualImportSchema, } from './schemas'; -import {getErrorMessage, toFilePayload, toManualPayload,} from './website-utils'; +import { + getErrorMessage, + toFilePayload, + toManualPayload, +} from './website-utils'; const certificatesQueryKey = ['openflare', 'tls-certificates']; diff --git a/frontend/app/(main)/websites/components/dns-account-create-dialog.tsx b/frontend/app/(main)/websites/components/dns-account-create-dialog.tsx index c14ac726..209f7cc5 100644 --- a/frontend/app/(main)/websites/components/dns-account-create-dialog.tsx +++ b/frontend/app/(main)/websites/components/dns-account-create-dialog.tsx @@ -1,13 +1,13 @@ 'use client'; -import {useMutation, useQueryClient} from '@tanstack/react-query'; -import {zodResolver} from '@hookform/resolvers/zod'; -import {useState} from 'react'; -import {useForm} from 'react-hook-form'; -import {Loader2} from 'lucide-react'; -import {z} from 'zod'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { useState } from 'react'; +import { useForm } from 'react-hook-form'; +import { Loader2 } from 'lucide-react'; +import { z } from 'zod'; -import {Button} from '@/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, @@ -16,13 +16,19 @@ import { DialogHeader, DialogTitle, } from '@/components/ui/dialog'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue,} from '@/components/ui/select'; -import type {DnsAccountMutationPayload} from '@/lib/services/openflare'; -import {DnsAccountService} from '@/lib/services/openflare'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import type { DnsAccountMutationPayload } from '@/lib/services/openflare'; +import { DnsAccountService } from '@/lib/services/openflare'; -import {getErrorMessage} from './website-utils'; +import { getErrorMessage } from './website-utils'; const dnsAccountsQueryKey = ['openflare', 'dns-accounts']; diff --git a/frontend/components/animate-ui/components/buttons/button.tsx b/frontend/components/animate-ui/components/buttons/button.tsx index a2781cf2..88529e94 100644 --- a/frontend/components/animate-ui/components/buttons/button.tsx +++ b/frontend/components/animate-ui/components/buttons/button.tsx @@ -1,13 +1,13 @@ 'use client'; import * as React from 'react'; -import {cva, type VariantProps} from 'class-variance-authority'; +import { cva, type VariantProps } from 'class-variance-authority'; import { Button as ButtonPrimitive, type ButtonProps as ButtonPrimitiveProps, } from '@/components/animate-ui/primitives/buttons/button'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; const buttonVariants = cva( "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[box-shadow,_color,_background-color,_border-color,_outline-color,_text-decoration-color,_fill,_stroke] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", diff --git a/frontend/components/animate-ui/icons/check.tsx b/frontend/components/animate-ui/icons/check.tsx index 04065db0..7feb4536 100644 --- a/frontend/components/animate-ui/icons/check.tsx +++ b/frontend/components/animate-ui/icons/check.tsx @@ -1,9 +1,14 @@ 'use client'; import * as React from 'react'; -import {motion, type Variants} from 'motion/react'; +import { motion, type Variants } from 'motion/react'; -import {getVariants, type IconProps, IconWrapper, useAnimateIconContext,} from '@/components/animate-ui/icons/icon'; +import { + getVariants, + type IconProps, + IconWrapper, + useAnimateIconContext, +} from '@/components/animate-ui/icons/icon'; type CheckProps = IconProps; diff --git a/frontend/components/animate-ui/icons/chevron-down.tsx b/frontend/components/animate-ui/icons/chevron-down.tsx index b8154e31..d052b7f5 100644 --- a/frontend/components/animate-ui/icons/chevron-down.tsx +++ b/frontend/components/animate-ui/icons/chevron-down.tsx @@ -1,9 +1,14 @@ 'use client'; import * as React from 'react'; -import {motion, type Variants} from 'motion/react'; +import { motion, type Variants } from 'motion/react'; -import {getVariants, type IconProps, IconWrapper, useAnimateIconContext,} from '@/components/animate-ui/icons/icon'; +import { + getVariants, + type IconProps, + IconWrapper, + useAnimateIconContext, +} from '@/components/animate-ui/icons/icon'; type ChevronDownProps = IconProps; diff --git a/frontend/components/animate-ui/icons/chevron-left.tsx b/frontend/components/animate-ui/icons/chevron-left.tsx index 5881663d..f2be86fa 100644 --- a/frontend/components/animate-ui/icons/chevron-left.tsx +++ b/frontend/components/animate-ui/icons/chevron-left.tsx @@ -1,9 +1,14 @@ 'use client'; import * as React from 'react'; -import {motion, type Variants} from 'motion/react'; +import { motion, type Variants } from 'motion/react'; -import {getVariants, type IconProps, IconWrapper, useAnimateIconContext,} from '@/components/animate-ui/icons/icon'; +import { + getVariants, + type IconProps, + IconWrapper, + useAnimateIconContext, +} from '@/components/animate-ui/icons/icon'; type ChevronLeftProps = IconProps; diff --git a/frontend/components/animate-ui/icons/chevron-right.tsx b/frontend/components/animate-ui/icons/chevron-right.tsx index 104ed144..218537e0 100644 --- a/frontend/components/animate-ui/icons/chevron-right.tsx +++ b/frontend/components/animate-ui/icons/chevron-right.tsx @@ -1,9 +1,14 @@ 'use client'; import * as React from 'react'; -import {motion, type Variants} from 'motion/react'; +import { motion, type Variants } from 'motion/react'; -import {getVariants, type IconProps, IconWrapper, useAnimateIconContext,} from '@/components/animate-ui/icons/icon'; +import { + getVariants, + type IconProps, + IconWrapper, + useAnimateIconContext, +} from '@/components/animate-ui/icons/icon'; type ChevronRightProps = IconProps; diff --git a/frontend/components/animate-ui/icons/circle-check.tsx b/frontend/components/animate-ui/icons/circle-check.tsx index 54686518..1011df6e 100644 --- a/frontend/components/animate-ui/icons/circle-check.tsx +++ b/frontend/components/animate-ui/icons/circle-check.tsx @@ -1,9 +1,14 @@ 'use client'; import * as React from 'react'; -import {motion, type Variants} from 'motion/react'; +import { motion, type Variants } from 'motion/react'; -import {getVariants, type IconProps, IconWrapper, useAnimateIconContext,} from '@/components/animate-ui/icons/icon'; +import { + getVariants, + type IconProps, + IconWrapper, + useAnimateIconContext, +} from '@/components/animate-ui/icons/icon'; type CircleCheckProps = IconProps; diff --git a/frontend/components/animate-ui/primitives/buttons/button.tsx b/frontend/components/animate-ui/primitives/buttons/button.tsx index 1bcca060..3f33219a 100644 --- a/frontend/components/animate-ui/primitives/buttons/button.tsx +++ b/frontend/components/animate-ui/primitives/buttons/button.tsx @@ -1,9 +1,12 @@ 'use client'; import * as React from 'react'; -import {type HTMLMotionProps, motion} from 'motion/react'; +import { type HTMLMotionProps, motion } from 'motion/react'; -import {Slot, type WithAsChild,} from '@/components/animate-ui/primitives/animate/slot'; +import { + Slot, + type WithAsChild, +} from '@/components/animate-ui/primitives/animate/slot'; type ButtonProps = WithAsChild< HTMLMotionProps<'button'> & { diff --git a/frontend/components/animate-ui/primitives/radix/collapsible.tsx b/frontend/components/animate-ui/primitives/radix/collapsible.tsx index 016e68f3..102bb5c0 100644 --- a/frontend/components/animate-ui/primitives/radix/collapsible.tsx +++ b/frontend/components/animate-ui/primitives/radix/collapsible.tsx @@ -1,11 +1,11 @@ 'use client'; import * as React from 'react'; -import {Collapsible as CollapsiblePrimitive} from 'radix-ui'; -import {AnimatePresence, type HTMLMotionProps, motion} from 'motion/react'; +import { Collapsible as CollapsiblePrimitive } from 'radix-ui'; +import { AnimatePresence, type HTMLMotionProps, motion } from 'motion/react'; -import {getStrictContext} from '@/lib/utils/get-strict-context'; -import {useControlledState} from '@/hooks/use-controlled-state'; +import { getStrictContext } from '@/lib/utils/get-strict-context'; +import { useControlledState } from '@/hooks/use-controlled-state'; type CollapsibleContextType = { isOpen: boolean; diff --git a/frontend/components/animate-ui/primitives/texts/counting-number.tsx b/frontend/components/animate-ui/primitives/texts/counting-number.tsx index df1acd22..315478e0 100644 --- a/frontend/components/animate-ui/primitives/texts/counting-number.tsx +++ b/frontend/components/animate-ui/primitives/texts/counting-number.tsx @@ -1,9 +1,9 @@ 'use client'; import * as React from 'react'; -import {type SpringOptions, useMotionValue, useSpring} from 'motion/react'; +import { type SpringOptions, useMotionValue, useSpring } from 'motion/react'; -import {useIsInView, type UseIsInViewOptions} from '@/hooks/use-is-in-view'; +import { useIsInView, type UseIsInViewOptions } from '@/hooks/use-is-in-view'; type CountingNumberProps = Omit, 'children'> & { number: number; diff --git a/frontend/components/auth/auth-shell.tsx b/frontend/components/auth/auth-shell.tsx index eb9b17db..b15f3807 100644 --- a/frontend/components/auth/auth-shell.tsx +++ b/frontend/components/auth/auth-shell.tsx @@ -1,10 +1,10 @@ 'use client'; -import type {ReactNode} from 'react'; -import {motion} from 'motion/react'; -import {WavesIcon} from 'lucide-react'; +import type { ReactNode } from 'react'; +import { motion } from 'motion/react'; +import { WavesIcon } from 'lucide-react'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; interface AuthShellProps { children: ReactNode; diff --git a/frontend/components/auth/cap-widget.tsx b/frontend/components/auth/cap-widget.tsx index e5b01898..aaf0c667 100644 --- a/frontend/components/auth/cap-widget.tsx +++ b/frontend/components/auth/cap-widget.tsx @@ -1,8 +1,14 @@ 'use client'; -import {useEffect, useRef, useState} from 'react'; -import {CheckCircle2, Loader2, ShieldAlert, ShieldCheck, ShieldQuestion,} from 'lucide-react'; -import {getCapToken} from '@/lib/cap-solver'; +import { useEffect, useRef, useState } from 'react'; +import { + CheckCircle2, + Loader2, + ShieldAlert, + ShieldCheck, + ShieldQuestion, +} from 'lucide-react'; +import { getCapToken } from '@/lib/cap-solver'; type CapStatus = 'idle' | 'solving' | 'solved' | 'error'; diff --git a/frontend/components/common/docs/api.tsx b/frontend/components/common/docs/api.tsx index 78bfd292..7b38e8c6 100644 --- a/frontend/components/common/docs/api.tsx +++ b/frontend/components/common/docs/api.tsx @@ -1,5 +1,5 @@ -import {type PolicySection} from './types'; -import {CodeBlock} from '@/components/ui/code-block'; +import { type PolicySection } from './types'; +import { CodeBlock } from '@/components/ui/code-block'; import { DocsTable, DocsTableBody, diff --git a/frontend/components/common/file-image-preview.tsx b/frontend/components/common/file-image-preview.tsx index f8f85fde..8d3bebe1 100644 --- a/frontend/components/common/file-image-preview.tsx +++ b/frontend/components/common/file-image-preview.tsx @@ -1,10 +1,10 @@ 'use client'; import * as React from 'react'; -import {ImageOff} from 'lucide-react'; +import { ImageOff } from 'lucide-react'; -import {cn} from '@/lib/utils'; -import {getFileUrl, type ImageQuality} from '@/lib/services/upload/utils'; +import { cn } from '@/lib/utils'; +import { getFileUrl, type ImageQuality } from '@/lib/services/upload/utils'; type FileImagePreviewProps = { fileId: string | number; diff --git a/frontend/components/common/settings/access-token.tsx b/frontend/components/common/settings/access-token.tsx index e3f21c82..6e26b2c5 100644 --- a/frontend/components/common/settings/access-token.tsx +++ b/frontend/components/common/settings/access-token.tsx @@ -2,16 +2,33 @@ import * as React from 'react'; import Link from 'next/link'; -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'; -import {motion} from 'motion/react'; -import {AlertTriangle, Check, Copy, Info, Key, Loader2, Plus, RefreshCw, Shield, Trash2,} from 'lucide-react'; +import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; +import { motion } from 'motion/react'; +import { + AlertTriangle, + Check, + Copy, + Info, + Key, + Loader2, + Plus, + RefreshCw, + Shield, + Trash2, +} from 'lucide-react'; -import {Button} from '@/components/ui/button'; -import {Card, CardContent, CardDescription, CardHeader, CardTitle,} from '@/components/ui/card'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Badge} from '@/components/ui/badge'; -import {Switch} from '@/components/ui/switch'; +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Badge } from '@/components/ui/badge'; +import { Switch } from '@/components/ui/switch'; import { Dialog, DialogContent, @@ -28,10 +45,10 @@ import { BreadcrumbPage, BreadcrumbSeparator, } from '@/components/ui/breadcrumb'; -import type {CreateTokenResponse} from '@/lib/services/user'; -import {UserService} from '@/lib/services/user'; -import {useAuth} from '@/components/providers/auth-provider'; -import {toast} from 'sonner'; +import type { CreateTokenResponse } from '@/lib/services/user'; +import { UserService } from '@/lib/services/user'; +import { useAuth } from '@/components/providers/auth-provider'; +import { toast } from 'sonner'; export function AccessTokenMain() { const { user } = useAuth(); diff --git a/frontend/components/common/settings/appearance.tsx b/frontend/components/common/settings/appearance.tsx index 183847e6..9d06a4d0 100644 --- a/frontend/components/common/settings/appearance.tsx +++ b/frontend/components/common/settings/appearance.tsx @@ -2,12 +2,12 @@ import * as React from 'react'; import Link from 'next/link'; -import {Check, Loader2, Monitor, Moon, Sun} from 'lucide-react'; -import {useTheme} from 'next-themes'; -import {toast} from 'sonner'; -import {Button} from '@/components/ui/button'; -import {useCustomTheme} from '@/lib/theme'; -import {cn} from '@/lib/utils'; +import { Check, Loader2, Monitor, Moon, Sun } from 'lucide-react'; +import { useTheme } from 'next-themes'; +import { toast } from 'sonner'; +import { Button } from '@/components/ui/button'; +import { useCustomTheme } from '@/lib/theme'; +import { cn } from '@/lib/utils'; import { Breadcrumb, BreadcrumbItem, diff --git a/frontend/components/common/settings/auth-source-modal.tsx b/frontend/components/common/settings/auth-source-modal.tsx index 72d8563a..20b985f9 100644 --- a/frontend/components/common/settings/auth-source-modal.tsx +++ b/frontend/components/common/settings/auth-source-modal.tsx @@ -1,14 +1,20 @@ 'use client'; -import {useEffect, useState} from 'react'; -import {toast} from 'sonner'; -import {Button} from '@/components/ui/button'; -import {Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle,} from '@/components/ui/dialog'; -import {Input} from '@/components/ui/input'; -import {Label} from '@/components/ui/label'; -import {Switch} from '@/components/ui/switch'; +import { useEffect, useState } from 'react'; +import { toast } from 'sonner'; +import { Button } from '@/components/ui/button'; +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Switch } from '@/components/ui/switch'; import services from '@/lib/services'; -import type {AuthSource, AuthSourceRequest} from '@/lib/services/admin'; +import type { AuthSource, AuthSourceRequest } from '@/lib/services/admin'; const emptyForm: AuthSourceRequest = { name: '', diff --git a/frontend/components/common/user/file-manager.tsx b/frontend/components/common/user/file-manager.tsx index e0b5e8a8..f5b58082 100644 --- a/frontend/components/common/user/file-manager.tsx +++ b/frontend/components/common/user/file-manager.tsx @@ -1,7 +1,7 @@ 'use client'; import * as React from 'react'; -import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'; +import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { ChevronLeft, ChevronRight, @@ -19,12 +19,12 @@ import { Trash2, Upload, } from 'lucide-react'; -import {toast} from 'sonner'; +import { toast } from 'sonner'; -import {Button} from '@/components/ui/button'; -import {Input} from '@/components/ui/input'; -import {Badge} from '@/components/ui/badge'; -import {Card, CardContent} from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Badge } from '@/components/ui/badge'; +import { Card, CardContent } from '@/components/ui/card'; import { AlertDialog, AlertDialogAction, @@ -36,9 +36,9 @@ import { AlertDialogTitle, } from '@/components/ui/alert-dialog'; -import {FileImagePreview} from '@/components/common/file-image-preview'; -import services, {formatFileSize} from '@/lib/services'; -import type {Upload as UploadRecord} from '@/lib/services/upload/types'; +import { FileImagePreview } from '@/components/common/file-image-preview'; +import services, { formatFileSize } from '@/lib/services'; +import type { Upload as UploadRecord } from '@/lib/services/upload/types'; /* ─── 工具函数 ─────────────────────────────────────────── */ diff --git a/frontend/components/home/developer-section.tsx b/frontend/components/home/developer-section.tsx index a8ff51c3..e0ee8e22 100644 --- a/frontend/components/home/developer-section.tsx +++ b/frontend/components/home/developer-section.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import Link from 'next/link'; -import {cn} from '@/lib/utils'; -import {motion} from 'motion/react'; -import {Button} from '@/components/ui/button'; -import {Book, Check, Copy, Terminal} from 'lucide-react'; +import { cn } from '@/lib/utils'; +import { motion } from 'motion/react'; +import { Button } from '@/components/ui/button'; +import { Book, Check, Copy, Terminal } from 'lucide-react'; export interface DeveloperSectionProps { className?: string; diff --git a/frontend/components/home/footer-section.tsx b/frontend/components/home/footer-section.tsx index 6e13199f..325d6b76 100644 --- a/frontend/components/home/footer-section.tsx +++ b/frontend/components/home/footer-section.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; import Link from 'next/link'; -import {Github, LucideIcon} from 'lucide-react'; +import { Github, LucideIcon } from 'lucide-react'; export interface FooterSectionProps { className?: string; diff --git a/frontend/components/layout/avater-style/Christmas.tsx b/frontend/components/layout/avater-style/Christmas.tsx index 0b4453f6..7cbbf9ef 100644 --- a/frontend/components/layout/avater-style/Christmas.tsx +++ b/frontend/components/layout/avater-style/Christmas.tsx @@ -25,8 +25,8 @@ * ``` */ -import {cn} from '@/lib/utils'; -import {SnowEffect} from '@/components/ui/snow-effect'; +import { cn } from '@/lib/utils'; +import { SnowEffect } from '@/components/ui/snow-effect'; /** * 圣诞树图标组件 diff --git a/frontend/components/layout/empty.tsx b/frontend/components/layout/empty.tsx index 18053223..5b58cd92 100644 --- a/frontend/components/layout/empty.tsx +++ b/frontend/components/layout/empty.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; -import {FileTextIcon} from 'lucide-react'; -import {Button} from '@/components/ui/button'; +import { FileTextIcon } from 'lucide-react'; +import { Button } from '@/components/ui/button'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; /** * 空状态展示组件属性 diff --git a/frontend/components/layout/error.tsx b/frontend/components/layout/error.tsx index b9d4cd82..d8f7c269 100644 --- a/frontend/components/layout/error.tsx +++ b/frontend/components/layout/error.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; -import {AlertCircle} from 'lucide-react'; -import {Button} from '@/components/ui/button'; +import { AlertCircle } from 'lucide-react'; +import { Button } from '@/components/ui/button'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; /** * 错误展示组件属性 diff --git a/frontend/components/providers/auth-provider.tsx b/frontend/components/providers/auth-provider.tsx index e29c7f4c..97c1fdde 100644 --- a/frontend/components/providers/auth-provider.tsx +++ b/frontend/components/providers/auth-provider.tsx @@ -1,6 +1,6 @@ 'use client'; -import {useUser} from '@/contexts/user-context'; +import { useUser } from '@/contexts/user-context'; /** * Auth provider bridge hook diff --git a/frontend/components/ui/accordion.tsx b/frontend/components/ui/accordion.tsx index 284f86a7..e61d658a 100644 --- a/frontend/components/ui/accordion.tsx +++ b/frontend/components/ui/accordion.tsx @@ -2,9 +2,9 @@ import * as React from 'react'; import * as AccordionPrimitive from '@radix-ui/react-accordion'; -import {ChevronDownIcon} from 'lucide-react'; +import { ChevronDownIcon } from 'lucide-react'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; function Accordion({ ...props diff --git a/frontend/components/ui/alert-dialog.tsx b/frontend/components/ui/alert-dialog.tsx index 08b9f6e1..058f3771 100644 --- a/frontend/components/ui/alert-dialog.tsx +++ b/frontend/components/ui/alert-dialog.tsx @@ -3,8 +3,8 @@ import * as React from 'react'; import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog'; -import {cn} from '@/lib/utils'; -import {buttonVariants} from '@/components/ui/button'; +import { cn } from '@/lib/utils'; +import { buttonVariants } from '@/components/ui/button'; function AlertDialog({ ...props diff --git a/frontend/components/ui/aurora-background.tsx b/frontend/components/ui/aurora-background.tsx index 07f739e9..194c58b4 100644 --- a/frontend/components/ui/aurora-background.tsx +++ b/frontend/components/ui/aurora-background.tsx @@ -1,6 +1,6 @@ 'use client'; -import {cn} from '@/lib/utils'; -import React, {ReactNode, useEffect, useState} from 'react'; +import { cn } from '@/lib/utils'; +import React, { ReactNode, useEffect, useState } from 'react'; interface AuroraBackgroundProps extends React.HTMLProps { children: ReactNode; diff --git a/frontend/components/ui/avatar.tsx b/frontend/components/ui/avatar.tsx index 4e75408b..52e6be01 100644 --- a/frontend/components/ui/avatar.tsx +++ b/frontend/components/ui/avatar.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import * as AvatarPrimitive from '@radix-ui/react-avatar'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; function Avatar({ className, diff --git a/frontend/components/ui/badge.tsx b/frontend/components/ui/badge.tsx index f17a11bd..30258985 100644 --- a/frontend/components/ui/badge.tsx +++ b/frontend/components/ui/badge.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; -import {Slot} from '@radix-ui/react-slot'; -import {cva, type VariantProps} from 'class-variance-authority'; +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; const badgeVariants = cva( 'inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden', diff --git a/frontend/components/ui/breadcrumb.tsx b/frontend/components/ui/breadcrumb.tsx index 2f6ea1fe..6f6b3fad 100644 --- a/frontend/components/ui/breadcrumb.tsx +++ b/frontend/components/ui/breadcrumb.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; -import {Slot} from '@radix-ui/react-slot'; -import {ChevronRight, MoreHorizontal} from 'lucide-react'; +import { Slot } from '@radix-ui/react-slot'; +import { ChevronRight, MoreHorizontal } from 'lucide-react'; -import {cn} from '@/lib/utils'; +import { cn } from '@/lib/utils'; function Breadcrumb({ ...props }: React.ComponentProps<'nav'>) { return