import React, { useState } from 'react';
import {
HardDrive,
Network,
UserCheck,
CheckCircle2,
ArrowRight,
ArrowLeft,
Database,
ShieldCheck,
Server,
} from 'lucide-react';
export const WizardView: React.FC = () => {
const [step, setStep] = useState(1);
const [storageMode, setStorageMode] = useState<'create' | 'import'>('import');
const [poolName, setPoolName] = useState('tank');
const [hostname, setHostname] = useState('naxos');
const [adminUser, setAdminUser] = useState('admin');
const [adminPassword, setAdminPassword] = useState('');
const [gitopsUrl, setGitopsUrl] = useState('ssh://git@git.lholz.de:2222/naxos/naxos-config.git');
const [isDone, setIsDone] = useState(false);
const handleFinish = () => {
setIsDone(true);
};
return (
NaxOS Appliance Setup Wizard
Step-by-step guided configuration for storage layout, network, and security
{/* Progress Steps */}
{[
{ num: 1, title: 'Storage & Pools' },
{ num: 2, title: 'Network' },
{ num: 3, title: 'Credentials' },
{ num: 4, title: 'GitOps & Finish' },
].map((s) => (
s.num
? 'bg-emerald-500/20 text-emerald-400'
: 'bg-slate-800 text-slate-500'
}`}
>
{step > s.num ? : s.num}
{s.title}
))}
{/* Form Container */}
{step === 1 && (
Storage Architecture & ZFS Pool
setPoolName(e.target.value)}
className="w-full px-3 py-2 bg-slate-950 border border-slate-800 rounded-xl text-white font-mono text-xs focus:outline-none focus:border-emerald-500"
/>
)}
{step === 2 && (
)}
{step === 3 && (
)}
{step === 4 && (
GitOps Remote & Final Validation
{isDone && (
NaxOS Appliance successfully initialized and ready for production!
)}
)}
{/* Buttons */}
{step < 4 ? (
) : (
)}
);
};