import { track } from "@/features/analytics"; import { TabItem } from "@/models/CollectionModels"; import { Button, DialogActions, DialogBody, DialogContent, DialogSurface, DialogTitle, DialogTrigger, Field, Input, makeStyles, tokens } from "@fluentui/react-components"; export default function TabEditDialog({ tab, onSave }: TabEditDialogProps): React.ReactElement { const cls = useStyles(); const [title, setTitle] = useState(tab.title ?? ""); const [url, setUrl] = useState(tab.url); const isValid = useMemo(() => url.trim().length > 0, [url]); const onSubmit = (e: React.FormEvent) => { e.preventDefault(); track("item_edited", { type: "tab" }); onSave({ ...tab, title: title.trim().length > 0 ? title : undefined, url: url.trim() }); }; return (
{ i18n.t("dialogs.edit.title.edit_tab") } setTitle(e.value) } placeholder={ i18n.t("dialogs.edit.collection_title") } /> setUrl(e.value) } placeholder="URL" />
); } const useStyles = makeStyles({ content: { display: "flex", flexFlow: "column", gap: tokens.spacingVerticalMNudge } }); export type TabEditDialogProps = { tab: TabItem; onSave: (updatedTab: TabItem) => void; };