Skip to content

Commit 05bf52a

Browse files
authored
fix(templates): website bug fixes for slug generation and form builder and adds support for strictNullChecks: true (#7877)
1 parent fed7f2f commit 05bf52a

File tree

32 files changed

+10391
-132
lines changed

32 files changed

+10391
-132
lines changed

templates/website/package.json

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
"start": "cross-env NODE_OPTIONS=--no-deprecation next start"
1919
},
2020
"dependencies": {
21-
"@payloadcms/db-mongodb": "3.0.0-beta.84",
22-
"@payloadcms/live-preview-react": "3.0.0-beta.84",
23-
"@payloadcms/next": "3.0.0-beta.84",
24-
"@payloadcms/plugin-cloud": "3.0.0-beta.84",
25-
"@payloadcms/plugin-form-builder": "3.0.0-beta.84",
26-
"@payloadcms/plugin-nested-docs": "3.0.0-beta.84",
27-
"@payloadcms/plugin-redirects": "3.0.0-beta.84",
28-
"@payloadcms/plugin-seo": "3.0.0-beta.84",
29-
"@payloadcms/richtext-lexical": "3.0.0-beta.84",
30-
"@payloadcms/ui": "3.0.0-beta.84",
21+
"@payloadcms/db-mongodb": "3.0.0-beta.91",
22+
"@payloadcms/live-preview-react": "3.0.0-beta.91",
23+
"@payloadcms/next": "3.0.0-beta.91",
24+
"@payloadcms/plugin-cloud": "3.0.0-beta.91",
25+
"@payloadcms/plugin-form-builder": "3.0.0-beta.91",
26+
"@payloadcms/plugin-nested-docs": "3.0.0-beta.91",
27+
"@payloadcms/plugin-redirects": "3.0.0-beta.91",
28+
"@payloadcms/plugin-seo": "3.0.0-beta.91",
29+
"@payloadcms/richtext-lexical": "3.0.0-beta.91",
30+
"@payloadcms/ui": "3.0.0-beta.91",
3131
"@radix-ui/react-checkbox": "^1.0.4",
3232
"@radix-ui/react-label": "^2.0.2",
3333
"@radix-ui/react-select": "^2.0.0",
@@ -41,7 +41,7 @@
4141
"lexical": "0.17.0",
4242
"lucide-react": "^0.378.0",
4343
"next": "15.0.0-canary.104",
44-
"payload": "3.0.0-beta.84",
44+
"payload": "3.0.0-beta.91",
4545
"payload-admin-bar": "^1.0.6",
4646
"prism-react-renderer": "^2.3.1",
4747
"react": "19.0.0-rc-06d0b89e-20240801",
@@ -56,6 +56,7 @@
5656
"@payloadcms/eslint-config": "^1.1.1",
5757
"@tailwindcss/typography": "^0.5.13",
5858
"@types/escape-html": "^1.0.2",
59+
"@types/jsonwebtoken": "^9.0.6",
5960
"@types/node": "18.11.3",
6061
"@types/react": "npm:types-react@19.0.0-rc.0",
6162
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.0",

templates/website/pnpm-lock.yaml

Lines changed: 10230 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/website/src/app/(frontend)/posts/[slug]/page.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,22 @@ export default async function Post({ params: { slug = '' } }) {
5050
/>
5151
</div>
5252

53-
<RelatedPosts
54-
className="mt-12"
55-
docs={post.relatedPosts.filter((post) => typeof post === 'object')}
56-
/>
53+
{post.relatedPosts && post.relatedPosts.length > 0 && (
54+
<RelatedPosts
55+
className="mt-12"
56+
docs={post.relatedPosts.filter((post) => typeof post === 'object')}
57+
/>
58+
)}
5759
</div>
5860
</article>
5961
)
6062
}
6163

62-
export async function generateMetadata({ params: { slug } }): Promise<Metadata> {
64+
export async function generateMetadata({
65+
params: { slug },
66+
}: {
67+
params: { slug: string }
68+
}): Promise<Metadata> {
6369
const post = await queryPostBySlug({ slug })
6470

6571
return generateMeta({ doc: post })

templates/website/src/app/(frontend)/posts/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ export default async function Page() {
3939
<CollectionArchive posts={posts.docs} />
4040

4141
<div className="container">
42-
{posts.totalPages > 1 && <Pagination page={posts.page} totalPages={posts.totalPages} />}
42+
{posts.totalPages > 1 && posts.page && (
43+
<Pagination page={posts.page} totalPages={posts.totalPages} />
44+
)}
4345
</div>
4446
</div>
4547
)

templates/website/src/app/(frontend)/posts/page/[pageNumber]/page.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ export default async function Page({ params: { pageNumber = 2 } }) {
4040
<CollectionArchive posts={posts.docs} />
4141

4242
<div className="container">
43-
{posts.totalPages > 1 && <Pagination page={posts.page} totalPages={posts.totalPages} />}
43+
{posts.totalPages > 1 && posts.page && (
44+
<Pagination page={posts.page} totalPages={posts.totalPages} />
45+
)}
4446
</div>
4547
</div>
4648
)
@@ -60,7 +62,7 @@ export async function generateStaticParams() {
6062
limit: 10,
6163
})
6264

63-
const pages = []
65+
const pages: number[] = []
6466

6567
for (let i = 1; i <= posts.totalPages; i++) {
6668
pages.push(i)

templates/website/src/app/(payload)/admin/importMap.js

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,23 @@ import { default as default_17 } from 'src/payload/components/BeforeDashboard'
1919
import { default as default_18 } from 'src/payload/components/BeforeLogin'
2020

2121
export const importMap = {
22-
'@payloadcms/richtext-lexical/client#RichTextCell': RichTextCell_0,
23-
'@payloadcms/richtext-lexical/client#RichTextField': RichTextField_1,
24-
'@payloadcms/richtext-lexical/generateComponentMap#getGenerateComponentMap':
25-
getGenerateComponentMap_2,
26-
'@payloadcms/richtext-lexical/client#InlineToolbarFeatureClient': InlineToolbarFeatureClient_3,
27-
'@payloadcms/richtext-lexical/client#FixedToolbarFeatureClient': FixedToolbarFeatureClient_4,
28-
'@payloadcms/richtext-lexical/client#HeadingFeatureClient': HeadingFeatureClient_5,
29-
'@payloadcms/richtext-lexical/client#UnderlineFeatureClient': UnderlineFeatureClient_6,
30-
'@payloadcms/richtext-lexical/client#BoldFeatureClient': BoldFeatureClient_7,
31-
'@payloadcms/richtext-lexical/client#ItalicFeatureClient': ItalicFeatureClient_8,
32-
'@payloadcms/richtext-lexical/client#LinkFeatureClient': LinkFeatureClient_9,
33-
'@payloadcms/plugin-seo/client#OverviewComponent': OverviewComponent_10,
34-
'@payloadcms/plugin-seo/client#MetaTitleComponent': MetaTitleComponent_11,
35-
'@payloadcms/plugin-seo/client#MetaImageComponent': MetaImageComponent_12,
36-
'@payloadcms/plugin-seo/client#MetaDescriptionComponent': MetaDescriptionComponent_13,
37-
'@payloadcms/plugin-seo/client#PreviewComponent': PreviewComponent_14,
38-
'@payloadcms/richtext-lexical/client#HorizontalRuleFeatureClient': HorizontalRuleFeatureClient_15,
39-
'@payloadcms/richtext-lexical/client#BlocksFeatureClient': BlocksFeatureClient_16,
40-
'/payload/components/BeforeDashboard#default': default_17,
41-
'/payload/components/BeforeLogin#default': default_18,
22+
"@payloadcms/richtext-lexical/client#RichTextCell": RichTextCell_0,
23+
"@payloadcms/richtext-lexical/client#RichTextField": RichTextField_1,
24+
"@payloadcms/richtext-lexical/generateComponentMap#getGenerateComponentMap": getGenerateComponentMap_2,
25+
"@payloadcms/richtext-lexical/client#InlineToolbarFeatureClient": InlineToolbarFeatureClient_3,
26+
"@payloadcms/richtext-lexical/client#FixedToolbarFeatureClient": FixedToolbarFeatureClient_4,
27+
"@payloadcms/richtext-lexical/client#HeadingFeatureClient": HeadingFeatureClient_5,
28+
"@payloadcms/richtext-lexical/client#UnderlineFeatureClient": UnderlineFeatureClient_6,
29+
"@payloadcms/richtext-lexical/client#BoldFeatureClient": BoldFeatureClient_7,
30+
"@payloadcms/richtext-lexical/client#ItalicFeatureClient": ItalicFeatureClient_8,
31+
"@payloadcms/richtext-lexical/client#LinkFeatureClient": LinkFeatureClient_9,
32+
"@payloadcms/plugin-seo/client#OverviewComponent": OverviewComponent_10,
33+
"@payloadcms/plugin-seo/client#MetaTitleComponent": MetaTitleComponent_11,
34+
"@payloadcms/plugin-seo/client#MetaImageComponent": MetaImageComponent_12,
35+
"@payloadcms/plugin-seo/client#MetaDescriptionComponent": MetaDescriptionComponent_13,
36+
"@payloadcms/plugin-seo/client#PreviewComponent": PreviewComponent_14,
37+
"@payloadcms/richtext-lexical/client#HorizontalRuleFeatureClient": HorizontalRuleFeatureClient_15,
38+
"@payloadcms/richtext-lexical/client#BlocksFeatureClient": BlocksFeatureClient_16,
39+
"/payload/components/BeforeDashboard#default": default_17,
40+
"/payload/components/BeforeLogin#default": default_18
4241
}

templates/website/src/app/blocks/ArchiveBlock/index.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@ export const ArchiveBlock: React.FC<
1414
id?: string
1515
}
1616
> = async (props) => {
17-
const { id, categories, introContent, limit = 3, populateBy, selectedDocs } = props
17+
const { id, categories, introContent, limit: limitFromProps, populateBy, selectedDocs } = props
18+
19+
const limit = limitFromProps || 3
1820

1921
let posts: Post[] = []
2022

2123
if (populateBy === 'collection') {
2224
const payload = await getPayloadHMR({ config: configPromise })
2325

24-
const flattenedCategories = categories.map((category) => {
26+
const flattenedCategories = categories?.map((category) => {
2527
if (typeof category === 'object') return category.id
2628
else return category
2729
})
@@ -43,9 +45,13 @@ export const ArchiveBlock: React.FC<
4345

4446
posts = fetchedPosts.docs
4547
} else {
46-
posts = selectedDocs.map((post) => {
47-
if (typeof post.value === 'object') return post.value
48-
})
48+
if (selectedDocs?.length) {
49+
const filteredSelectedPosts = selectedDocs.map((post) => {
50+
if (typeof post.value === 'object') return post.value
51+
}) as Post[]
52+
53+
posts = filteredSelectedPosts
54+
}
4955
}
5056

5157
return (

templates/website/src/app/blocks/CallToAction/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const CallToActionBlock: React.FC<
1616
<div className="container">
1717
<div className="bg-card rounded border-border border p-4 flex flex-col gap-8 md:flex-row md:justify-between md:items-center">
1818
<div className="max-w-[48rem] flex items-center">
19-
<RichText className="" content={richText} enableGutter={false} />
19+
{richText && <RichText className="mb-0" content={richText} enableGutter={false} />}
2020
</div>
2121
<div className="flex flex-col gap-8">
2222
{(links || []).map(({ link }, i) => {

templates/website/src/app/blocks/Code/Code.client.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ type Props = {
77
language?: string
88
}
99

10-
export const Code: React.FC<Props> = ({ code, language }) => {
10+
export const Code: React.FC<Props> = ({ code, language = '' }) => {
1111
return (
1212
<Highlight code={code} language={language} theme={themes.vsDark}>
1313
{({ getLineProps, getTokenProps, tokens }) => (

templates/website/src/app/blocks/Content/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,13 @@ export const ContentBlock: React.FC<
3232

3333
return (
3434
<div
35-
className={cn(`col-span-4 lg:col-span-${colsSpanClasses[size]}`, {
35+
className={cn(`col-span-4 lg:col-span-${colsSpanClasses[size!]}`, {
3636
'md:col-span-2': size !== 'full',
3737
})}
3838
key={index}
3939
>
40-
<RichText content={richText} enableGutter={false} />
40+
{richText && <RichText content={richText} enableGutter={false} />}
41+
4142
{enableLink && <CMSLink {...link} />}
4243
</div>
4344
)

0 commit comments

Comments
 (0)