import { CheckCircleIcon } from "@lume/icons"; import { NostrQuery } from "@lume/system"; import type { ColumnRouteSearch } from "@lume/types"; import { Spinner } from "@lume/ui"; import { TOPICS } from "@lume/utils"; import { createFileRoute } from "@tanstack/react-router"; import { message } from "@tauri-apps/plugin-dialog"; import { useState } from "react"; type Topic = { title: string; content: string[]; }; export const Route = createFileRoute("/create-topic")({ validateSearch: (search: Record): ColumnRouteSearch => { return { account: search.account, label: search.label, name: search.name, }; }, component: Screen, }); function Screen() { const [topics, setTopics] = useState([]); const [isLoading, setIsLoading] = useState(false); const search = Route.useSearch(); const navigate = Route.useNavigate(); const toggleTopic = (topic: Topic) => { setTopics((prev) => prev.find((item) => item.title === topic.title) ? prev.filter((i) => i.title !== topic.title) : [...prev, topic], ); }; const submit = async () => { try { setIsLoading(true); const key = `lume_topic_${search.label}`; const createTopic = await NostrQuery.setNstore( key, JSON.stringify(topics), ); if (createTopic) { return navigate({ to: search.redirect, search: { ...search } }); } } catch (e) { setIsLoading(false); await message(String(e), { title: "Create Topic", kind: "error", }); } }; return (

What are your interests?

Add some topics you want to focus on.

Added: {topics.length}
{TOPICS.map((topic) => ( ))}
); }