{ // If showing older threads, reload to fetch them // If hiding older threads, just filter client-side (no reload needed) if (showOlder) { loadThreads(); } }} class="mr-2" /> Show older threads
{ threads = await sortThreads(threads); }} class="border border-fog-border dark:border-fog-dark-border bg-fog-post dark:bg-fog-dark-post text-fog-text dark:text-fog-dark-text px-2 py-1 rounded">
Newest
Most Active
Most Upvoted
{#if loading}
Loading threads...
{:else}
Filter by topic:
(selectedTopic = null)} class="px-3 py-1 rounded border transition-colors {selectedTopic === null ? 'bg-fog-accent dark:bg-fog-dark-accent text-white border-fog-accent dark:border-fog-dark-accent' : 'bg-fog-post dark:bg-fog-dark-post text-fog-text dark:text-fog-dark-text border-fog-border dark:border-fog-dark-border hover:bg-fog-highlight dark:hover:bg-fog-dark-highlight'}" > All ({filterByAge(threads).length})
{#each getTopicsWithCounts() as { topic, count }}
(selectedTopic = topic === null ? undefined : topic)} class="px-3 py-1 rounded border transition-colors {selectedTopic === (topic === null ? undefined : topic) ? 'bg-fog-accent dark:bg-fog-dark-accent text-white border-fog-accent dark:border-fog-dark-accent' : 'bg-fog-post dark:bg-fog-dark-post text-fog-text dark:text-fog-dark-text border-fog-border dark:border-fog-dark-border hover:bg-fog-highlight dark:hover:bg-fog-dark-highlight'}" > {topic === null ? 'General' : topic} ({count})
{/each}
{#if selectedTopic === null}
General
{#each getThreadsByTopic(null) as thread}
{/each} {#each getTopics() as topic}
{topic}
{#each getThreadsByTopic(topic) as thread}
{/each} {/each} {:else}
{selectedTopic === undefined ? 'General' : selectedTopic}
{#each getFilteredThreads() as thread}
{/each} {#if getFilteredThreads().length === 0}
No threads found in this topic.
{/if} {/if}
{/if}