"use client"; import Link from "next/link"; import { useState } from "react"; import type { SuggestionPage } from "@/lib/discord/suggestion-types"; import { SuggestionBadges, SuggestionFailure, SuggestionLoading, SuggestionPagination, suggestionControl, useSuggestionRead, useSuggestionPages, type SuggestionPaging } from "./suggestion-shared"; export function SuggestionsBrowser() { const [status, setStatus] = useState<"active" | "archived">("active"); const paging = useSuggestionPages(); const query = new URLSearchParams({ status, limit: "25" }); if (paging.cursor) query.set("cursor", paging.cursor); const url = `/api/suggestions?${query}`; return {(["active", "archived"] as const).map((value) => { setStatus(value); paging.reset(); }} type="button">{value === "active" ? "Active" : "Archived"})} {status === "active" ? "Newest ideas first" : "Most recently archived first"} ; } function SuggestionList({ url, paging }: { url: string; paging: SuggestionPaging }) { const { data, error, retry } = useSuggestionRead(url); if (error) return ; if (!data) return Loading suggestions…; return <> {!data.items.length && No suggestions on this page.Try the other status, or return to the previous page.} {data.items.map((suggestion, index) => {String(index + 1).padStart(2, "0")} {suggestion.title} {suggestion.createdAt}Author / {suggestion.authorId} ~{suggestion.messageCount} messages Discord ↗ )} >; }
{status === "active" ? "Newest ideas first" : "Most recently archived first"}
Try the other status, or return to the previous page.
{suggestion.createdAt}Author / {suggestion.authorId}
~{suggestion.messageCount} messages