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:
devin-ai-integration
2024-12-12 09:43:42 +00:00
parent dd39d049fe
commit e100d252b2
39 changed files with 496 additions and 368 deletions

View File

@@ -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>;
}