mirror of
https://github.com/R0m1k3/PleinR.git
synced 2026-10-11 17:27:54 +02:00
Élargit fortement la liste des catégories d'adhérents (59) + select dynamique
Seed enrichi avec ~59 catégories (bouche, mode/beauté, maison/bâtiment, auto, santé, services aux particuliers & entreprises, loisirs/culture, industrie), slugs existants conservés. Le select « Catégorie » de l'espace adhérent lit désormais la liste depuis la base (plus de liste codée en dur). Insertion idempotente : relancer le seed ajoute les nouvelles catégories sans doublon. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XwfhYHzC9hQWPDnQ2p53GL
This commit is contained in:
3 files changed
+103
-23
No files matched your search
@@ -4,24 +4,21 @@ import { useRef, useState } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { publishPromo } from "../actions";
|
||||
|
||||
const CATEGORIES = [
|
||||
"Boulangerie",
|
||||
"Restauration",
|
||||
"Mode & Beauté",
|
||||
"Artisanat",
|
||||
"Services",
|
||||
"Santé",
|
||||
"Alimentation",
|
||||
];
|
||||
|
||||
const STRIPE_WARM =
|
||||
"repeating-linear-gradient(45deg,#efe9da,#efe9da 12px,#e6ddc9 12px,#e6ddc9 24px)";
|
||||
|
||||
export function MemberSpaceForm({ memberName }: { memberName: string }) {
|
||||
export function MemberSpaceForm({
|
||||
memberName,
|
||||
categories,
|
||||
}: {
|
||||
memberName: string;
|
||||
categories: string[];
|
||||
}) {
|
||||
const CATEGORIES = categories.length > 0 ? categories : ["Autre"];
|
||||
const router = useRouter();
|
||||
const [title, setTitle] = useState("");
|
||||
const [text, setText] = useState("");
|
||||
const [cat, setCat] = useState("Boulangerie");
|
||||
const [cat, setCat] = useState(CATEGORIES[0]);
|
||||
const [badge, setBadge] = useState("");
|
||||
const [imgData, setImgData] = useState("");
|
||||
const [submitted, setSubmitted] = useState(false);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { desc, eq } from "drizzle-orm";
|
||||
import { asc, desc, eq } from "drizzle-orm";
|
||||
import { auth } from "@/auth";
|
||||
import { db } from "@/db";
|
||||
import { categories, members, promotions } from "@/db/schema";
|
||||
@@ -49,6 +49,12 @@ export default async function EspacePage() {
|
||||
.orderBy(desc(promotions.createdAt));
|
||||
}
|
||||
|
||||
const catRows = await db
|
||||
.select({ label: categories.label })
|
||||
.from(categories)
|
||||
.orderBy(asc(categories.sort));
|
||||
const categoryLabels = catRows.map((c) => c.label);
|
||||
|
||||
function fmtDate(d: Date) {
|
||||
return new Date(d).toLocaleDateString("fr-FR", { day: "numeric", month: "long" });
|
||||
}
|
||||
@@ -74,7 +80,7 @@ export default async function EspacePage() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<MemberSpaceForm memberName={memberName} />
|
||||
<MemberSpaceForm memberName={memberName} categories={categoryLabels} />
|
||||
|
||||
<div style={{ marginTop: 28 }}>
|
||||
<div style={{ fontSize: 12.5, letterSpacing: "0.08em", textTransform: "uppercase", color: "#9a8d72", fontWeight: 700, marginBottom: 12 }}>
|
||||
|
||||
Reference in new issue
Block a user