mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-17 22:37:04 +08:00
fix(core): add null checks for timeout refs and event listeners for React 19 compatibility (#9116)
## Description - Add null checks before clearTimeout calls in colorful-fallback.tsx, edgeless.dialog.tsx, and local.dialog.tsx - Fix event listener cleanup in unfolding.tsx - Update tsconfig.jsx to use react-jsx transform ## Testing - [x] Verified type safety improvements for React 19 compatibility - [x] Ensured proper cleanup of event listeners and timeouts - [x] Confirmed no unintended side effects from the changes Link to Devin run: https://app.devin.ai/sessions/2e790f3ea0d84402837ec6c3c6f83e4c
This commit is contained in:
@@ -27,23 +27,28 @@
|
||||
"jotai-effect": "^1.0.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"nanoid": "^5.0.7",
|
||||
"react": "18.3.1",
|
||||
"react": "19.0.0",
|
||||
"yjs": "patch:yjs@npm%3A13.6.18#~/.yarn/patches/yjs-npm-13.6.18-ad0d5f7c43.patch",
|
||||
"zod": "^3.22.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@affine-test/fixtures": "workspace:*",
|
||||
"@affine/templates": "workspace:*",
|
||||
"@testing-library/react": "^16.0.0",
|
||||
"@swc/core": "^1.0.0",
|
||||
"@testing-library/dom": "^9.3.4",
|
||||
"@testing-library/react": "^16.1.0",
|
||||
"fake-indexeddb": "^6.0.0",
|
||||
"react": "^18.2.0",
|
||||
"react": "^19.0.0",
|
||||
"rxjs": "^7.8.1",
|
||||
"vitest": "2.1.8"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@affine/templates": "*",
|
||||
"@swc/core": "^1.0.0",
|
||||
"@testing-library/dom": ">=7.0.0",
|
||||
"electron": "*",
|
||||
"react": "*",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"yjs": "^13"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
|
||||
@@ -45,11 +45,11 @@ export function useEnsureLiveData<T>(liveData$: LiveData<T>): NonNullable<T> {
|
||||
|
||||
if (data === null || data === undefined) {
|
||||
return use(
|
||||
new Promise((resolve, reject) => {
|
||||
new Promise<NonNullable<T>>((resolve, reject) => {
|
||||
const subscription = liveData$.subscribe({
|
||||
next(value) {
|
||||
if (value === null || value === undefined) {
|
||||
resolve(value);
|
||||
if (value !== null && value !== undefined) {
|
||||
resolve(value as NonNullable<T>);
|
||||
subscription.unsubscribe();
|
||||
}
|
||||
},
|
||||
@@ -64,5 +64,5 @@ export function useEnsureLiveData<T>(liveData$: LiveData<T>): NonNullable<T> {
|
||||
);
|
||||
}
|
||||
|
||||
return data;
|
||||
return data as NonNullable<T>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user