Skip to content

Commit 0a900ef

Browse files
Merge pull request #479 from CodeForAfrica/ft/missing-blocks-&-bug-fixes
feat(cms): add Missing Blocks and Fix Bugs
2 parents 5f62c5a + 01ac017 commit 0a900ef

File tree

24 files changed

+732
-130
lines changed

24 files changed

+732
-130
lines changed

public/cms/faq.png

95.7 KB
Loading

public/cms/partner-details.png

49.7 KB
Loading

src/app/(frontend)/[entitySlug]/promises/[promiseId]/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ export default async function PromiseDetailPage({
369369
{descriptionText}
370370
</Typography>
371371
) : null}
372-
{originalArticleUrl ? (
372+
{/* {originalArticleUrl ? (
373373
<Button
374374
component="a"
375375
href={originalArticleUrl}
@@ -384,7 +384,7 @@ export default async function PromiseDetailPage({
384384
>
385385
Read the full report
386386
</Button>
387-
) : null}
387+
) : null} */}
388388
</Grid>
389389
<Grid size={{ xs: 12, lg: 4 }}>
390390
{statusDoc ? (

src/blocks/FAQ.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { Block } from "payload";
2+
3+
export const FAQ: Block = {
4+
slug: "faq",
5+
interfaceName: "FAQBlock",
6+
imageURL: "/cms/faq.png",
7+
imageAltText: "FAQ",
8+
labels: {
9+
singular: "FAQS",
10+
plural: "FAQS",
11+
},
12+
fields: [
13+
{
14+
name: "title",
15+
type: "text",
16+
required: true,
17+
},
18+
{
19+
name: "faqs",
20+
type: "array",
21+
required: true,
22+
minRows: 1,
23+
admin: {
24+
components: {
25+
RowLabel: {
26+
path: "@/components/payload/RowLabel#CustomRowLabel",
27+
clientProps: {
28+
fieldToUse: "question",
29+
},
30+
},
31+
},
32+
},
33+
fields: [
34+
{
35+
name: "question",
36+
type: "text",
37+
required: true,
38+
},
39+
{
40+
name: "answer",
41+
type: "richText",
42+
required: true,
43+
},
44+
],
45+
},
46+
],
47+
};

src/blocks/PartnerDetails.tsx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { Block } from "payload";
2+
3+
export const PartnerDetails: Block = {
4+
slug: "partner-details",
5+
imageURL: "/cms/partner-details.png",
6+
imageAltText: "Partner Details",
7+
interfaceName: "PartnerDetailsBlock",
8+
labels: {
9+
singular: {
10+
en: "Partner Details",
11+
fr: "Détails des partenaires",
12+
},
13+
plural: {
14+
en: "Partner Details",
15+
fr: "Détails des partenaires",
16+
},
17+
},
18+
fields: [
19+
{
20+
name: "partners",
21+
type: "relationship",
22+
relationTo: "partners",
23+
hasMany: true,
24+
required: true,
25+
},
26+
],
27+
};

src/blocks/PromiseList.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Block } from "payload";
33
const PromiseList: Block = {
44
slug: "promise-list",
55
imageURL: "/cms/promises-list.png",
6+
interfaceName: "PromiseListBlock",
67
labels: {
78
singular: "Promise List",
89
plural: "Promise Lists",

src/collections/Pages/index.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import { KeyPromises } from "@/blocks/KeyPromises";
99
import { ActNow } from "@/blocks/ActNow";
1010
import { Hero } from "@/blocks/Hero";
1111
import PageHeader from "@/blocks/PageHeader";
12+
import { FAQ } from "@/blocks/FAQ";
13+
import { PartnerDetails } from "@/blocks/PartnerDetails";
1214

1315
export const Pages: CollectionConfig = {
1416
slug: "pages",
@@ -45,13 +47,15 @@ export const Pages: CollectionConfig = {
4547
type: "blocks",
4648
blocks: [
4749
ActNow,
50+
FAQ,
4851
Hero,
49-
PageHeader,
52+
KeyPromises,
53+
LatestPromises,
5054
Newsletter,
55+
PageHeader,
5156
Partners,
52-
LatestPromises,
57+
PartnerDetails,
5358
PromiseList,
54-
KeyPromises,
5559
],
5660
},
5761
],

src/collections/Partners/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { CollectionConfig } from "payload";
2-
import { socialLinks } from "@/fields/socialLinks";
32
import { image } from "@/fields/image";
43
import { link } from "@/fields/link/link";
54

@@ -27,6 +26,11 @@ export const Partners: CollectionConfig = {
2726
type: "text",
2827
required: true,
2928
},
29+
{
30+
name: "description",
31+
type: "richText",
32+
required: true,
33+
},
3034
image({
3135
name: "image",
3236
label: {
@@ -35,7 +39,6 @@ export const Partners: CollectionConfig = {
3539
},
3640
required: true,
3741
}),
38-
socialLinks(),
3942
link({
4043
appearances: false,
4144
overrides: {

src/collections/PoliticalEntities/index.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const PoliticalEntities: CollectionConfig = {
2424
},
2525
defaultColumns: [
2626
"name",
27+
"order",
2728
"image",
2829
"region",
2930
"position",
@@ -53,6 +54,23 @@ export const PoliticalEntities: CollectionConfig = {
5354
},
5455
},
5556
}),
57+
{
58+
name: "order",
59+
type: "number",
60+
index: true,
61+
min: 0,
62+
admin: {
63+
position: "sidebar",
64+
description: {
65+
en: "Lower numbers appear first in listings.",
66+
fr: "Les nombres les plus bas apparaissent en premier dans les listes.",
67+
},
68+
},
69+
label: {
70+
en: "Order",
71+
fr: "Ordre",
72+
},
73+
},
5674
{
5775
name: "region",
5876
type: "text",

src/components/BlockRenderer.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import Promises from "./Promises";
1010
import { TenantList } from "./TenantList";
1111
import { PoliticalEntityList } from "./PoliticalEntityList";
1212
import PageHeader from "./PageHeader";
13+
import PartnerDetails from "./PartnerDetails";
14+
import FAQ from "./FAQ";
1315

1416
type PageBlocks = NonNullable<Page["blocks"]>;
1517
type PageBlock = PageBlocks extends Array<infer T> ? T : never;
@@ -41,6 +43,8 @@ const blockComponents: Record<string, ComponentType<any>> = {
4143
"latest-promises": LatestPromises,
4244
"promise-list": Promises,
4345
"key-promises": KeyPromises,
46+
faq: FAQ,
47+
"partner-details": PartnerDetails,
4448
"tenant-selection": TenantList,
4549
"entity-selection": PoliticalEntityList,
4650
"page-header": PageHeader,

0 commit comments

Comments
 (0)