diff --git a/src/frontend/apps/e2e/tsconfig.json b/src/frontend/apps/e2e/tsconfig.json index 64fe24546..f206cf53d 100644 --- a/src/frontend/apps/e2e/tsconfig.json +++ b/src/frontend/apps/e2e/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es2020", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, diff --git a/src/frontend/apps/impress/src/components/BoxButton.tsx b/src/frontend/apps/impress/src/components/BoxButton.tsx index bcd8c4c13..f2b7f70c6 100644 --- a/src/frontend/apps/impress/src/components/BoxButton.tsx +++ b/src/frontend/apps/impress/src/components/BoxButton.tsx @@ -1,12 +1,13 @@ -import { Ref, forwardRef } from 'react'; +import { ComponentPropsWithRef, Ref, forwardRef } from 'react'; import { css } from 'styled-components'; -import { Box, BoxType } from './Box'; +import { Box, BoxProps } from './Box'; -export type BoxButtonType = Omit & { - disabled?: boolean; - ref?: Ref; -}; +export type BoxButtonType = BoxProps & + Omit, keyof BoxProps | 'ref'> & { + disabled?: boolean; + ref?: Ref; + }; /** * Styleless button that extends the Box component. @@ -59,7 +60,7 @@ const BoxButton = forwardRef( if (disabled) { return; } - props.onClick?.(event as unknown as React.MouseEvent); + props.onClick?.(event); }} /> ); diff --git a/src/frontend/apps/impress/src/components/Text.tsx b/src/frontend/apps/impress/src/components/Text.tsx index 5975feddb..027d07422 100644 --- a/src/frontend/apps/impress/src/components/Text.tsx +++ b/src/frontend/apps/impress/src/components/Text.tsx @@ -34,9 +34,7 @@ export const TextStyled = styled(Box)` const Text = forwardRef>( (props, ref) => { - return ( - } as="span" {...props} /> - ); + return ; }, ); diff --git a/src/frontend/apps/impress/src/cunningham/useCunninghamTheme.tsx b/src/frontend/apps/impress/src/cunningham/useCunninghamTheme.tsx index 672b5be60..748fcf919 100644 --- a/src/frontend/apps/impress/src/cunningham/useCunninghamTheme.tsx +++ b/src/frontend/apps/impress/src/cunningham/useCunninghamTheme.tsx @@ -35,7 +35,7 @@ const initialState: ThemeStore = { colorsTokens: defaultTokens.globals.colors, componentTokens: defaultTokens.components, contextualTokens: defaultTokens.contextuals, - currentTokens: tokens.themes[DEFAULT_THEME] as Partial, + currentTokens: tokens.themes[DEFAULT_THEME], fontSizesTokens: defaultTokens.globals.font.sizes, setTheme: () => {}, spacingsTokens: defaultTokens.globals.spacings, diff --git a/src/frontend/apps/impress/src/features/auth/components/AvatarSvg.tsx b/src/frontend/apps/impress/src/features/auth/components/AvatarSvg.tsx index 44c183f0e..eb45cb426 100644 --- a/src/frontend/apps/impress/src/features/auth/components/AvatarSvg.tsx +++ b/src/frontend/apps/impress/src/features/auth/components/AvatarSvg.tsx @@ -1,12 +1,13 @@ -import React from 'react'; +import React, { ComponentPropsWithRef } from 'react'; -import { Box, BoxType } from '@/components'; +import { Box, BoxProps } from '@/components'; -type AvatarSvgProps = { - initials: string; - background: string; - fontFamily?: string; -} & BoxType; +type AvatarSvgProps = BoxProps & + Omit, keyof BoxProps> & { + initials: string; + background: string; + fontFamily?: string; + }; export const AvatarSvg: React.FC = ({ initials, diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/components/comments/DocsThreadStore.tsx b/src/frontend/apps/impress/src/features/docs/doc-editor/components/comments/DocsThreadStore.tsx index a0c13f839..43374b78b 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/components/comments/DocsThreadStore.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/components/comments/DocsThreadStore.tsx @@ -67,7 +67,7 @@ export class DocsThreadStore extends ThreadStore { continue; } - const state = states.get(clientId) as + const state: | { [DocsThreadStore.COMMENTS_PING]?: { at: number; @@ -76,7 +76,7 @@ export class DocsThreadStore extends ThreadStore { threadId: string; }; } - | undefined; + | undefined = states.get(clientId); const ping = state?.commentsPing; diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Interlinking/LinkSelected.tsx b/src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Interlinking/LinkSelected.tsx index a10f653a3..7e0330138 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Interlinking/LinkSelected.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Interlinking/LinkSelected.tsx @@ -41,7 +41,7 @@ export const LinkSelected = ({ const router = useRouter(); const href = `/docs/${docId}/`; - const handleClick = (e: React.MouseEvent) => { + const handleClick = (e: React.MouseEvent) => { e.preventDefault(); // If ctrl or command is pressed, it opens a new tab. If shift is pressed, it opens a new window @@ -53,7 +53,7 @@ export const LinkSelected = ({ }; // This triggers on middle-mouse click - const handleAuxClick = (e: React.MouseEvent) => { + const handleAuxClick = (e: React.MouseEvent) => { if (e.button !== 1) { return; } diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/components/xl-multi-column/index.ts b/src/frontend/apps/impress/src/features/docs/doc-editor/components/xl-multi-column/index.ts index 584deb9e4..bbcf06b1f 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/components/xl-multi-column/index.ts +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/components/xl-multi-column/index.ts @@ -39,7 +39,13 @@ const withMultiColumnNoDropHandler = < }); }; -let modulesXL = undefined; +type ModulesXL = + | (Omit & { + withMultiColumn: typeof withMultiColumnNoDropHandler; + }) + | undefined; + +let modulesXL: ModulesXL = undefined; if (process.env.NEXT_PUBLIC_PUBLISH_AS_MIT === 'false') { modulesXL = { ...XLMultiColumn, @@ -47,10 +53,4 @@ if (process.env.NEXT_PUBLIC_PUBLISH_AS_MIT === 'false') { }; } -type ModulesXL = - | (Omit & { - withMultiColumn: typeof withMultiColumnNoDropHandler; - }) - | undefined; - -export default modulesXL as ModulesXL; +export default modulesXL; diff --git a/src/frontend/apps/impress/src/features/docs/doc-export/components/ModalExport.tsx b/src/frontend/apps/impress/src/features/docs/doc-export/components/ModalExport.tsx index 8b22f1eb3..7fe65eeaf 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-export/components/ModalExport.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-export/components/ModalExport.tsx @@ -11,7 +11,7 @@ import { useToastProvider, } from '@gouvfr-lasuite/cunningham-react'; import { DocumentProps, pdf } from '@react-pdf/renderer'; -import jsonemoji from 'emoji-datasource-apple' assert { type: 'json' }; +import jsonemoji from 'emoji-datasource-apple' with { type: 'json' }; import i18next from 'i18next'; import JSZip from 'jszip'; import { cloneElement, isValidElement, useState } from 'react'; diff --git a/src/frontend/apps/impress/src/features/docs/doc-export/index.ts b/src/frontend/apps/impress/src/features/docs/doc-export/index.ts index bd56ea141..6306d9b08 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-export/index.ts +++ b/src/frontend/apps/impress/src/features/docs/doc-export/index.ts @@ -16,6 +16,4 @@ if (process.env.NEXT_PUBLIC_PUBLISH_AS_MIT === 'false') { }; } -type ModulesExport = typeof modulesExport; - -export default modulesExport as ModulesExport; +export default modulesExport; diff --git a/src/frontend/apps/impress/src/features/docs/doc-header/components/BoutonShare.tsx b/src/frontend/apps/impress/src/features/docs/doc-header/components/BoutonShare.tsx index a5c9177b4..9f86e08af 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-header/components/BoutonShare.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-header/components/BoutonShare.tsx @@ -68,7 +68,7 @@ export const BoutonShare = ({ /> } onClick={(e) => { - addLastFocus(e.currentTarget as HTMLElement); + addLastFocus(e.currentTarget); open(); }} size="medium" @@ -85,7 +85,7 @@ export const BoutonShare = ({ color="brand" variant="tertiary" onClick={(e) => { - addLastFocus(e.currentTarget as HTMLElement); + addLastFocus(e.currentTarget); open(); }} size="medium" diff --git a/src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx b/src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx index ad781879c..19973d6c2 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx @@ -244,7 +244,7 @@ export const DocToolBox = ({ doc }: DocToolBoxProps) => { } onClick={(e) => { - addLastFocus(e.currentTarget as HTMLElement); + addLastFocus(e.currentTarget); setIsModalExportOpen(true); }} size={isSmallMobile ? 'small' : 'medium'} diff --git a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItemSharedButton.tsx b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItemSharedButton.tsx index f56e5f115..72e9b1ac9 100644 --- a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItemSharedButton.tsx +++ b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItemSharedButton.tsx @@ -50,7 +50,7 @@ export const DocsGridItemSharedButton = ({ doc, disabled }: Props) => { onClick={(event) => { event.preventDefault(); event.stopPropagation(); - addLastFocus(event.currentTarget as HTMLElement); + addLastFocus(event.currentTarget); shareModal.open(); }} color="brand" diff --git a/src/frontend/apps/impress/src/features/service-worker/RequestSerializer.ts b/src/frontend/apps/impress/src/features/service-worker/RequestSerializer.ts index 87222b4e3..40e899a19 100644 --- a/src/frontend/apps/impress/src/features/service-worker/RequestSerializer.ts +++ b/src/frontend/apps/impress/src/features/service-worker/RequestSerializer.ts @@ -50,7 +50,7 @@ export class RequestSerializer { public static arrayBufferToString(buffer: ArrayBufferLike) { const decoder = new TextDecoder(); - return decoder.decode(buffer as ArrayBuffer); + return decoder.decode(buffer); } public static arrayBufferToJson(buffer: ArrayBufferLike) { diff --git a/src/frontend/apps/impress/src/features/service-worker/__tests__/OfflinePlugin.test.tsx b/src/frontend/apps/impress/src/features/service-worker/__tests__/OfflinePlugin.test.tsx index 65f96ecac..19f3a2a4f 100644 --- a/src/frontend/apps/impress/src/features/service-worker/__tests__/OfflinePlugin.test.tsx +++ b/src/frontend/apps/impress/src/features/service-worker/__tests__/OfflinePlugin.test.tsx @@ -15,7 +15,7 @@ const mockServiceWorkerScope = { (global as any).self = { ...global, clients: mockServiceWorkerScope.clients, -} as unknown as ServiceWorkerGlobalScope; +}; describe('OfflinePlugin', () => { afterEach(() => vi.clearAllMocks()); diff --git a/src/frontend/apps/impress/tsconfig.json b/src/frontend/apps/impress/tsconfig.json index cd08843a6..55aae3f7e 100644 --- a/src/frontend/apps/impress/tsconfig.json +++ b/src/frontend/apps/impress/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es2020", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, diff --git a/src/frontend/packages/i18n/tsconfig.json b/src/frontend/packages/i18n/tsconfig.json index 2c5fee270..1cd3431ef 100644 --- a/src/frontend/packages/i18n/tsconfig.json +++ b/src/frontend/packages/i18n/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es2020", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, diff --git a/src/frontend/servers/y-provider/src/handlers/convertHandler.ts b/src/frontend/servers/y-provider/src/handlers/convertHandler.ts index 89a22c330..b992cd1a6 100644 --- a/src/frontend/servers/y-provider/src/handlers/convertHandler.ts +++ b/src/frontend/servers/y-provider/src/handlers/convertHandler.ts @@ -62,7 +62,7 @@ const readers: InputReader[] = [ const ydoc = new Y.Doc(); try { Y.applyUpdate(ydoc, data); - return editor.yDocToBlocks(ydoc, 'document-store') as PartialBlock[]; + return editor.yDocToBlocks(ydoc, 'document-store'); } finally { ydoc.destroy(); } diff --git a/src/frontend/servers/y-provider/tsconfig.json b/src/frontend/servers/y-provider/tsconfig.json index 1d16a8b86..3b9a9bff0 100644 --- a/src/frontend/servers/y-provider/tsconfig.json +++ b/src/frontend/servers/y-provider/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es2020", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true,