Update website to use simpler, more direct language for user submissions
Adjusted synthesis prompt and frontend copy to shift from a solemn, manifesto-like tone to a practical, direct communication style for user contributions and political representatives. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 923ae0e3-a363-4db8-b04a-e8baca2a1330 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 1a34f0b7-23c8-4e2d-a327-0e8096495ea3 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8af7d2ec-2cc3-4ece-8af3-9f071488d072/923ae0e3-a363-4db8-b04a-e8baca2a1330/qrVKaka Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -31,8 +31,8 @@ import {
|
||||
|
||||
const submitIdeaSchema = z.object({
|
||||
content: z.string()
|
||||
.min(10, "Votre idée doit comporter au moins 10 caractères pour avoir du poids.")
|
||||
.max(1000, "La concision est une vertu. Restez sous 1 000 caractères."),
|
||||
.min(10, "Votre contribution doit faire au moins 10 caractères.")
|
||||
.max(1000, "Merci de rester sous 1 000 caractères."),
|
||||
author: z.string().max(100).optional(),
|
||||
});
|
||||
|
||||
@@ -96,13 +96,13 @@ export default function Home() {
|
||||
if (result.accepted) {
|
||||
setSubmitResult({
|
||||
success: true,
|
||||
message: "Votre voix a été intégrée au manifeste collectif.",
|
||||
message: "Votre contribution a été ajoutée à la synthèse.",
|
||||
});
|
||||
form.reset();
|
||||
} else {
|
||||
setSubmitResult({
|
||||
success: false,
|
||||
message: "Cette contribution n'a pas pu être intégrée au manifeste car elle n'est pas en accord avec les valeurs fondamentales qui guident cet espace commun.",
|
||||
message: "Cette contribution n'a pas pu être intégrée : elle n'est pas compatible avec le cadre de modération de cette plateforme.",
|
||||
reason: result.reason ?? undefined,
|
||||
});
|
||||
}
|
||||
@@ -125,10 +125,10 @@ export default function Home() {
|
||||
<div className="p-6 md:p-8 flex flex-col gap-6 flex-shrink-0 border-b border-border/40">
|
||||
<div className="space-y-2">
|
||||
<h1 className="text-3xl font-serif font-bold text-primary tracking-tight">
|
||||
Parlez à la République
|
||||
Vos propositions
|
||||
</h1>
|
||||
<p className="text-muted-foreground font-mono text-sm uppercase tracking-wider">
|
||||
Votre voix compte. Partagez votre vision pour l'avenir.
|
||||
<p className="text-muted-foreground text-sm">
|
||||
Soumettez vos idées. Elles sont synthétisées et transmises à vos représentants.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -142,7 +142,7 @@ export default function Home() {
|
||||
<FormLabel className="sr-only">Votre idée</FormLabel>
|
||||
<FormControl>
|
||||
<Textarea
|
||||
placeholder="Quel changement souhaitez-vous ? Exprimez-vous librement."
|
||||
placeholder="Quelle proposition souhaitez-vous faire remonter ?"
|
||||
className="min-h-[120px] resize-none font-serif text-lg bg-background border-primary/20 focus-visible:ring-primary placeholder:text-muted-foreground/50"
|
||||
data-testid="input-idea-content"
|
||||
{...field}
|
||||
@@ -181,7 +181,7 @@ export default function Home() {
|
||||
{submitIdea.isPending ? (
|
||||
<><Loader2 className="mr-2 h-4 w-4 animate-spin" /> Envoi…</>
|
||||
) : (
|
||||
<><PenTool className="mr-2 h-4 w-4" /> Proclamer</>
|
||||
<><PenTool className="mr-2 h-4 w-4" /> Contribuer</>
|
||||
)}
|
||||
</Button>
|
||||
</div>
|
||||
@@ -199,7 +199,7 @@ export default function Home() {
|
||||
: <Info className="h-4 w-4 text-amber-600" />
|
||||
}
|
||||
<AlertTitle>
|
||||
{submitResult.success ? "Proclamation enregistrée" : "Contribution non retenue"}
|
||||
{submitResult.success ? "Contribution enregistrée" : "Contribution non retenue"}
|
||||
</AlertTitle>
|
||||
<AlertDescription>
|
||||
{submitResult.message}
|
||||
@@ -217,13 +217,14 @@ export default function Home() {
|
||||
<AccordionItem value="valeurs" className="border-none">
|
||||
<AccordionTrigger className="text-xs font-mono uppercase tracking-widest text-muted-foreground hover:no-underline py-3">
|
||||
<span className="flex items-center gap-2">
|
||||
<Scale className="h-3 w-3" /> Nos valeurs & fondements juridiques
|
||||
<Scale className="h-3 w-3" /> Cadre de modération
|
||||
</span>
|
||||
</AccordionTrigger>
|
||||
<AccordionContent>
|
||||
<p className="text-xs text-muted-foreground font-serif mb-4 leading-relaxed">
|
||||
Cet espace est régi par les grands textes fondateurs du droit international
|
||||
des droits humains. Toute contribution est évaluée à leur lumière.
|
||||
<p className="text-xs text-muted-foreground mb-4 leading-relaxed">
|
||||
Les contributions sont modérées selon les textes fondamentaux du droit
|
||||
international des droits humains. Les contenus contraires à ces principes
|
||||
ne sont pas intégrés.
|
||||
</p>
|
||||
<div className="space-y-3">
|
||||
{VALEURS.map((v) => (
|
||||
@@ -247,7 +248,7 @@ export default function Home() {
|
||||
<ScrollArea className="flex-1 bg-muted/30">
|
||||
<div className="p-6 md:p-8">
|
||||
<h2 className="text-xs font-mono font-bold uppercase tracking-widest text-muted-foreground mb-6 flex items-center gap-2">
|
||||
<TrendingUp className="h-3 w-3" /> Proclamations récentes
|
||||
<TrendingUp className="h-3 w-3" /> Contributions récentes
|
||||
</h2>
|
||||
|
||||
<div className="space-y-8">
|
||||
@@ -277,8 +278,8 @@ export default function Home() {
|
||||
</div>
|
||||
))
|
||||
) : (
|
||||
<div className="text-center p-8 text-muted-foreground font-mono text-sm border border-dashed border-border/60">
|
||||
Aucune proclamation enregistrée. Soyez le premier à prendre la parole.
|
||||
<div className="text-center p-8 text-muted-foreground text-sm border border-dashed border-border/60">
|
||||
Aucune contribution enregistrée pour l'instant.
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
@@ -299,17 +300,17 @@ export default function Home() {
|
||||
<div className="flex justify-between items-start mb-12">
|
||||
<div>
|
||||
<h2 className="text-sm font-mono font-bold uppercase tracking-widest text-primary flex items-center gap-2">
|
||||
<Users className="h-4 w-4" /> La Voix du Peuple
|
||||
<Users className="h-4 w-4" /> Synthèse des contributions
|
||||
</h2>
|
||||
<p className="text-xs font-mono text-muted-foreground mt-1">
|
||||
La synthèse vivante de la pensée démocratique
|
||||
Mise à jour à chaque nouvelle contribution
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{stats && (
|
||||
<div className="text-xs font-mono text-right" data-testid="text-stats">
|
||||
<div className="flex flex-col">
|
||||
<span className="text-muted-foreground">Voix rejointes</span>
|
||||
<span className="text-muted-foreground">Contributions intégrées</span>
|
||||
<span className="font-bold text-primary">{stats.accepted}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -321,7 +322,7 @@ export default function Home() {
|
||||
<div className="flex flex-col items-center justify-center gap-4 text-muted-foreground">
|
||||
<Loader2 className="h-8 w-8 animate-spin text-primary" />
|
||||
<span className="font-mono text-sm uppercase tracking-widest">
|
||||
À l'écoute du peuple…
|
||||
Chargement…
|
||||
</span>
|
||||
</div>
|
||||
) : synthesis ? (
|
||||
@@ -334,7 +335,7 @@ export default function Home() {
|
||||
<div>{synthesis.text}</div>
|
||||
) : (
|
||||
<p className="text-muted-foreground italic text-center text-xl">
|
||||
Les pages de notre manifeste sont encore vierges. Prenez la parole.
|
||||
Aucune contribution pour l'instant.
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
@@ -345,14 +346,14 @@ export default function Home() {
|
||||
data-testid="text-synthesis-meta"
|
||||
>
|
||||
<span>
|
||||
Synthèse de {synthesis.ideaCount} idée{synthesis.ideaCount !== 1 ? "s" : ""} citoyenne{synthesis.ideaCount !== 1 ? "s" : ""}
|
||||
Basé sur {synthesis.ideaCount} contribution{synthesis.ideaCount !== 1 ? "s" : ""}
|
||||
</span>
|
||||
<span className="flex items-center gap-2">
|
||||
<span className="relative flex h-2 w-2">
|
||||
<span className="animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75" />
|
||||
<span className="relative inline-flex rounded-full h-2 w-2 bg-primary" />
|
||||
</span>
|
||||
En direct • {format(new Date(synthesis.updatedAt), "HH:mm:ss")}
|
||||
Mis à jour le {format(new Date(synthesis.updatedAt), "d MMM à HH:mm", { locale: fr })}
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user