diff --git a/backend/api/cms/page/blocks/dynamic_content_display_section.py b/backend/api/cms/page/blocks/dynamic_content_display_section.py
index 072803a2a9..e989149164 100644
--- a/backend/api/cms/page/blocks/dynamic_content_display_section.py
+++ b/backend/api/cms/page/blocks/dynamic_content_display_section.py
@@ -9,6 +9,7 @@ class DynamicContentDisplaySectionSource(enum.Enum):
speakers = "speakers"
keynoters = "keynoters"
proposals = "proposals"
+ local_communities = "local_communities"
@register_page_block()
diff --git a/backend/cms/components/page/blocks/dynamic_content_display_section.py b/backend/cms/components/page/blocks/dynamic_content_display_section.py
index fc87d47799..27a9945aeb 100644
--- a/backend/cms/components/page/blocks/dynamic_content_display_section.py
+++ b/backend/cms/components/page/blocks/dynamic_content_display_section.py
@@ -7,5 +7,6 @@ class DynamicContentDisplaySection(blocks.StructBlock):
("speakers", "Speakers"),
("keynoters", "Keynoters"),
("proposals", "Proposals"),
+ ("local_communities", "Local Communities"),
],
)
diff --git a/frontend/src/components/blocks/dynamic-content-display-section/index.tsx b/frontend/src/components/blocks/dynamic-content-display-section/index.tsx
index 37f9bb3fa1..4187bf5ac4 100644
--- a/frontend/src/components/blocks/dynamic-content-display-section/index.tsx
+++ b/frontend/src/components/blocks/dynamic-content-display-section/index.tsx
@@ -5,6 +5,7 @@ import {
queryKeynotesSection,
} from "~/types";
import { KeynotersContent } from "./keynoters-content";
+import { LocalCommunitiesContent } from "./local-communities-content";
import { ProposalsContent } from "./proposals-content";
import { SpeakersContent } from "./speakers-content";
@@ -24,6 +25,9 @@ export const DynamicContentDisplaySection = ({
{source === DynamicContentDisplaySectionSource.Proposals && (
)}
+ {source === DynamicContentDisplaySectionSource.LocalCommunities && (
+
+ )}
);
};
@@ -56,6 +60,9 @@ DynamicContentDisplaySection.dataFetching = (client, language, block) => {
}),
];
}
+ case DynamicContentDisplaySectionSource.LocalCommunities: {
+ return [];
+ }
}
return [];
diff --git a/frontend/src/components/blocks/dynamic-content-display-section/local-communities-content.tsx b/frontend/src/components/blocks/dynamic-content-display-section/local-communities-content.tsx
new file mode 100644
index 0000000000..339974e619
--- /dev/null
+++ b/frontend/src/components/blocks/dynamic-content-display-section/local-communities-content.tsx
@@ -0,0 +1,85 @@
+import {
+ CardPart,
+ Grid,
+ Heading,
+ MultiplePartsCard,
+ MultiplePartsCardCollection,
+ SocialLinks,
+ Spacer,
+ Text,
+ VerticalStack,
+} from "@python-italia/pycon-styleguide";
+import { Section } from "@python-italia/pycon-styleguide";
+
+export const LocalCommunitiesContent = () => {
+ return (
+
+
+ {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((item) => (
+
+
+
+
+
+
+ Python Bari
+
+
+
+
+
+
+
+ Python Bari è una community di Python che si occupa di
+ sviluppare software per la città di Bari.
+
+
+
+
+
+
+
+
+ ))}
+
+
+ );
+};
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
index 4dcdb1cd32..0e481c04b3 100644
--- a/frontend/tsconfig.json
+++ b/frontend/tsconfig.json
@@ -13,7 +13,7 @@
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
- "jsx": "preserve",
+ "jsx": "react-jsx",
"baseUrl": ".",
"paths": {
"~/*": ["./src/*"],