From d31c90e443b0fd28c9d27c161eefe52e0f3003a5 Mon Sep 17 00:00:00 2001 From: Mikael Finstad Date: Mon, 11 Aug 2025 10:06:21 +0200 Subject: [PATCH] Run biome check on main (#5896) this time on main closes #5891 also: fix a11y tabIndex (key event handler) --- biome.json | 1 - .../client/MyCustomProvider.jsx | 1 - examples/react-native-expo/App.js | 2 +- examples/react-native-expo/FileList.js | 1 - examples/react-native-expo/PauseResumeButton.js | 1 - examples/react-native-expo/ProgressBar.js | 1 - examples/react-native-expo/SelectFilesButton.js | 1 - examples/react/src/MediaCapture.tsx | 2 -- examples/react/src/ScreenCapture.tsx | 2 +- examples/react/src/Webcam.tsx | 2 +- examples/transloadit/server.js | 4 ++++ packages/@uppy/audio/src/Audio.tsx | 1 - packages/@uppy/audio/src/AudioSourceSelect.tsx | 2 -- packages/@uppy/audio/src/DiscardButton.tsx | 1 - packages/@uppy/audio/src/PermissionsScreen.tsx | 2 +- packages/@uppy/audio/src/RecordButton.tsx | 1 - packages/@uppy/audio/src/RecordingLength.tsx | 1 - packages/@uppy/audio/src/RecordingScreen.tsx | 1 - packages/@uppy/audio/src/SubmitButton.tsx | 1 - packages/@uppy/components/src/Dropzone.tsx | 4 ++-- packages/@uppy/components/src/FilesGrid.tsx | 2 +- packages/@uppy/components/src/FilesList.tsx | 2 +- packages/@uppy/components/src/ProviderIcon.tsx | 1 - packages/@uppy/components/src/Thumbnail.tsx | 1 - packages/@uppy/components/src/UploadButton.tsx | 1 - packages/@uppy/components/src/hooks/dropzone.ts | 13 +++++++++++++ packages/@uppy/dashboard/src/Dashboard.tsx | 1 - .../@uppy/dashboard/src/components/AddFiles.tsx | 2 +- .../dashboard/src/components/AddFilesPanel.tsx | 1 - .../@uppy/dashboard/src/components/Dashboard.tsx | 1 - .../@uppy/dashboard/src/components/EditorPanel.tsx | 1 - .../dashboard/src/components/FileCard/index.tsx | 1 - .../src/components/FileItem/Buttons/index.tsx | 1 - .../src/components/FileItem/FileInfo/index.tsx | 1 - .../FileItem/FilePreviewAndLink/index.tsx | 1 - .../src/components/FileItem/FileProgress/index.tsx | 2 +- .../src/components/FileItem/MetaErrorMessage.tsx | 2 -- .../@uppy/dashboard/src/components/FileList.tsx | 1 - .../@uppy/dashboard/src/components/FilePreview.tsx | 1 - .../dashboard/src/components/PickerPanelContent.tsx | 1 - .../dashboard/src/components/PickerPanelTopBar.tsx | 1 - packages/@uppy/dashboard/src/components/Slide.tsx | 13 ++++++------- .../@uppy/dashboard/src/utils/getFileTypeIcon.tsx | 2 -- packages/@uppy/drag-drop/src/DragDrop.tsx | 2 +- .../google-drive-picker/src/GoogleDrivePicker.tsx | 1 - .../google-photos-picker/src/GooglePhotosPicker.tsx | 1 - packages/@uppy/image-editor/src/Editor.tsx | 2 +- packages/@uppy/image-editor/src/ImageEditor.tsx | 1 - packages/@uppy/informer/src/FadeIn.tsx | 2 +- packages/@uppy/informer/src/Informer.tsx | 4 ++-- packages/@uppy/progress-bar/src/ProgressBar.tsx | 2 +- packages/@uppy/provider-views/src/Breadcrumbs.tsx | 2 +- packages/@uppy/provider-views/src/Browser.tsx | 2 -- packages/@uppy/provider-views/src/FooterActions.tsx | 1 - .../src/GooglePicker/GooglePickerView.tsx | 1 - .../@uppy/provider-views/src/GooglePicker/icons.tsx | 2 -- .../provider-views/src/Item/components/GridItem.tsx | 2 +- .../provider-views/src/Item/components/ItemIcon.tsx | 2 +- .../provider-views/src/Item/components/ListItem.tsx | 2 +- packages/@uppy/provider-views/src/Item/index.tsx | 2 +- .../provider-views/src/ProviderView/AuthView.tsx | 2 +- .../provider-views/src/ProviderView/Header.tsx | 2 +- .../src/ProviderView/ProviderView.tsx | 2 +- .../@uppy/provider-views/src/ProviderView/User.tsx | 2 +- packages/@uppy/provider-views/src/SearchInput.tsx | 1 - .../src/SearchProviderView/SearchProviderView.tsx | 2 +- .../react/src/headless/UppyContextProvider.tsx | 8 +------- .../@uppy/react/src/headless/generated/Dropzone.tsx | 2 +- .../react/src/headless/generated/FilesGrid.tsx | 2 +- .../react/src/headless/generated/FilesList.tsx | 2 +- .../react/src/headless/generated/ProviderIcon.tsx | 2 +- .../react/src/headless/generated/Thumbnail.tsx | 2 +- .../react/src/headless/generated/UploadButton.tsx | 2 +- packages/@uppy/screen-capture/src/DiscardButton.tsx | 2 +- packages/@uppy/screen-capture/src/RecordButton.tsx | 2 +- .../@uppy/screen-capture/src/RecorderScreen.tsx | 2 +- packages/@uppy/screen-capture/src/ScreenCapture.tsx | 2 +- packages/@uppy/screen-capture/src/ScreenRecIcon.tsx | 2 -- .../@uppy/screen-capture/src/ScreenshotButton.tsx | 2 -- packages/@uppy/screen-capture/src/StopWatch.tsx | 2 +- packages/@uppy/screen-capture/src/StreamStatus.tsx | 2 -- packages/@uppy/screen-capture/src/SubmitButton.tsx | 2 +- packages/@uppy/status-bar/src/Components.tsx | 1 - packages/@uppy/status-bar/src/StatusBar.tsx | 1 - packages/@uppy/status-bar/src/StatusBarUI.tsx | 1 - packages/@uppy/transloadit/src/index.test.js | 4 ---- packages/@uppy/url/src/Url.browser.test.ts | 2 +- packages/@uppy/url/src/UrlUI.tsx | 2 +- packages/@uppy/url/vitest.setup.ts | 2 +- packages/@uppy/webcam/src/CameraIcon.tsx | 2 +- packages/@uppy/webcam/src/CameraScreen.tsx | 7 ++++--- packages/@uppy/webcam/src/DiscardButton.tsx | 1 - packages/@uppy/webcam/src/PermissionsScreen.tsx | 2 +- packages/@uppy/webcam/src/RecordButton.tsx | 1 - packages/@uppy/webcam/src/RecordingLength.tsx | 1 - packages/@uppy/webcam/src/SnapshotButton.tsx | 1 - packages/@uppy/webcam/src/SubmitButton.tsx | 1 - packages/@uppy/webcam/src/VideoSourceSelect.tsx | 2 +- 98 files changed, 72 insertions(+), 124 deletions(-) diff --git a/biome.json b/biome.json index cea956246..5ccb0bae6 100644 --- a/biome.json +++ b/biome.json @@ -47,7 +47,6 @@ "correctness": { "useExhaustiveDependencies": "error", "useHookAtTopLevel": "error", - "noUnusedImports": "off", "noUnusedFunctionParameters": "off", "noUnusedVariables": { "level": "error", diff --git a/examples/companion-custom-provider/client/MyCustomProvider.jsx b/examples/companion-custom-provider/client/MyCustomProvider.jsx index ef7a07ead..52fab29ff 100644 --- a/examples/companion-custom-provider/client/MyCustomProvider.jsx +++ b/examples/companion-custom-provider/client/MyCustomProvider.jsx @@ -3,7 +3,6 @@ import { getAllowedHosts, Provider, tokenStorage } from '@uppy/companion-client' import { UIPlugin } from '@uppy/core' import { ProviderViews } from '@uppy/provider-views' -import { h } from 'preact' const defaultOptions = {} diff --git a/examples/react-native-expo/App.js b/examples/react-native-expo/App.js index 864ad989a..1a2f1b1f9 100644 --- a/examples/react-native-expo/App.js +++ b/examples/react-native-expo/App.js @@ -2,7 +2,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage' import Uppy from '@uppy/core' import FilePicker from '@uppy/react-native' import Tus from '@uppy/tus' -import React, { useCallback, useEffect, useState } from 'react' +import { useCallback, useEffect, useState } from 'react' import { Image, StyleSheet, Text, View } from 'react-native' import FileList from './FileList' import PauseResumeButton from './PauseResumeButton' diff --git a/examples/react-native-expo/FileList.js b/examples/react-native-expo/FileList.js index 8b24dee29..0f4c2d87b 100644 --- a/examples/react-native-expo/FileList.js +++ b/examples/react-native-expo/FileList.js @@ -1,6 +1,5 @@ import getFileTypeIcon from '@uppy/dashboard/lib/utils/getFileTypeIcon.js' import renderStringFromJSX from 'preact-render-to-string' -import React from 'react' import { FlatList, Image, StyleSheet, Text, View } from 'react-native' const fileIcon = require('./assets/file-icon.png') diff --git a/examples/react-native-expo/PauseResumeButton.js b/examples/react-native-expo/PauseResumeButton.js index 8195c28ae..71420e6f9 100644 --- a/examples/react-native-expo/PauseResumeButton.js +++ b/examples/react-native-expo/PauseResumeButton.js @@ -1,4 +1,3 @@ -import React from 'react' import { StyleSheet, Text, TouchableHighlight } from 'react-native' export default function PauseResumeButton({ diff --git a/examples/react-native-expo/ProgressBar.js b/examples/react-native-expo/ProgressBar.js index 636a49228..c8b9512df 100644 --- a/examples/react-native-expo/ProgressBar.js +++ b/examples/react-native-expo/ProgressBar.js @@ -1,4 +1,3 @@ -import React from 'react' import { StyleSheet, Text, View } from 'react-native' const colorGreen = '#0b8600' diff --git a/examples/react-native-expo/SelectFilesButton.js b/examples/react-native-expo/SelectFilesButton.js index 10d7cd229..8c04c6376 100644 --- a/examples/react-native-expo/SelectFilesButton.js +++ b/examples/react-native-expo/SelectFilesButton.js @@ -1,4 +1,3 @@ -import React from 'react' import { StyleSheet, Text, TouchableHighlight } from 'react-native' export default function SelectFiles({ showFilePicker }) { diff --git a/examples/react/src/MediaCapture.tsx b/examples/react/src/MediaCapture.tsx index a4d37dcac..6e9a34286 100644 --- a/examples/react/src/MediaCapture.tsx +++ b/examples/react/src/MediaCapture.tsx @@ -1,5 +1,3 @@ -import React from 'react' - type ButtonProps = { type: 'button' onClick: () => void diff --git a/examples/react/src/ScreenCapture.tsx b/examples/react/src/ScreenCapture.tsx index df6ef7769..019ddf797 100644 --- a/examples/react/src/ScreenCapture.tsx +++ b/examples/react/src/ScreenCapture.tsx @@ -1,5 +1,5 @@ import { useScreenCapture } from '@uppy/react' -import React, { useEffect } from 'react' +import { useEffect } from 'react' import MediaCapture from './MediaCapture.tsx' export interface ScreenCaptureProps { diff --git a/examples/react/src/Webcam.tsx b/examples/react/src/Webcam.tsx index 6c5bf9223..4a35f3c0f 100644 --- a/examples/react/src/Webcam.tsx +++ b/examples/react/src/Webcam.tsx @@ -1,5 +1,5 @@ import { useWebcam } from '@uppy/react' -import React, { useEffect } from 'react' +import { useEffect } from 'react' import MediaCapture from './MediaCapture.tsx' export interface WebcamProps { diff --git a/examples/transloadit/server.js b/examples/transloadit/server.js index e76053323..765301bd5 100755 --- a/examples/transloadit/server.js +++ b/examples/transloadit/server.js @@ -36,6 +36,7 @@ function Footer() { } function FormFields(fields) { + // biome-ignore lint/nursery/noNestedComponentDefinitions: not a react component function Field([name, value]) { if (name === 'transloadit') return '' let isValueJSON = false @@ -75,6 +76,7 @@ function FormFields(fields) { } function UploadsList(uploads) { + // biome-ignore lint/nursery/noNestedComponentDefinitions: not a react component function Upload(upload) { return `
  • ${e(upload.name)}
  • ` } @@ -87,10 +89,12 @@ function UploadsList(uploads) { } function ResultsList(results) { + // biome-ignore lint/nursery/noNestedComponentDefinitions: not a react component function Result(result) { return `
  • ${e(result.name)} View
  • ` } + // biome-ignore lint/nursery/noNestedComponentDefinitions: not a react component function ResultsSection(stepName) { return `

    ${e(stepName)}

    diff --git a/packages/@uppy/audio/src/Audio.tsx b/packages/@uppy/audio/src/Audio.tsx index b94068941..6540ca3d5 100644 --- a/packages/@uppy/audio/src/Audio.tsx +++ b/packages/@uppy/audio/src/Audio.tsx @@ -10,7 +10,6 @@ import { UIPlugin } from '@uppy/core' import getFileTypeExtension from '@uppy/utils/lib/getFileTypeExtension' import type { LocaleStrings } from '@uppy/utils/lib/Translator' -import { h } from 'preact' import packageJson from '../package.json' with { type: 'json' } import locale from './locale.js' import PermissionsScreen from './PermissionsScreen.js' diff --git a/packages/@uppy/audio/src/AudioSourceSelect.tsx b/packages/@uppy/audio/src/AudioSourceSelect.tsx index 09ca09ce1..f9f7f58dd 100644 --- a/packages/@uppy/audio/src/AudioSourceSelect.tsx +++ b/packages/@uppy/audio/src/AudioSourceSelect.tsx @@ -1,5 +1,3 @@ -import { h } from 'preact' - export interface AudioSourceSelectProps { currentDeviceId: string | MediaStreamTrack | null | undefined audioSources: MediaDeviceInfo[] diff --git a/packages/@uppy/audio/src/DiscardButton.tsx b/packages/@uppy/audio/src/DiscardButton.tsx index 5bf832731..239786240 100644 --- a/packages/@uppy/audio/src/DiscardButton.tsx +++ b/packages/@uppy/audio/src/DiscardButton.tsx @@ -1,5 +1,4 @@ import type { I18n } from '@uppy/utils/lib/Translator' -import { h } from 'preact' interface DiscardButtonProps { onDiscard: () => void diff --git a/packages/@uppy/audio/src/PermissionsScreen.tsx b/packages/@uppy/audio/src/PermissionsScreen.tsx index 3501a1f42..c5c0e7208 100644 --- a/packages/@uppy/audio/src/PermissionsScreen.tsx +++ b/packages/@uppy/audio/src/PermissionsScreen.tsx @@ -1,5 +1,5 @@ import type { I18n } from '@uppy/utils/lib/Translator' -import { h } from 'preact' +import type { h } from 'preact' interface PermissionsScreenProps { icon: () => h.JSX.Element | null diff --git a/packages/@uppy/audio/src/RecordButton.tsx b/packages/@uppy/audio/src/RecordButton.tsx index ed169c1fd..d61a0e316 100644 --- a/packages/@uppy/audio/src/RecordButton.tsx +++ b/packages/@uppy/audio/src/RecordButton.tsx @@ -1,5 +1,4 @@ import type { I18n } from '@uppy/utils/lib/Translator' -import { h } from 'preact' interface RecordButtonProps { recording: boolean diff --git a/packages/@uppy/audio/src/RecordingLength.tsx b/packages/@uppy/audio/src/RecordingLength.tsx index 03a424d45..a40ffd4a8 100644 --- a/packages/@uppy/audio/src/RecordingLength.tsx +++ b/packages/@uppy/audio/src/RecordingLength.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact' import formatSeconds from './formatSeconds.js' interface RecordingLengthProps { diff --git a/packages/@uppy/audio/src/RecordingScreen.tsx b/packages/@uppy/audio/src/RecordingScreen.tsx index 22cc66ffb..c1cb3f480 100644 --- a/packages/@uppy/audio/src/RecordingScreen.tsx +++ b/packages/@uppy/audio/src/RecordingScreen.tsx @@ -1,5 +1,4 @@ import type { I18n } from '@uppy/utils/lib/Translator' -import { h } from 'preact' import { useEffect, useRef } from 'preact/hooks' import AudioSourceSelect, { type AudioSourceSelectProps, diff --git a/packages/@uppy/audio/src/SubmitButton.tsx b/packages/@uppy/audio/src/SubmitButton.tsx index f78ec3727..628332690 100644 --- a/packages/@uppy/audio/src/SubmitButton.tsx +++ b/packages/@uppy/audio/src/SubmitButton.tsx @@ -1,5 +1,4 @@ import type { I18n } from '@uppy/utils/lib/Translator' -import { h } from 'preact' interface SubmitButtonProps { onSubmit: () => void diff --git a/packages/@uppy/components/src/Dropzone.tsx b/packages/@uppy/components/src/Dropzone.tsx index 13fcf66b2..4649b50d8 100644 --- a/packages/@uppy/components/src/Dropzone.tsx +++ b/packages/@uppy/components/src/Dropzone.tsx @@ -1,5 +1,4 @@ import { clsx } from 'clsx' -import { h } from 'preact' import { useMemo } from 'preact/hooks' import { createDropzone } from './hooks/dropzone.js' import type { NonNullableUppyContext, UppyContext } from './types.js' @@ -29,7 +28,6 @@ export default function Dropzone(props: DropzoneProps) { className="uppy-reset" data-uppy-element="dropzone" role="presentation" - tabIndex={0} >
    { + // taken from https://github.com/react-dropzone/react-dropzone/blob/d6911c991e077151e302b599b92269432ab0472b/src/index.js#L830C1-L836C1 + if ( + event.key === ' ' || + event.key === 'Enter' || + event.keyCode === 32 || + event.keyCode === 13 + ) { + handleClick() + } + } + const handleFileInputChange = (event: ChangeEventType) => { const input = event.target as HTMLInputElement const files = Array.from(input.files ?? []) @@ -103,6 +115,7 @@ export function createDropzone< onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: handleClick, + onKeyPress: handleKeyPress, }), getInputProps: () => ({ id: fileInputId, diff --git a/packages/@uppy/dashboard/src/Dashboard.tsx b/packages/@uppy/dashboard/src/Dashboard.tsx index 1235afe05..f590d17ba 100644 --- a/packages/@uppy/dashboard/src/Dashboard.tsx +++ b/packages/@uppy/dashboard/src/Dashboard.tsx @@ -21,7 +21,6 @@ import type { LocaleStrings } from '@uppy/utils/lib/Translator' import toArray from '@uppy/utils/lib/toArray' import { nanoid } from 'nanoid/non-secure' import type { ComponentChild, VNode } from 'preact' -import { h } from 'preact' import type { TargetedEvent } from 'preact/compat' import packageJson from '../package.json' with { type: 'json' } import DashboardUI from './components/Dashboard.js' diff --git a/packages/@uppy/dashboard/src/components/AddFiles.tsx b/packages/@uppy/dashboard/src/components/AddFiles.tsx index d70315b9a..83a8ccf38 100644 --- a/packages/@uppy/dashboard/src/components/AddFiles.tsx +++ b/packages/@uppy/dashboard/src/components/AddFiles.tsx @@ -1,6 +1,6 @@ import type Translator from '@uppy/utils/lib/Translator' import type { I18n } from '@uppy/utils/lib/Translator' -import { Component, type ComponentChild, Fragment, h } from 'preact' +import { Component, type ComponentChild, Fragment } from 'preact' import type { TargetedEvent } from 'preact/compat' import type { DashboardState, TargetWithRender } from '../Dashboard.js' diff --git a/packages/@uppy/dashboard/src/components/AddFilesPanel.tsx b/packages/@uppy/dashboard/src/components/AddFilesPanel.tsx index cd026abfa..f46758793 100644 --- a/packages/@uppy/dashboard/src/components/AddFilesPanel.tsx +++ b/packages/@uppy/dashboard/src/components/AddFilesPanel.tsx @@ -1,5 +1,4 @@ import classNames from 'classnames' -import { h } from 'preact' import AddFiles from './AddFiles.js' type $TSFixMe = any diff --git a/packages/@uppy/dashboard/src/components/Dashboard.tsx b/packages/@uppy/dashboard/src/components/Dashboard.tsx index 4497a6fd6..94dfbdef5 100644 --- a/packages/@uppy/dashboard/src/components/Dashboard.tsx +++ b/packages/@uppy/dashboard/src/components/Dashboard.tsx @@ -11,7 +11,6 @@ import isDragDropSupported from '@uppy/utils/lib/isDragDropSupported' import type Translator from '@uppy/utils/lib/Translator' import type { I18n } from '@uppy/utils/lib/Translator' import classNames from 'classnames' -import { h } from 'preact' import type { TargetedEvent } from 'preact/compat' import type { DashboardState, TargetWithRender } from '../Dashboard.js' import AddFiles from './AddFiles.js' diff --git a/packages/@uppy/dashboard/src/components/EditorPanel.tsx b/packages/@uppy/dashboard/src/components/EditorPanel.tsx index 8baa662dd..2e2f5c8cc 100644 --- a/packages/@uppy/dashboard/src/components/EditorPanel.tsx +++ b/packages/@uppy/dashboard/src/components/EditorPanel.tsx @@ -1,5 +1,4 @@ import classNames from 'classnames' -import { h } from 'preact' type $TSFixMe = any diff --git a/packages/@uppy/dashboard/src/components/FileCard/index.tsx b/packages/@uppy/dashboard/src/components/FileCard/index.tsx index 29bcd620a..2db91befc 100644 --- a/packages/@uppy/dashboard/src/components/FileCard/index.tsx +++ b/packages/@uppy/dashboard/src/components/FileCard/index.tsx @@ -1,6 +1,5 @@ import classNames from 'classnames' import { nanoid } from 'nanoid/non-secure' -import { h } from 'preact' import { useCallback, useEffect, useState } from 'preact/hooks' import getFileTypeIcon from '../../utils/getFileTypeIcon.js' import ignoreEvent from '../../utils/ignoreEvent.js' diff --git a/packages/@uppy/dashboard/src/components/FileItem/Buttons/index.tsx b/packages/@uppy/dashboard/src/components/FileItem/Buttons/index.tsx index 7e233084c..95ea38aae 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/Buttons/index.tsx +++ b/packages/@uppy/dashboard/src/components/FileItem/Buttons/index.tsx @@ -1,7 +1,6 @@ import type Uppy from '@uppy/core' import type { Body, Meta, UppyFile } from '@uppy/core' import type { I18n } from '@uppy/utils/lib/Translator' -import { h } from 'preact' import type { DashboardState } from '../../../Dashboard.js' import copyToClipboard from '../../../utils/copyToClipboard.js' diff --git a/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.tsx b/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.tsx index 4cc5a8179..81bfd47ac 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.tsx +++ b/packages/@uppy/dashboard/src/components/FileItem/FileInfo/index.tsx @@ -2,7 +2,6 @@ import prettierBytes from '@transloadit/prettier-bytes' import type { UppyFile } from '@uppy/core' import type { I18n } from '@uppy/utils/lib/Translator' import truncateString from '@uppy/utils/lib/truncateString' -import { h } from 'preact' import type { DashboardState } from '../../../Dashboard.js' import MetaErrorMessage from '../MetaErrorMessage.js' diff --git a/packages/@uppy/dashboard/src/components/FileItem/FilePreviewAndLink/index.tsx b/packages/@uppy/dashboard/src/components/FileItem/FilePreviewAndLink/index.tsx index c5572c678..cee54438b 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/FilePreviewAndLink/index.tsx +++ b/packages/@uppy/dashboard/src/components/FileItem/FilePreviewAndLink/index.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact' import getFileTypeIcon from '../../../utils/getFileTypeIcon.js' import FilePreview from '../../FilePreview.js' import MetaErrorMessage from '../MetaErrorMessage.js' diff --git a/packages/@uppy/dashboard/src/components/FileItem/FileProgress/index.tsx b/packages/@uppy/dashboard/src/components/FileItem/FileProgress/index.tsx index c9497f860..f4dbb9fb9 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/FileProgress/index.tsx +++ b/packages/@uppy/dashboard/src/components/FileItem/FileProgress/index.tsx @@ -1,6 +1,6 @@ import type { Body, Meta, State, Uppy, UppyFile } from '@uppy/core' import type { I18n } from '@uppy/utils/lib/Translator' -import { type ComponentChild, h } from 'preact' +import type { ComponentChild } from 'preact' interface Props { uppy: Uppy diff --git a/packages/@uppy/dashboard/src/components/FileItem/MetaErrorMessage.tsx b/packages/@uppy/dashboard/src/components/FileItem/MetaErrorMessage.tsx index 0fb5e7533..09269e7c6 100644 --- a/packages/@uppy/dashboard/src/components/FileItem/MetaErrorMessage.tsx +++ b/packages/@uppy/dashboard/src/components/FileItem/MetaErrorMessage.tsx @@ -1,5 +1,3 @@ -import { h } from 'preact' - type $TSFixMe = any const metaFieldIdToName = (metaFieldId: $TSFixMe, metaFields: $TSFixMe) => { diff --git a/packages/@uppy/dashboard/src/components/FileList.tsx b/packages/@uppy/dashboard/src/components/FileList.tsx index 80be756cb..87314341b 100644 --- a/packages/@uppy/dashboard/src/components/FileList.tsx +++ b/packages/@uppy/dashboard/src/components/FileList.tsx @@ -2,7 +2,6 @@ import type { Body, Meta, State, Uppy, UppyFile } from '@uppy/core' import type { I18n } from '@uppy/utils/lib/Translator' // @ts-ignore untyped import VirtualList from '@uppy/utils/lib/VirtualList' -import { h } from 'preact' import { useMemo } from 'preact/hooks' import type { DashboardState } from '../Dashboard.js' import FileItem from './FileItem/index.js' diff --git a/packages/@uppy/dashboard/src/components/FilePreview.tsx b/packages/@uppy/dashboard/src/components/FilePreview.tsx index d8e69ace3..084332f40 100644 --- a/packages/@uppy/dashboard/src/components/FilePreview.tsx +++ b/packages/@uppy/dashboard/src/components/FilePreview.tsx @@ -1,4 +1,3 @@ -import { h } from 'preact' import getFileTypeIcon from '../utils/getFileTypeIcon.js' type $TSFixMe = any diff --git a/packages/@uppy/dashboard/src/components/PickerPanelContent.tsx b/packages/@uppy/dashboard/src/components/PickerPanelContent.tsx index 82767e1ef..7c9206fb3 100644 --- a/packages/@uppy/dashboard/src/components/PickerPanelContent.tsx +++ b/packages/@uppy/dashboard/src/components/PickerPanelContent.tsx @@ -1,5 +1,4 @@ import classNames from 'classnames' -import { h } from 'preact' import { useRef } from 'preact/hooks' import ignoreEvent from '../utils/ignoreEvent.js' diff --git a/packages/@uppy/dashboard/src/components/PickerPanelTopBar.tsx b/packages/@uppy/dashboard/src/components/PickerPanelTopBar.tsx index f6ece10d2..064f2e8ee 100644 --- a/packages/@uppy/dashboard/src/components/PickerPanelTopBar.tsx +++ b/packages/@uppy/dashboard/src/components/PickerPanelTopBar.tsx @@ -1,5 +1,4 @@ import type { UppyFile } from '@uppy/core' -import { h } from 'preact' type $TSFixMe = any diff --git a/packages/@uppy/dashboard/src/components/Slide.tsx b/packages/@uppy/dashboard/src/components/Slide.tsx index daf429c27..378df32d9 100644 --- a/packages/@uppy/dashboard/src/components/Slide.tsx +++ b/packages/@uppy/dashboard/src/components/Slide.tsx @@ -2,11 +2,10 @@ import classNames from 'classnames' import { type ComponentChildren, cloneElement, - h, toChildArray, type VNode, } from 'preact' -import { useEffect, useRef, useState } from 'preact/hooks' +import { useCallback, useEffect, useRef, useState } from 'preact/hooks' const transitionName = 'uppy-transition-slideDownUp' const duration = 250 @@ -29,7 +28,7 @@ function Slide({ children }: { children: ComponentChildren }) { const leaveTimeoutRef = useRef>() const animationFrameRef = useRef>() - const handleEnterTransition = () => { + const handleEnterTransition = useCallback(() => { setClassName(`${transitionName}-enter`) cancelAnimationFrame(animationFrameRef.current!) @@ -43,9 +42,9 @@ function Slide({ children }: { children: ComponentChildren }) { setClassName('') }, duration) }) - } + }, []) - const handleLeaveTransition = () => { + const handleLeaveTransition = useCallback(() => { setClassName(`${transitionName}-leave`) cancelAnimationFrame(animationFrameRef.current!) @@ -60,7 +59,7 @@ function Slide({ children }: { children: ComponentChildren }) { setClassName('') }, duration) }) - } + }, []) useEffect(() => { const child = toChildArray(children)[0] as VNode @@ -73,7 +72,7 @@ function Slide({ children }: { children: ComponentChildren }) { } setCachedChildren(child) - }, [children, cachedChildren]) // Dependency array to trigger effect on children change + }, [children, cachedChildren, handleEnterTransition, handleLeaveTransition]) // Dependency array to trigger effect on children change useEffect(() => { return () => { diff --git a/packages/@uppy/dashboard/src/utils/getFileTypeIcon.tsx b/packages/@uppy/dashboard/src/utils/getFileTypeIcon.tsx index 7b3897db0..8721a87ba 100644 --- a/packages/@uppy/dashboard/src/utils/getFileTypeIcon.tsx +++ b/packages/@uppy/dashboard/src/utils/getFileTypeIcon.tsx @@ -1,5 +1,3 @@ -import { h } from 'preact' - type $TSFixMe = any function iconImage() { diff --git a/packages/@uppy/drag-drop/src/DragDrop.tsx b/packages/@uppy/drag-drop/src/DragDrop.tsx index c942b3d2b..5ba87e08e 100644 --- a/packages/@uppy/drag-drop/src/DragDrop.tsx +++ b/packages/@uppy/drag-drop/src/DragDrop.tsx @@ -10,7 +10,7 @@ import getDroppedFiles from '@uppy/utils/lib/getDroppedFiles' import isDragDropSupported from '@uppy/utils/lib/isDragDropSupported' import type { LocaleStrings } from '@uppy/utils/lib/Translator' import toArray from '@uppy/utils/lib/toArray' -import { type ComponentChild, h } from 'preact' +import type { ComponentChild } from 'preact' import type { TargetedEvent } from 'preact/compat' import packageJson from '../package.json' with { type: 'json' } import locale from './locale.js' diff --git a/packages/@uppy/google-drive-picker/src/GoogleDrivePicker.tsx b/packages/@uppy/google-drive-picker/src/GoogleDrivePicker.tsx index f9f4d5a35..33dc0316d 100644 --- a/packages/@uppy/google-drive-picker/src/GoogleDrivePicker.tsx +++ b/packages/@uppy/google-drive-picker/src/GoogleDrivePicker.tsx @@ -9,7 +9,6 @@ import { GooglePickerView } from '@uppy/provider-views' import type { PickedItem } from '@uppy/provider-views/lib/GooglePicker/googlePicker.js' import { GoogleDriveIcon } from '@uppy/provider-views/lib/GooglePicker/icons.js' import type { LocaleStrings } from '@uppy/utils/lib/Translator' -import { h } from 'preact' import packageJson from '../package.json' with { type: 'json' } import locale from './locale.js' diff --git a/packages/@uppy/google-photos-picker/src/GooglePhotosPicker.tsx b/packages/@uppy/google-photos-picker/src/GooglePhotosPicker.tsx index f11be5b3f..c143f921c 100644 --- a/packages/@uppy/google-photos-picker/src/GooglePhotosPicker.tsx +++ b/packages/@uppy/google-photos-picker/src/GooglePhotosPicker.tsx @@ -9,7 +9,6 @@ import { GooglePickerView } from '@uppy/provider-views' import type { PickedItem } from '@uppy/provider-views/lib/GooglePicker/googlePicker.js' import { GooglePhotosIcon } from '@uppy/provider-views/lib/GooglePicker/icons.js' import type { LocaleStrings } from '@uppy/utils/lib/Translator' -import { h } from 'preact' import packageJson from '../package.json' with { type: 'json' } import locale from './locale.js' diff --git a/packages/@uppy/image-editor/src/Editor.tsx b/packages/@uppy/image-editor/src/Editor.tsx index ef5a4c4f4..e0c2e54f8 100644 --- a/packages/@uppy/image-editor/src/Editor.tsx +++ b/packages/@uppy/image-editor/src/Editor.tsx @@ -1,7 +1,7 @@ import type { Body, Meta, UppyFile } from '@uppy/core' import type { I18n } from '@uppy/utils/lib/Translator' import Cropper from 'cropperjs' -import { Component, h } from 'preact' +import { Component } from 'preact' import type ImageEditor from './ImageEditor.js' import getCanvasDataThatFitsPerfectlyIntoContainer from './utils/getCanvasDataThatFitsPerfectlyIntoContainer.js' import getScaleFactorThatRemovesDarkCorners from './utils/getScaleFactorThatRemovesDarkCorners.js' diff --git a/packages/@uppy/image-editor/src/ImageEditor.tsx b/packages/@uppy/image-editor/src/ImageEditor.tsx index 2a994fd8e..624069c34 100644 --- a/packages/@uppy/image-editor/src/ImageEditor.tsx +++ b/packages/@uppy/image-editor/src/ImageEditor.tsx @@ -9,7 +9,6 @@ import type { import { UIPlugin } from '@uppy/core' import type { LocaleStrings } from '@uppy/utils/lib/Translator' import type Cropper from 'cropperjs' -import { h } from 'preact' import packageJson from '../package.json' with { type: 'json' } import Editor from './Editor.js' import locale from './locale.js' diff --git a/packages/@uppy/informer/src/FadeIn.tsx b/packages/@uppy/informer/src/FadeIn.tsx index 179398387..d97cc413e 100644 --- a/packages/@uppy/informer/src/FadeIn.tsx +++ b/packages/@uppy/informer/src/FadeIn.tsx @@ -1,4 +1,4 @@ -import { Component, type ComponentChild, createRef, h } from 'preact' +import { Component, type ComponentChild, createRef } from 'preact' const TRANSITION_MS = 300 diff --git a/packages/@uppy/informer/src/Informer.tsx b/packages/@uppy/informer/src/Informer.tsx index 5f53acca3..0b013f43d 100644 --- a/packages/@uppy/informer/src/Informer.tsx +++ b/packages/@uppy/informer/src/Informer.tsx @@ -1,6 +1,6 @@ import type { Body, Meta, State, UIPluginOptions, Uppy } from '@uppy/core' import { UIPlugin } from '@uppy/core' -import { type ComponentChild, h } from 'preact' +import type { ComponentChild } from 'preact' import packageJson from '../package.json' with { type: 'json' } import FadeIn from './FadeIn.js' import TransitionGroup from './TransitionGroup.js' @@ -37,7 +37,7 @@ export default class Informer extends UIPlugin<

    {info.message}{' '} {info.details && ( - // biome-ignore lint/a11y/useKeyWithClickEvents: ... + // biome-ignore lint/a11y/useKeyWithClickEvents: don't think it's needed = { diff --git a/packages/@uppy/provider-views/src/Browser.tsx b/packages/@uppy/provider-views/src/Browser.tsx index 8993a1db1..9be064681 100644 --- a/packages/@uppy/provider-views/src/Browser.tsx +++ b/packages/@uppy/provider-views/src/Browser.tsx @@ -5,9 +5,7 @@ import type { PartialTreeFolderNode, } from '@uppy/core' import type { I18n } from '@uppy/utils/lib/Translator' -// @ts-ignore untyped import VirtualList from '@uppy/utils/lib/VirtualList' -import { h } from 'preact' import { useEffect, useState } from 'preact/hooks' import Item from './Item/index.js' import type ProviderView from './ProviderView/ProviderView.js' diff --git a/packages/@uppy/provider-views/src/FooterActions.tsx b/packages/@uppy/provider-views/src/FooterActions.tsx index 185db3b9e..179e3d623 100644 --- a/packages/@uppy/provider-views/src/FooterActions.tsx +++ b/packages/@uppy/provider-views/src/FooterActions.tsx @@ -1,7 +1,6 @@ import type { Body, Meta, PartialTree } from '@uppy/core' import type { I18n } from '@uppy/utils/lib/Translator' import classNames from 'classnames' -import { h } from 'preact' import { useMemo } from 'preact/hooks' import type ProviderView from './ProviderView/ProviderView.js' import getNumberOfSelectedFiles from './utils/PartialTreeUtils/getNumberOfSelectedFiles.js' diff --git a/packages/@uppy/provider-views/src/GooglePicker/GooglePickerView.tsx b/packages/@uppy/provider-views/src/GooglePicker/GooglePickerView.tsx index 77d5c4f96..5f8e36c62 100644 --- a/packages/@uppy/provider-views/src/GooglePicker/GooglePickerView.tsx +++ b/packages/@uppy/provider-views/src/GooglePicker/GooglePickerView.tsx @@ -1,6 +1,5 @@ import type { AsyncStore, Uppy } from '@uppy/core' import type { I18n } from '@uppy/utils/lib/Translator' -import { h } from 'preact' import { useCallback, useEffect, useRef, useState } from 'preact/hooks' import AuthView from '../ProviderView/AuthView.js' import { diff --git a/packages/@uppy/provider-views/src/GooglePicker/icons.tsx b/packages/@uppy/provider-views/src/GooglePicker/icons.tsx index 0a83b5367..0e911d635 100644 --- a/packages/@uppy/provider-views/src/GooglePicker/icons.tsx +++ b/packages/@uppy/provider-views/src/GooglePicker/icons.tsx @@ -1,5 +1,3 @@ -import { h } from 'preact' - export const GooglePhotosIcon = () => (