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

@@ -1,6 +1,6 @@
import { DualLinkIcon } from '@blocksuite/icons/rc';
import { cssVarV2 } from '@toeverything/theme/v2';
import type { ReactElement } from 'react';
import type { ReactElement, SVGAttributes } from 'react';
import type { To } from 'react-router-dom';
import { MenuLinkItem } from './index';
@@ -28,7 +28,7 @@ export const ExternalMenuLinkItem = ({
label,
}: {
href: string;
icon: ReactElement;
icon: ReactElement<SVGAttributes<SVGElement>>;
label: string;
}) => {
return (

View File

@@ -1,13 +1,13 @@
import { WorkbenchLink } from '@affine/core/modules/workbench';
import { ArrowDownSmallIcon } from '@blocksuite/icons/rc';
import clsx from 'clsx';
import React from 'react';
import React, { type SVGAttributes } from 'react';
import type { To } from 'react-router-dom';
import * as styles from './index.css';
export interface MenuItemProps extends React.HTMLAttributes<HTMLDivElement> {
icon?: React.ReactElement;
icon?: React.ReactElement<SVGAttributes<SVGElement>>;
active?: boolean;
disabled?: boolean;
// true, false, undefined. undefined means no collapse