"use client"; import { Input } from "@/components/ui/input"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { ArrowLeft, Loader2, Plus, RefreshCw, Search, X } from "@/components/icons/platform-icons"; export type AddNetworkShareDraft = { host: string; share: string; username: string; password: string; }; type AddNetworkShareDialogProps = { createPending: boolean; discoverSharesPending: boolean; discoveredShares: string[]; draft: AddNetworkShareDraft; isBusy: boolean; isOpen: boolean; onClose: () => void; onDiscoverServers: () => void; onDiscoverShares: () => void; onDraftChange: (updater: AddNetworkShareDraft | ((draft: AddNetworkShareDraft) => AddNetworkShareDraft)) => void; onSelectShare: (share: string) => void; onSubmit: () => void; }; function FieldLabel({ children }: { children: React.ReactNode }) { return (
{children}
); } export function AddNetworkShareDialog({ createPending, discoverSharesPending, discoveredShares, draft, isBusy, isOpen, onClose, onDiscoverServers, onDiscoverShares, onDraftChange, onSelectShare, onSubmit, }: AddNetworkShareDialogProps) { function update(key: K, value: AddNetworkShareDraft[K]) { onDraftChange((current) => ({ ...current, [key]: value })); } return ( !open && onClose()}> Add Network Share Connect to an SMB share {/* Window chrome title bar */}
{/* Traffic lights */}
{/* Centered title */}
Add Network Share
{/* Right action — back button to balance */}
{/* Server */}
Server
update("host", event.target.value)} placeholder="Host or IP (e.g. nas.local, 192.168.1.100)" className="h-8 rounded-lg border-glass-border bg-background/55 px-3 text-xs text-foreground placeholder:text-muted-foreground/60 focus-visible:border-primary/40 focus-visible:ring-0" />
{/* Credentials */}
Credentials
update("username", event.target.value)} placeholder="Username" className="h-8 rounded-lg border-glass-border bg-background/55 px-3 text-xs text-foreground placeholder:text-muted-foreground/60 focus-visible:border-primary/40 focus-visible:ring-0" /> update("password", event.target.value)} placeholder="Password" className="h-8 rounded-lg border-glass-border bg-background/55 px-3 text-xs text-foreground placeholder:text-muted-foreground/60 focus-visible:border-primary/40 focus-visible:ring-0" />
{/* Share */}
Share
update("share", event.target.value)} placeholder="Share name (e.g. Media, Documents)" className="h-8 rounded-lg border-glass-border bg-background/55 px-3 text-xs text-foreground placeholder:text-muted-foreground/60 focus-visible:border-primary/40 focus-visible:ring-0" />
{discoveredShares.length > 0 ? (
{discoveredShares.map((shareName) => ( ))}
) : null}
); }