Skip to content

Commit dbf7c3d

Browse files
committed
fix(app): clean moderation table and fix combobox
1 parent 34dd692 commit dbf7c3d

File tree

7 files changed

+18
-24
lines changed

7 files changed

+18
-24
lines changed

api/src/controllers/mission.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const searchSchema = zod.object({
4444
});
4545

4646
const autocompleteSchema = zod.object({
47-
publishers: zod.array(zod.string()).optional(),
47+
publishers: zod.union([zod.string(), zod.array(zod.string())]).optional(),
4848
field: zod.string(),
4949
search: zod.string(),
5050
});
@@ -155,7 +155,7 @@ router.get("/autocomplete", passport.authenticate("user", { session: false }), a
155155
}
156156

157157
const missions = await missionService.findMissions({
158-
publisherIds: query.data.publishers ?? [],
158+
publisherIds: Array.isArray(query.data.publishers) ? query.data.publishers : query.data.publishers ? [query.data.publishers] : [],
159159
limit: 1000,
160160
skip: 0,
161161
domain: undefined,

app/src/components/combobox/MissionCombobox.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// import Combobox from "@/components/combobox/index";
21
import Combobox from "@/components/combobox/DesignSystem";
32
import api from "@/services/api";
43
import { captureError } from "@/services/error";

app/src/scenes/broadcast/moderation/components/Constants.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export const STATUS_COLORS = {
3030
PENDING: "var(--color-warning)",
3131
ONGOING: "var(--color-warning)",
3232
ACCEPTED: "var(--color-success)",
33-
REFUSED: "var(--color-red-marianne)",
33+
REFUSED: "var(--color-error)",
3434
};
3535

3636
export const STATUS_GRAPH_COLORS = {

app/src/scenes/broadcast/moderation/components/Filters.jsx

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,7 @@ const Filters = ({ filters, onChange, reload }) => {
7979
<PublisherCombobox
8080
id="publisherIds"
8181
values={filters.publisherIds}
82-
onChange={(publisherIds) => {
83-
console.log("publisherIds", publisherIds);
84-
onChange({ ...filters, publisherIds });
85-
}}
82+
onChange={(publisherIds) => onChange({ ...filters, publisherIds })}
8683
placeholder="Annonceur"
8784
options={options.publishers}
8885
/>
@@ -96,10 +93,10 @@ const Filters = ({ filters, onChange, reload }) => {
9693

9794
<MissionCombobox
9895
id="organization"
99-
values={filters.organizations}
100-
onChange={(organizations) => onChange({ ...filters, organizations })}
96+
values={filters.organizationNames}
97+
onChange={(organizationNames) => onChange({ ...filters, organizationNames })}
10198
placeholder="Organisations"
102-
filters={`${options.publishers.map((p) => `publishers[]=${p.key}`).join("&")}&field=organizationName`}
99+
filters={`${filters.publisherIds?.length ? filters.publisherIds.map((p) => `publishers=${p}`).join("&") : options.publishers.map((p) => `publishers=${p.key}`).join("&")}&field=organizationName`}
103100
/>
104101

105102
<Select
@@ -126,7 +123,7 @@ const Filters = ({ filters, onChange, reload }) => {
126123
values={filters.cities}
127124
onChange={(cities) => onChange({ ...filters, cities })}
128125
placeholder="Villes"
129-
filters={`${options.publishers.map((p) => `publishers[]=${p.key}`).join("&")}&field=city`}
126+
filters={`${filters.publisherIds?.length ? filters.publisherIds.map((p) => `publishers=${p}`).join("&") : options.publishers.map((p) => `publishers=${p.key}`).join("&")}&field=city`}
130127
/>
131128
<Select
132129
options={options.activities.map((e) => ({ value: e.key === "" ? "none" : e.key, label: e.key === "" ? "Non renseignée" : e.key, count: e.doc_count }))}
@@ -140,7 +137,7 @@ const Filters = ({ filters, onChange, reload }) => {
140137
<div className="flex flex-wrap gap-3">
141138
<Badge label="Statut" value={STATUS[filters.status]} onDelete={() => onChange({ ...filters, status: "" })} />
142139
<Badge label="Annonceur" value={options.publishers.find((p) => p.key === filters.publisherId)?.label} onDelete={() => onChange({ ...filters, publisherId: "" })} />
143-
<Badge label="Organisation" value={filters.organizationName} onDelete={() => onChange({ ...filters, organizationName: "" })} />
140+
<Badge label="Organisation" value={filters.organizationNames.join(", ")} onDelete={() => onChange({ ...filters, organizationNames: [] })} />
144141
<Badge
145142
label="Département"
146143
value={filters.department === "none" ? "Non renseigné" : DEPARTMENT_LABELS[filters.department]}

app/src/scenes/broadcast/moderation/components/MissionItem.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { toast } from "@/services/toast";
22
import { Menu, Transition } from "@headlessui/react";
33
import { Fragment, useEffect, useState } from "react";
44
import { BsDot } from "react-icons/bs";
5-
import { RiCalendarEventFill, RiCheckboxCircleFill, RiCloseCircleFill, RiMapPin2Fill, RiMoreFill, RiPencilFill, RiTimeLine } from "react-icons/ri";
5+
import { RiCalendarEventFill, RiCheckboxCircleFill, RiCloseCircleFill, RiMapPin2Fill, RiMoreFill, RiTimeLine } from "react-icons/ri";
66
import { useSearchParams } from "react-router-dom";
77

88
import Modal from "@/components/Modal";
@@ -127,8 +127,8 @@ const MissionItem = ({ data, history, selected, onChange, onSelect, onFilter, on
127127
</div>
128128
</td>
129129
<td className="table-cell align-middle">
130-
<div className="flex flex-col justify-center gap-3">
131-
<div className="flex items-center gap-3">
130+
<div className="flex w-full flex-col gap-3">
131+
<div className="flex w-full items-center gap-3">
132132
<select
133133
className="select flex-1 border-b-2 pr-2"
134134
style={{ borderBottomColor: STATUS_COLORS[values.status] }}
@@ -145,10 +145,10 @@ const MissionItem = ({ data, history, selected, onChange, onSelect, onFilter, on
145145
<MissionActionsMenu data={data} onFilter={onFilter} onChange={(v) => onChange({ ...data, ...v })} />
146146
</div>
147147
{values.status === "REFUSED" && (
148-
<select className="select border-error border-b-2" name="motif" value={values.comment} onChange={(e) => handleSubmit({ status: "REFUSED", comment: e.target.value })}>
148+
<select className="select mt-4 w-full border-b-2" name="motif" value={values.comment} onChange={(e) => handleSubmit({ status: "REFUSED", comment: e.target.value })}>
149149
<option value="">Motif de refus</option>
150150
{Object.entries(JVA_MODERATION_COMMENTS_LABELS).map(([key, value]) => (
151-
<option key={key} value={key}>
151+
<option key={key} value={key} className="whitespace-nowrap text-black">
152152
{value}
153153
</option>
154154
))}

app/src/scenes/broadcast/moderation/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ const Moderation = () => {
223223
width: "40%",
224224
},
225225
{ title: "Organisation" },
226-
{ title: "Actions", width: "30%" },
226+
{ title: "Actions", width: "35%" },
227227
]}
228228
total={total}
229229
loading={loading}

app/src/scenes/my-missions/Flux.jsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,14 @@ const Flux = ({ moderated }) => {
174174
values={filters.cities}
175175
onChange={(cities) => setFilters({ ...filters, cities })}
176176
placeholder="Villes"
177-
filters={`publishers[]=${publisher.id}&field=city`}
177+
filters={`publishers=${publisher.id}&field=city`}
178178
/>
179179
<MissionCombobox
180180
id="organization"
181181
values={filters.organizations}
182182
onChange={(organizations) => setFilters({ ...filters, organizations })}
183183
placeholder="Organisations"
184-
filters={`publishers[]=${publisher.id}&field=organizationName`}
184+
filters={`publishers=${publisher.id}&field=organizationName`}
185185
className="w-96"
186186
/>
187187
</div>
@@ -232,9 +232,7 @@ const Flux = ({ moderated }) => {
232232
{item.organizationName && <p className="text-sm">{item.organizationName}</p>}
233233
</td>
234234
<td className="px-4">{item.places}</td>
235-
<td className="px-4">
236-
{item.city}
237-
</td>
235+
<td className="px-4">{item.city}</td>
238236
<td className="px-4">{new Date(item.createdAt).toLocaleDateString("fr")}</td>
239237
<td className="px-6">
240238
<div className="flex items-center gap-1">

0 commit comments

Comments
 (0)