Skip to content

Commit b99d5a3

Browse files
Merge pull request #707 from transitive-bullshit/feature/upkeep-june-2025
2 parents abc6fd9 + 92f8f69 commit b99d5a3

36 files changed

+2167
-2022
lines changed

.github/workflows/build.yml

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,29 @@
11
name: CI
22

3-
on: [push, pull_request]
3+
on: [push]
44

55
jobs:
66
test:
77
name: Test Node.js ${{ matrix.node-version }}
88
runs-on: ubuntu-latest
9+
910
strategy:
1011
fail-fast: true
1112
matrix:
1213
node-version:
13-
- 18
14+
- 20
1415
- 22
1516

1617
steps:
17-
- name: Checkout
18-
uses: actions/checkout@v4
19-
20-
- name: Install pnpm
21-
uses: pnpm/action-setup@v3
22-
id: pnpm-install
23-
with:
24-
version: 9.12.2
25-
run_install: false
26-
27-
- name: Install Node.js
28-
uses: actions/setup-node@v4
18+
- uses: actions/checkout@v4
19+
- uses: pnpm/action-setup@v4
20+
- uses: actions/setup-node@v4
2921
with:
3022
node-version: ${{ matrix.node-version }}
3123
cache: 'pnpm'
3224

33-
- name: Install dependencies
34-
run: pnpm install --frozen-lockfile --strict-peer-dependencies
35-
36-
- name: Run test
37-
run: pnpm test
25+
- run: pnpm install --frozen-lockfile --strict-peer-dependencies
26+
- run: pnpm test
3827

3928
# TODO Enable those lines below if you use a Redis cache, you'll also need to configure GitHub Repository Secrets
4029
# env:

.prettierignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,3 @@ dist/
44
node_modules/
55
.next/
66
.vercel/
7-
8-
.demo/
9-
.renderer/

.prettierrc

Lines changed: 0 additions & 11 deletions
This file was deleted.

components/Footer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export function FooterImpl() {
2222
const currentYear = new Date().getFullYear()
2323

2424
const onToggleDarkMode = React.useCallback(
25-
(e) => {
25+
(e: any) => {
2626
e.preventDefault()
2727
toggleDarkMode()
2828
},

components/NotionPage.tsx

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,36 +39,67 @@ const Code = dynamic(() =>
3939
import('react-notion-x/build/third-party/code').then(async (m) => {
4040
// add / remove any prism syntaxes here
4141
await Promise.allSettled([
42+
// @ts-expect-error Ignore prisma types
4243
import('prismjs/components/prism-markup-templating.js'),
44+
// @ts-expect-error Ignore prisma types
4345
import('prismjs/components/prism-markup.js'),
46+
// @ts-expect-error Ignore prisma types
4447
import('prismjs/components/prism-bash.js'),
48+
// @ts-expect-error Ignore prisma types
4549
import('prismjs/components/prism-c.js'),
50+
// @ts-expect-error Ignore prisma types
4651
import('prismjs/components/prism-cpp.js'),
52+
// @ts-expect-error Ignore prisma types
4753
import('prismjs/components/prism-csharp.js'),
54+
// @ts-expect-error Ignore prisma types
4855
import('prismjs/components/prism-docker.js'),
56+
// @ts-expect-error Ignore prisma types
4957
import('prismjs/components/prism-java.js'),
58+
// @ts-expect-error Ignore prisma types
5059
import('prismjs/components/prism-js-templates.js'),
60+
// @ts-expect-error Ignore prisma types
5161
import('prismjs/components/prism-coffeescript.js'),
62+
// @ts-expect-error Ignore prisma types
5263
import('prismjs/components/prism-diff.js'),
64+
// @ts-expect-error Ignore prisma types
5365
import('prismjs/components/prism-git.js'),
66+
// @ts-expect-error Ignore prisma types
5467
import('prismjs/components/prism-go.js'),
68+
// @ts-expect-error Ignore prisma types
5569
import('prismjs/components/prism-graphql.js'),
70+
// @ts-expect-error Ignore prisma types
5671
import('prismjs/components/prism-handlebars.js'),
72+
// @ts-expect-error Ignore prisma types
5773
import('prismjs/components/prism-less.js'),
74+
// @ts-expect-error Ignore prisma types
5875
import('prismjs/components/prism-makefile.js'),
76+
// @ts-expect-error Ignore prisma types
5977
import('prismjs/components/prism-markdown.js'),
78+
// @ts-expect-error Ignore prisma types
6079
import('prismjs/components/prism-objectivec.js'),
80+
// @ts-expect-error Ignore prisma types
6181
import('prismjs/components/prism-ocaml.js'),
82+
// @ts-expect-error Ignore prisma types
6283
import('prismjs/components/prism-python.js'),
84+
// @ts-expect-error Ignore prisma types
6385
import('prismjs/components/prism-reason.js'),
86+
// @ts-expect-error Ignore prisma types
6487
import('prismjs/components/prism-rust.js'),
88+
// @ts-expect-error Ignore prisma types
6589
import('prismjs/components/prism-sass.js'),
90+
// @ts-expect-error Ignore prisma types
6691
import('prismjs/components/prism-scss.js'),
92+
// @ts-expect-error Ignore prisma types
6793
import('prismjs/components/prism-solidity.js'),
94+
// @ts-expect-error Ignore prisma types
6895
import('prismjs/components/prism-sql.js'),
96+
// @ts-expect-error Ignore prisma types
6997
import('prismjs/components/prism-stylus.js'),
98+
// @ts-expect-error Ignore prisma types
7099
import('prismjs/components/prism-swift.js'),
100+
// @ts-expect-error Ignore prisma types
71101
import('prismjs/components/prism-wasm.js'),
102+
// @ts-expect-error Ignore prisma types
72103
import('prismjs/components/prism-yaml.js')
73104
])
74105
return m.Code
@@ -112,7 +143,7 @@ function Tweet({ id }: { id: string }) {
112143
}
113144

114145
const propertyLastEditedTimeValue = (
115-
{ block, pageHeader },
146+
{ block, pageHeader }: any,
116147
defaultFn: () => React.ReactNode
117148
) => {
118149
if (pageHeader && block?.last_edited_time) {
@@ -125,7 +156,7 @@ const propertyLastEditedTimeValue = (
125156
}
126157

127158
const propertyDateValue = (
128-
{ data, schema, pageHeader },
159+
{ data, schema, pageHeader }: any,
129160
defaultFn: () => React.ReactNode
130161
) => {
131162
if (pageHeader && schema?.name?.toLowerCase() === 'published') {
@@ -142,7 +173,7 @@ const propertyDateValue = (
142173
}
143174

144175
const propertyTextValue = (
145-
{ schema, pageHeader },
176+
{ schema, pageHeader }: any,
146177
defaultFn: () => React.ReactNode
147178
) => {
148179
if (pageHeader && schema?.name?.toLowerCase() === 'author') {
@@ -189,11 +220,11 @@ export function NotionPage({
189220
if (lite) params.lite = lite
190221

191222
const searchParams = new URLSearchParams(params)
192-
return mapPageUrl(site, recordMap, searchParams)
223+
return site ? mapPageUrl(site, recordMap!, searchParams) : undefined
193224
}, [site, recordMap, lite])
194225

195226
const keys = Object.keys(recordMap?.block || {})
196-
const block = recordMap?.block?.[keys[0]]?.value
227+
const block = recordMap?.block?.[keys[0]!]?.value
197228

198229
// const isRootPage =
199230
// parsePageId(block?.id) === parsePageId(site?.rootNotionPageId)
@@ -205,7 +236,11 @@ export function NotionPage({
205236

206237
const pageAside = React.useMemo(
207238
() => (
208-
<PageAside block={block} recordMap={recordMap} isBlogPost={isBlogPost} />
239+
<PageAside
240+
block={block!}
241+
recordMap={recordMap!}
242+
isBlogPost={isBlogPost}
243+
/>
209244
),
210245
[block, recordMap, isBlogPost]
211246
)
@@ -238,8 +273,9 @@ export function NotionPage({
238273
g.block = block
239274
}
240275

241-
const canonicalPageUrl =
242-
!config.isDev && getCanonicalPageUrl(site, recordMap)(pageId)
276+
const canonicalPageUrl = config.isDev
277+
? undefined
278+
: getCanonicalPageUrl(site, recordMap)(pageId)
243279

244280
const socialImage = mapImageUrl(
245281
getPageProperty<string>('Social Image', block, recordMap) ||
@@ -286,7 +322,7 @@ export function NotionPage({
286322
defaultPageCoverPosition={config.defaultPageCoverPosition}
287323
mapPageUrl={siteMapPageUrl}
288324
mapImageUrl={mapImageUrl}
289-
searchNotion={config.isSearchEnabled ? searchNotion : null}
325+
searchNotion={config.isSearchEnabled ? searchNotion : undefined}
290326
pageAside={pageAside}
291327
footer={footer}
292328
/>

components/NotionPageHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export function NotionPageHeader({
5151
<div className='notion-nav-header-rhs breadcrumbs'>
5252
{navigationLinks
5353
?.map((link, index) => {
54-
if (!link.pageId && !link.url) {
54+
if (!link?.pageId && !link?.url) {
5555
return null
5656
}
5757

components/styles.module.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
line-height: 1.5;
2020
color: rgb(55, 53, 47);
2121
caret-color: rgb(55, 53, 47);
22-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,
22+
font-family:
23+
-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica,
2324
'Apple Color Emoji', Arial, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol';
2425
background-color: var(--bg-color);
2526
}

eslint.config.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { config } from '@fisch0920/config/eslint'
2+
3+
export default [
4+
...config,
5+
{
6+
files: ['**/*.ts', '**/*.tsx'],
7+
rules: {
8+
'react/prop-types': 'off',
9+
'unicorn/no-array-reduce': 'off',
10+
'unicorn/filename-case': 'off',
11+
'unicorn/prefer-global-this': 'off',
12+
'no-process-env': 'off',
13+
'array-callback-return': 'off',
14+
'jsx-a11y/click-events-have-key-events': 'off',
15+
'jsx-a11y/no-static-element-interactions': 'off',
16+
'jsx-a11y/media-has-caption': 'off',
17+
'jsx-a11y/interactive-supports-focus': 'off',
18+
'jsx-a11y/anchor-is-valid': 'off',
19+
'@typescript-eslint/naming-convention': 'off'
20+
}
21+
}
22+
]

lib/acl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export async function pageAcl({
44
site,
55
recordMap,
66
pageId
7-
}: PageProps): Promise<PageProps> {
7+
}: PageProps): Promise<PageProps | undefined> {
88
if (!site) {
99
return {
1010
error: {

0 commit comments

Comments
 (0)