diff --git a/apps/desktop2/public/ai.jpg b/apps/desktop2/public/ai.jpg deleted file mode 100644 index 36843631..00000000 Binary files a/apps/desktop2/public/ai.jpg and /dev/null differ diff --git a/apps/desktop2/public/anime.jpg b/apps/desktop2/public/anime.jpg deleted file mode 100644 index f7f8eeab..00000000 Binary files a/apps/desktop2/public/anime.jpg and /dev/null differ diff --git a/apps/desktop2/public/art.jpg b/apps/desktop2/public/art.jpg deleted file mode 100644 index efc36ab3..00000000 Binary files a/apps/desktop2/public/art.jpg and /dev/null differ diff --git a/apps/desktop2/public/gaming.jpg b/apps/desktop2/public/gaming.jpg deleted file mode 100644 index de58aeeb..00000000 Binary files a/apps/desktop2/public/gaming.jpg and /dev/null differ diff --git a/apps/desktop2/public/movie.jpg b/apps/desktop2/public/movie.jpg deleted file mode 100644 index bcb36809..00000000 Binary files a/apps/desktop2/public/movie.jpg and /dev/null differ diff --git a/apps/desktop2/public/music.jpg b/apps/desktop2/public/music.jpg deleted file mode 100644 index 1c533c15..00000000 Binary files a/apps/desktop2/public/music.jpg and /dev/null differ diff --git a/apps/desktop2/public/nsfw.jpg b/apps/desktop2/public/nsfw.jpg deleted file mode 100644 index f9e183d2..00000000 Binary files a/apps/desktop2/public/nsfw.jpg and /dev/null differ diff --git a/apps/desktop2/public/photography.jpg b/apps/desktop2/public/photography.jpg deleted file mode 100644 index 6f117830..00000000 Binary files a/apps/desktop2/public/photography.jpg and /dev/null differ diff --git a/apps/desktop2/public/technology.jpg b/apps/desktop2/public/technology.jpg deleted file mode 100644 index cfd733f0..00000000 Binary files a/apps/desktop2/public/technology.jpg and /dev/null differ diff --git a/apps/desktop2/src/routes/$account.tsx b/apps/desktop2/src/routes/$account.tsx index 930cacdf..33a6d06d 100644 --- a/apps/desktop2/src/routes/$account.tsx +++ b/apps/desktop2/src/routes/$account.tsx @@ -5,7 +5,7 @@ import { PlusIcon, SearchIcon, } from "@lume/icons"; -import { Event, Kind } from "@lume/types"; +import { type Event, Kind } from "@lume/types"; import { User } from "@/components/user"; import { cn, diff --git a/apps/desktop2/src/routes/create-group.tsx b/apps/desktop2/src/routes/create-group.tsx index 774bddf5..68b331d3 100644 --- a/apps/desktop2/src/routes/create-group.tsx +++ b/apps/desktop2/src/routes/create-group.tsx @@ -1,8 +1,8 @@ -import { CheckCircleIcon } from "@lume/icons"; +import { CancelIcon, CheckCircleIcon, PlusIcon } from "@lume/icons"; import type { ColumnRouteSearch } from "@lume/types"; import { Spinner } from "@lume/ui"; import { User } from "@/components/user"; -import { createFileRoute, useRouter } from "@tanstack/react-router"; +import { createFileRoute } from "@tanstack/react-router"; import { useState } from "react"; import { toast } from "sonner"; @@ -24,103 +24,173 @@ export const Route = createFileRoute("/create-group")({ function Screen() { const contacts = Route.useLoaderData(); - const router = useRouter(); + const navigate = Route.useNavigate(); const { ark } = Route.useRouteContext(); const { label, redirect } = Route.useSearch(); - const [title, setTitle] = useState("Just a new group"); - const [users, setUsers] = useState>([]); - const [loading, setLoading] = useState(false); - const [isDone, setIsDone] = useState(false); + const [title, setTitle] = useState(""); + const [npub, setNpub] = useState(""); + const [users, setUsers] = useState([ + "npub1zfss807aer0j26mwp2la0ume0jqde3823rmu97ra6sgyyg956e0s6xw445", // reya + ]); + const [isLoading, setIsLoading] = useState(false); const toggleUser = (pubkey: string) => { - const arr = users.includes(pubkey) - ? users.filter((i) => i !== pubkey) - : [...users, pubkey]; - setUsers(arr); + setUsers((prev) => + prev.includes(pubkey) + ? prev.filter((i) => i !== pubkey) + : [...prev, pubkey], + ); + }; + + const addUser = () => { + if (!npub.startsWith("npub1")) return; + if (users.includes(npub)) return; + + setUsers((prev) => [...prev, npub]); + setNpub(""); }; const submit = async () => { try { - if (isDone) return router.history.push(redirect); + setIsLoading(true); - // start loading - setLoading(true); + const key = `lume_group_${label}`; + const createGroup = await ark.set_nstore(key, JSON.stringify(users)); - const groups = await ark.set_nstore( - `lume_group_${label}`, - JSON.stringify(users), - ); - - if (groups) { - toast.success("Group has been created successfully."); - // start loading - setIsDone(true); - setLoading(false); + if (createGroup) { + return navigate({ to: redirect }); } } catch (e) { - setLoading(false); + setIsLoading(false); toast.error(e); } }; return ( -
-
-
-