Ajoute les suggestions de questions des Citoyens et les emails sur Admin
Build and deploy / deploy (push) Successful in 35s
Build and deploy / deploy (push) Successful in 35s
Chaque Citoyen peut proposer une question pour Le Char depuis /profile (upsert via submit_chariot_question, figée dès la date du Tribunal comme les scores d'Icare). Les Archontes modèrent ces suggestions directement sur /char/questions (ajouter à la banque ou rejeter). /admin affiche maintenant l'email de chaque membre via une nouvelle RPC admin_list_members(), seule façon d'exposer auth.users.email sans passer par la service_role key côté client. Corrige au passage deux bugs découverts pendant les tests : la policy interne de admin_list_members() référençait id/role sans les qualifier, ambigus avec les colonnes du RETURNS TABLE (erreur Postgres 42702) ; et l'auteur d'une suggestion s'affichait toujours comme "un Citoyen" car le embed profiles(...) avait été mal retypé en tableau alors qu'il est retourné en objet à l'exécution.
This commit is contained in:
@@ -10,6 +10,13 @@ export type QuestionRow = {
|
||||
created_at: string;
|
||||
};
|
||||
|
||||
export type SubmissionRow = {
|
||||
user_id: string;
|
||||
text: string;
|
||||
updated_at: string;
|
||||
profiles: { pseudo: string; avatar_url: string | null } | null;
|
||||
};
|
||||
|
||||
export default async function CharQuestionsPage() {
|
||||
const supabase = await createClient();
|
||||
const {
|
||||
@@ -45,6 +52,12 @@ export default async function CharQuestionsPage() {
|
||||
.eq("id", true)
|
||||
.single();
|
||||
|
||||
const { data: submissions } = await supabase
|
||||
.from("chariot_submissions")
|
||||
.select("user_id, text, updated_at, profiles(pseudo, avatar_url)")
|
||||
.order("updated_at", { ascending: true })
|
||||
.returns<SubmissionRow[]>();
|
||||
|
||||
return (
|
||||
<div className="mx-auto w-full max-w-2xl px-4 py-8">
|
||||
<div className="mb-6 text-center">
|
||||
@@ -62,6 +75,7 @@ export default async function CharQuestionsPage() {
|
||||
<QuestionsView
|
||||
initialQuestions={questions ?? []}
|
||||
initialRevealedId={settings?.chariot_revealed_question_id ?? null}
|
||||
initialSubmissions={submissions ?? []}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user