import { lazy, type ReactNode, type ComponentType } from 'react';
import { FileJson, Hash, Binary, Network, Globe, Activity, Gauge, Wifi, MapPin } from 'lucide-react'
// 懒加载工具组件
const UUID = lazy(() => import('./uuid'))
const JSON = lazy(() => import('./json'))
const Base64 = lazy(() => import('./base64'))
const DNS = lazy(() => import('./network/dns'))
const Ping = lazy(() => import('./network/ping'))
const TCPing = lazy(() => import('./network/tcping'))
const SpeedTest = lazy(() => import('./network/speedtest'))
const IPQuery = lazy(() => import('./network/ipquery'))
export interface Tool {
path: string;
name: string;
icon: ReactNode;
description: string;
component?: ComponentType;
children?: Tool[];
}
export const tools: Tool[] = [
{
path: "uuid",
name: "UUID Generator",
description: "Generate a UUID",
icon: ,
component: UUID,
},
{
path: "json",
name: "JSON Formatter",
description: "Format and validate JSON",
icon: ,
component: JSON,
},
{
path: "base64",
name: "Base64 Encoder/Decoder",
description: "Encode and decode Base64",
icon: ,
component: Base64,
},
{
path: "network",
name: "Network Tools",
description: "Network testing tools",
icon: ,
children: [
{
path: "dns",
name: "DNS Lookup",
description: "DNS query tool",
icon: ,
component: DNS,
},
{
path: "ping",
name: "Ping",
description: "Ping test tool",
icon: ,
component: Ping,
},
{
path: "tcping",
name: "TCPing",
description: "TCP port connectivity test",
icon: ,
component: TCPing,
},
{
path: "speedtest",
name: "Speed Test",
description: "Website speed test",
icon: ,
component: SpeedTest,
},
{
path: "ipquery",
name: "IP Query",
description: "Query IP location, quality and risk info",
icon: ,
component: IPQuery,
},
],
},
];