fix: remove unused TS imports, fix icon size type, use prisma db push
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import React, { useState } from 'react'
|
||||
import { useState } from 'react'
|
||||
import { Outlet, NavLink, useNavigate } from 'react-router-dom'
|
||||
import {
|
||||
LayoutDashboard, Users, Package, UserCog, Globe, Mail, Shield,
|
||||
Server, Database, HardDrive, Settings, LogOut, Menu, X,
|
||||
Server, HardDrive, Settings, LogOut, Menu, X,
|
||||
Activity, Lock, BarChart3, Cpu
|
||||
} from 'lucide-react'
|
||||
import { useAuth } from '../contexts/AuthContext'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useState, useCallback } from 'react'
|
||||
import { useEffect, useState, useCallback } from 'react'
|
||||
import { Link } from 'react-router-dom'
|
||||
import { Plus, Search, MoreVertical, UserX, UserCheck, Trash2, RefreshCw } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { HardDrive, Download, Trash2, RefreshCw, Play } from 'lucide-react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { HardDrive, Trash2, RefreshCw, Play } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
interface Backup { path: string; filename: string; size: number; createdAt: string }
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { RefreshCw, Globe, Plus, Trash2, Pencil } from 'lucide-react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { RefreshCw, Globe, Plus, Trash2 } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
interface Zone { id: number; domain: string; status: string; account: { username: string }; _count: { records: number } }
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useState, useRef } from 'react'
|
||||
import { Users, Globe, Server, HardDrive, Activity, AlertTriangle } from 'lucide-react'
|
||||
import { Users, Server, HardDrive, Activity } from 'lucide-react'
|
||||
import { AreaChart, Area, XAxis, YAxis, Tooltip, ResponsiveContainer } from 'recharts'
|
||||
import { api } from '../api/client'
|
||||
|
||||
@@ -22,7 +22,7 @@ interface StatCard {
|
||||
label: string
|
||||
value: string | number
|
||||
sub?: string
|
||||
icon: React.ComponentType<{ size?: number; className?: string }>
|
||||
icon: React.ComponentType<{ size?: number | string; className?: string }>
|
||||
color: string
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { Mail, Plus, Trash2, RefreshCw } from 'lucide-react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { Plus, Trash2, RefreshCw } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
interface EmailAccount { id: number; address: string; domain: string; quotaMb: number; usedMb: number; status: string }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { Cpu, CheckCircle, XCircle, RefreshCw } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { Shield, Plus, Trash2, CheckCircle } from 'lucide-react'
|
||||
import { Plus, Trash2, CheckCircle } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
interface BlockedIp { id: number; ip: string; reason: string | null; createdAt: string }
|
||||
@@ -16,10 +16,7 @@ export default function Security() {
|
||||
const [events, setEvents] = useState<SecurityEvent[]>([])
|
||||
const [newIp, setNewIp] = useState('')
|
||||
const [reason, setReason] = useState('')
|
||||
const [loading, setLoading] = useState(false)
|
||||
|
||||
const fetch = async () => {
|
||||
setLoading(true)
|
||||
try {
|
||||
const [b, e] = await Promise.all([
|
||||
api.get('/nixserver/security/blocked-ips'),
|
||||
@@ -27,7 +24,7 @@ export default function Security() {
|
||||
])
|
||||
setBlocked(b.data.data)
|
||||
setEvents(e.data.data.items ?? e.data.data)
|
||||
} finally { setLoading(false) }
|
||||
} catch {}
|
||||
}
|
||||
|
||||
useEffect(() => { fetch() }, [])
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { Play, Square, RefreshCw, AlertCircle, CheckCircle, MinusCircle } from 'lucide-react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { RefreshCw, AlertCircle, CheckCircle, MinusCircle } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
interface Service { name: string; status: 'running' | 'stopped' | 'failed' | 'unknown'; enabled: boolean }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { RefreshCw } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { Server, RefreshCw, RotateCcw, CheckCircle, XCircle } from 'lucide-react'
|
||||
import { api } from '../api/client'
|
||||
|
||||
export default function WebServer() {
|
||||
const [status, setStatus] = useState<{ nginx: { active: boolean }; apache: { active: boolean } } | null>(null)
|
||||
const [vhosts, setVhosts] = useState<{ domain: string; path: string }[]>([])
|
||||
const [, setVhosts] = useState<{ domain: string; path: string }[]>([])
|
||||
const [logs, setLogs] = useState<{ lines: string[] } | null>(null)
|
||||
const [logType, setLogType] = useState<'access' | 'error'>('access')
|
||||
const [loading, setLoading] = useState(false)
|
||||
|
||||
+1
-1
@@ -396,7 +396,7 @@ step "Running database migrations"
|
||||
cd "$INSTALL_DIR/server"
|
||||
npx prisma generate
|
||||
DATABASE_URL="mysql://${NIXPANEL_DB_USER}:${NIXPANEL_DB_PASS}@localhost:3306/${NIXPANEL_DB_NAME}" \
|
||||
npx prisma migrate deploy
|
||||
npx prisma db push
|
||||
success "Database schema applied"
|
||||
|
||||
# ── Seed default data ─────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user