"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) => )}

{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 &&
  1. No suggestions on this page.

    Try the other status, or return to the previous page.

  2. } {data.items.map((suggestion, index) =>
  3. {suggestion.title}


    Author / {suggestion.authorId}

    ~{suggestion.messageCount} messages

    Discord ↗
  4. )}
; }