- SQLite-Import, migrate.sh, notes/migrations.md und altes jQuery-Skript entfernt - Backend: scanEntry/queryEntries statt doppelter Scan-Liste, Feed-Queries direkt statt feedWhere, Thread ohne Map-Umweg, gemeinsame Helfer für Cookie-Löschen und Mediennamen, usernameTaken - Frontend: PostForm für Beitrag und Antwort, EntryCard in Deleted/LiveCard aufgeteilt, tote CSS-Regeln und Typen entfernt, Strich-Regeln zusammengelegt - Rechtstexte verlinken /stats; Kommentare ohne Vorgeschichte Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TiXsPUqw7oeomZ8wZrQW5q
35 lines
1020 B
TypeScript
35 lines
1020 B
TypeScript
import { useQueryClient } from "@tanstack/react-query";
|
|
import { useMe } from "../auth";
|
|
import { AuthBox } from "../components/AuthBox";
|
|
import { Feed } from "../components/Feed";
|
|
import { PostForm } from "../components/PostForm";
|
|
|
|
// Solange der Anmeldestatus noch lädt, weder Login noch Formular zeigen --
|
|
// sonst blitzt bei Angemeldeten kurz die Login-Box auf.
|
|
export function FeedPage() {
|
|
const me = useMe();
|
|
return (
|
|
<>
|
|
{me.isSuccess && (me.data ? <Compose /> : <AuthBox />)}
|
|
<Feed queryKey={["feed"]} urlFor={(page) => `/entry/feed/${page}`} />
|
|
</>
|
|
);
|
|
}
|
|
|
|
// Nach einem neuen Beitrag springt der Feed zurück auf Seite 0, damit er oben
|
|
// steht.
|
|
function Compose() {
|
|
const qc = useQueryClient();
|
|
return (
|
|
<section id="compose">
|
|
<PostForm
|
|
rows={4}
|
|
placeholder="Was gibt's Neues?"
|
|
submitLabel="Eintrag erstellen"
|
|
fallback="Beitrag fehlgeschlagen."
|
|
onDone={() => qc.resetQueries({ queryKey: ["feed"] })}
|
|
/>
|
|
</section>
|
|
);
|
|
}
|