From 5374d351e272a2957ef73026031504bb7ad04f1e Mon Sep 17 00:00:00 2001 From: DarkSky Date: Fri, 23 Dec 2022 13:36:39 +0800 Subject: [PATCH] chore: fix most warnings and ignore a few warnings, because the code quality is too bad --- .../src/components/delete-workspace/index.tsx | 1 - .../src/components/invite-members/index.tsx | 5 +++- .../src/components/loading/page-loading.tsx | 2 +- .../app/src/components/login-modal/index.tsx | 2 +- .../app/src/components/page-list/styles.ts | 5 ++-- .../app/src/components/provider-composer.ts | 2 ++ .../src/components/shortcuts-modal/style.ts | 2 +- .../src/components/simple-counter/index.ts | 4 +-- .../src/components/workspace-layout/styles.ts | 2 +- .../workspace-setting/general/delete/style.ts | 9 +++---- .../workspace-setting/general/leave/leave.tsx | 16 +----------- .../workspace-setting/general/leave/style.ts | 5 ++-- .../workspace-setting/general/style.ts | 8 +++--- .../workspace-setting/workspace-setting.tsx | 14 +++++------ .../SelectorPopperContent.tsx | 6 ++--- .../workspace-create/style.ts | 8 +++--- .../workspace-create/workspace-create.tsx | 6 +---- .../WorkspaceItem/FooterSetting.tsx | 2 +- .../components/workspace-slider-bar/index.tsx | 3 --- .../components/workspace-slider-bar/style.ts | 4 +-- .../app/src/hooks/use-current-page-meta.ts | 4 +-- packages/app/src/hooks/use-init-workspace.ts | 2 +- packages/app/src/hooks/use-page-helper.ts | 2 ++ packages/app/src/libs/i18n/scripts/api.ts | 11 ++++---- .../app/src/libs/i18n/scripts/download.ts | 4 ++- packages/app/src/libs/i18n/scripts/sync.ts | 20 +++++++-------- .../app/src/pages/invite/[invite_code].tsx | 9 ++++--- .../workspace/[workspaceId]/[pageId].tsx | 3 ++- .../pages/workspace/[workspaceId]/index.tsx | 2 +- packages/app/src/pages/workspace/index.tsx | 2 +- .../app-state-provider/dynamic-blocksuite.tsx | 6 +---- .../providers/app-state-provider/provider.tsx | 1 + .../app/src/providers/confirm-provider.tsx | 4 +-- .../src/providers/global-modal-provider.tsx | 25 +++++++++++++------ packages/app/src/providers/themeProvider.tsx | 5 +++- packages/app/src/ui/button/button.tsx | 10 +------- packages/app/src/ui/button/styles.ts | 1 + packages/app/src/ui/confirm/styles.ts | 2 +- packages/app/src/ui/input/input.tsx | 1 + packages/app/src/ui/layout/content.tsx | 2 +- packages/app/src/ui/layout/wrapper.tsx | 2 +- packages/app/src/ui/menu/styles.ts | 14 +++++------ packages/app/src/ui/modal/modal-wrapper.tsx | 2 +- packages/app/src/ui/modal/modal.tsx | 5 ++-- packages/app/src/ui/modal/styles.ts | 18 ++++++------- packages/app/src/ui/table/index.ts | 2 +- packages/app/src/ui/table/styles.ts | 6 ++--- packages/app/src/utils/get-is-mobile.ts | 1 + packages/app/src/utils/tools.ts | 1 + 49 files changed, 128 insertions(+), 145 deletions(-) diff --git a/packages/app/src/components/delete-workspace/index.tsx b/packages/app/src/components/delete-workspace/index.tsx index c9ce91776c..5cceb487a2 100644 --- a/packages/app/src/components/delete-workspace/index.tsx +++ b/packages/app/src/components/delete-workspace/index.tsx @@ -1,4 +1,3 @@ -import { ResetIcon } from '@blocksuite/icons'; import { styled } from '@/styles'; import { Modal, ModalWrapper, ModalCloseButton } from '@/ui/modal'; import { Button } from '@/ui/button'; diff --git a/packages/app/src/components/invite-members/index.tsx b/packages/app/src/components/invite-members/index.tsx index 8a188e5410..2ace09c0ba 100644 --- a/packages/app/src/components/invite-members/index.tsx +++ b/packages/app/src/components/invite-members/index.tsx @@ -12,14 +12,17 @@ interface LoginModalProps { workspaceId: string; onInviteSuccess: () => void; } +// eslint-disable-next-line @typescript-eslint/no-explicit-any export const debounce = any>( fn: T, time?: number, immediate?: boolean + // eslint-disable-next-line @typescript-eslint/no-explicit-any ): ((...args: any) => any) => { let timeoutId: null | number; let defaultImmediate = immediate || false; const delay = time || 300; + // eslint-disable-next-line @typescript-eslint/no-explicit-any return (...args: any) => { if (defaultImmediate) { fn.apply(this, args); // 确保引用函数的指向正确,并且函数的参数也不变 @@ -45,10 +48,10 @@ export const InviteMembers = ({ workspaceId, onInviteSuccess, }: LoginModalProps) => { - const [canInvite, setCanInvite] = useState(true); const [email, setEmail] = useState(''); const [showMember, setShowMember] = useState(false); const [showTip, setShowTip] = useState(false); + // eslint-disable-next-line @typescript-eslint/no-explicit-any const [userData, setUserData] = useState({}); const inputChange = (value: string) => { setEmail(value); diff --git a/packages/app/src/components/loading/page-loading.tsx b/packages/app/src/components/loading/page-loading.tsx index 5b12693930..e4a802fa62 100644 --- a/packages/app/src/components/loading/page-loading.tsx +++ b/packages/app/src/components/loading/page-loading.tsx @@ -2,7 +2,7 @@ import { styled } from '@/styles'; import Loading from './loading'; // Used for the full page loading -const StyledLoadingContainer = styled('div')(({ theme }) => { +const StyledLoadingContainer = styled('div')(() => { return { height: '100vh', display: 'flex', diff --git a/packages/app/src/components/login-modal/index.tsx b/packages/app/src/components/login-modal/index.tsx index 3aa71a2f2b..8c2429c0eb 100644 --- a/packages/app/src/components/login-modal/index.tsx +++ b/packages/app/src/components/login-modal/index.tsx @@ -1,7 +1,7 @@ import { ResetIcon } from '@blocksuite/icons'; import { styled } from '@/styles'; import { Modal, ModalWrapper, ModalCloseButton } from '@/ui/modal'; -import { TextButton, Button } from '@/ui/button'; +import { TextButton } from '@/ui/button'; import { GoogleLoginButton, StayLogOutButton } from './LoginOptionButton'; interface LoginModalProps { diff --git a/packages/app/src/components/page-list/styles.ts b/packages/app/src/components/page-list/styles.ts index 68f849c6ac..28cb0a2139 100644 --- a/packages/app/src/components/page-list/styles.ts +++ b/packages/app/src/components/page-list/styles.ts @@ -1,6 +1,5 @@ -import { displayFlex, styled, textEllipsis } from '@/styles'; +import { displayFlex, styled } from '@/styles'; import { TableRow } from '@/ui/table'; -import Link from 'next/link'; export const StyledTableContainer = styled.div(() => { return { @@ -37,7 +36,7 @@ export const StyledTitleLink = styled.div(({ theme }) => { }; }); -export const StyledTableRow = styled(TableRow)(({ theme }) => { +export const StyledTableRow = styled(TableRow)(() => { return { cursor: 'pointer', '&:hover': { diff --git a/packages/app/src/components/provider-composer.ts b/packages/app/src/components/provider-composer.ts index 188d0b76fb..23691240ba 100644 --- a/packages/app/src/components/provider-composer.ts +++ b/packages/app/src/components/provider-composer.ts @@ -2,10 +2,12 @@ import { cloneElement, FC, PropsWithChildren, ReactNode } from 'react'; export const ProviderComposer: FC< PropsWithChildren<{ + // eslint-disable-next-line @typescript-eslint/no-explicit-any contexts: any; }> > = ({ contexts, children }) => contexts.reduceRight( + // eslint-disable-next-line @typescript-eslint/no-explicit-any (kids: ReactNode, parent: any) => cloneElement(parent, { children: kids, diff --git a/packages/app/src/components/shortcuts-modal/style.ts b/packages/app/src/components/shortcuts-modal/style.ts index 7021c46825..fabe9b3fee 100644 --- a/packages/app/src/components/shortcuts-modal/style.ts +++ b/packages/app/src/components/shortcuts-modal/style.ts @@ -38,7 +38,7 @@ export const StyledSubTitle = styled.div(({ theme }) => ({ marginTop: '28px', padding: '0 16px', })); -export const StyledModalHeader = styled.div(({ theme }) => ({ +export const StyledModalHeader = styled.div(() => ({ ...displayFlex('space-between', 'center'), paddingTop: '8px 4px 0 4px', width: '100%', diff --git a/packages/app/src/components/simple-counter/index.ts b/packages/app/src/components/simple-counter/index.ts index 3ca589fa6d..3f63324fa2 100644 --- a/packages/app/src/components/simple-counter/index.ts +++ b/packages/app/src/components/simple-counter/index.ts @@ -50,10 +50,10 @@ export class Counter extends LitElement { `; } - private _increment(e: Event) { + private _increment() { this.count++; } - private _subtract(e: Event) { + private _subtract() { this.count--; } } diff --git a/packages/app/src/components/workspace-layout/styles.ts b/packages/app/src/components/workspace-layout/styles.ts index 7bffcc3bd8..e935901b3e 100644 --- a/packages/app/src/components/workspace-layout/styles.ts +++ b/packages/app/src/components/workspace-layout/styles.ts @@ -10,7 +10,7 @@ export const StyledPage = styled('div')(({ theme }) => { }; }); -export const StyledWrapper = styled('div')(({ theme }) => { +export const StyledWrapper = styled('div')(() => { return { flexGrow: 1, position: 'relative', diff --git a/packages/app/src/components/workspace-setting/general/delete/style.ts b/packages/app/src/components/workspace-setting/general/delete/style.ts index 36cb07ee08..0e3c607e40 100644 --- a/packages/app/src/components/workspace-setting/general/delete/style.ts +++ b/packages/app/src/components/workspace-setting/general/delete/style.ts @@ -1,5 +1,4 @@ import { styled } from '@/styles'; -import { Button } from '@/ui/button'; export const StyledModalWrapper = styled('div')(({ theme }) => { return { @@ -24,7 +23,7 @@ export const StyledModalHeader = styled('div')(({ theme }) => { // export const StyledModalContent = styled('div')(({ theme }) => {}); -export const StyledTextContent = styled('div')(({ theme }) => { +export const StyledTextContent = styled('div')(() => { return { margin: 'auto', width: '425px', @@ -37,7 +36,7 @@ export const StyledTextContent = styled('div')(({ theme }) => { }; }); -export const StyledInputContent = styled('div')(({ theme }) => { +export const StyledInputContent = styled('div')(() => { return { display: 'flex', flexDirection: 'row', @@ -46,7 +45,7 @@ export const StyledInputContent = styled('div')(({ theme }) => { }; }); -export const StyledButtonContent = styled('div')(({ theme }) => { +export const StyledButtonContent = styled('div')(() => { return { display: 'flex', flexDirection: 'row', @@ -55,7 +54,7 @@ export const StyledButtonContent = styled('div')(({ theme }) => { }; }); -export const StyledWorkspaceName = styled('span')(({ theme }) => { +export const StyledWorkspaceName = styled('span')(() => { return { color: '#E8178A', }; diff --git a/packages/app/src/components/workspace-setting/general/leave/leave.tsx b/packages/app/src/components/workspace-setting/general/leave/leave.tsx index 43205c4141..52d9c9aa59 100644 --- a/packages/app/src/components/workspace-setting/general/leave/leave.tsx +++ b/packages/app/src/components/workspace-setting/general/leave/leave.tsx @@ -1,16 +1,12 @@ import Modal from '@/ui/modal'; -import Input from '@/ui/input'; import { StyledModalHeader, StyledTextContent, StyledModalWrapper, StyledButtonContent, } from './style'; -import { useState } from 'react'; import { ModalCloseButton } from '@/ui/modal'; import { Button } from '@/ui/button'; -import { useRouter } from 'next/router'; -import { useAppState } from '@/providers/app-state-provider'; interface WorkspaceDeleteProps { open: boolean; @@ -20,17 +16,7 @@ interface WorkspaceDeleteProps { nextWorkSpaceId: string; } -export const WorkspaceDelete = ({ - open, - onClose, - workspaceId, - workspaceName, - nextWorkSpaceId, -}: WorkspaceDeleteProps) => { - const [deleteStr, setDeleteStr] = useState(''); - const router = useRouter(); - // const { refreshWorkspacesMeta } = useAppState(); - +export const WorkspaceDelete = ({ open, onClose }: WorkspaceDeleteProps) => { const handleLeave = async () => { // TODO }; diff --git a/packages/app/src/components/workspace-setting/general/leave/style.ts b/packages/app/src/components/workspace-setting/general/leave/style.ts index f20f720de4..1d9696af37 100644 --- a/packages/app/src/components/workspace-setting/general/leave/style.ts +++ b/packages/app/src/components/workspace-setting/general/leave/style.ts @@ -1,5 +1,4 @@ import { styled } from '@/styles'; -import { Button } from '@/ui/button'; export const StyledModalWrapper = styled('div')(({ theme }) => { return { @@ -24,7 +23,7 @@ export const StyledModalHeader = styled('div')(({ theme }) => { // export const StyledModalContent = styled('div')(({ theme }) => {}); -export const StyledTextContent = styled('div')(({ theme }) => { +export const StyledTextContent = styled('div')(() => { return { margin: 'auto', width: '425px', @@ -37,7 +36,7 @@ export const StyledTextContent = styled('div')(({ theme }) => { }; }); -export const StyledButtonContent = styled('div')(({ theme }) => { +export const StyledButtonContent = styled('div')(() => { return { display: 'flex', flexDirection: 'row', diff --git a/packages/app/src/components/workspace-setting/general/style.ts b/packages/app/src/components/workspace-setting/general/style.ts index bd34ccdb59..19e8c98b0b 100644 --- a/packages/app/src/components/workspace-setting/general/style.ts +++ b/packages/app/src/components/workspace-setting/general/style.ts @@ -1,19 +1,19 @@ import { styled } from '@/styles'; import MuiAvatar from '@mui/material/Avatar'; -export const StyledSettingInputContainer = styled('div')(({ theme }) => { +export const StyledSettingInputContainer = styled('div')(() => { return { marginTop: '12px', }; }); -export const StyledDeleteButtonContainer = styled('div')(({ theme }) => { +export const StyledDeleteButtonContainer = styled('div')(() => { return { marginTop: '154px', }; }); -export const StyledSettingAvatarContent = styled('div')(({ theme }) => { +export const StyledSettingAvatarContent = styled('div')(() => { return { marginTop: '12px', display: 'flex', @@ -23,6 +23,6 @@ export const StyledSettingAvatarContent = styled('div')(({ theme }) => { }; }); -export const StyledSettingAvatar = styled(MuiAvatar)(({ theme }) => { +export const StyledSettingAvatar = styled(MuiAvatar)(() => { return { height: '72px', width: '72px' }; }); diff --git a/packages/app/src/components/workspace-setting/workspace-setting.tsx b/packages/app/src/components/workspace-setting/workspace-setting.tsx index c456caad24..a0e28ad240 100644 --- a/packages/app/src/components/workspace-setting/workspace-setting.tsx +++ b/packages/app/src/components/workspace-setting/workspace-setting.tsx @@ -1,6 +1,5 @@ import Modal, { ModalCloseButton } from '@/ui/modal'; import { - StyledAvatarUploadBtn, StyledCopyButtonContainer, StyledMemberAvatar, StyledMemberButtonContainer, @@ -33,7 +32,7 @@ import { EmailIcon, TrashIcon, } from '@blocksuite/icons'; -import { useEffect, useState } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import { Button, IconButton } from '@/ui/button'; import Input from '@/ui/input'; import { InviteMembers } from '../invite-members/index'; @@ -51,7 +50,6 @@ import { Empty } from '@/ui/empty'; import { useAppState } from '@/providers/app-state-provider'; import { WorkspaceDetails } from '../workspace-slider-bar/WorkspaceSelector/SelectorPopperContent'; import { GeneralPage } from './general'; -import { Workspace as StoreWorkspaces } from '@blocksuite/store'; enum ActiveTab { 'general' = 'general', @@ -170,7 +168,7 @@ export const WorkspaceSetting = ({ const MembersPage = ({ workspace }: { workspace: Workspace }) => { const [isInviteModalShow, setIsInviteModalShow] = useState(false); const [members, setMembers] = useState([]); - const refreshMembers = () => { + const refreshMembers = useCallback(() => { getWorkspaceMembers({ id: workspace.id, }) @@ -180,10 +178,10 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => { .catch(err => { console.log(err); }); - }; + }, [workspace.id]); useEffect(() => { refreshMembers(); - }, [workspace.id]); + }, [refreshMembers]); return (
@@ -240,7 +238,7 @@ const MembersPage = ({ workspace }: { workspace: Workspace }) => { // }).then(confirm => { removeMember({ permissionId: member.id, - }).then(data => { + }).then(() => { // console.log('data: ', data); toast('Moved to Trash'); refreshMembers(); @@ -300,7 +298,7 @@ const PublishPage = ({ workspace }: { workspace: Workspace }) => { updateWorkspace({ id: workspace.id, public: flag, - }).then(data => { + }).then(() => { setPublicStatus(!publicStatus); toast('Updated'); }); diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/SelectorPopperContent.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/SelectorPopperContent.tsx index f6039e0f0b..8c2a166cfd 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/SelectorPopperContent.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/SelectorPopperContent.tsx @@ -47,7 +47,7 @@ export const SelectorPopperContent = ({ const refreshDetails = useCallback(async () => { const workspaceDetailList = await Promise.all( - workspacesMeta?.map(async ({ id, type }) => { + workspacesMeta.map(async ({ id, type }) => { if (user) { if (type === WorkspaceType.Private) { return { id, member_count: 1, owner: user }; @@ -81,7 +81,7 @@ export const SelectorPopperContent = ({ refreshWorkspacesMeta(); refreshDetails(); } - }, [isShow]); + }, [isShow, refreshDetails, refreshWorkspacesMeta]); return !user ? ( @@ -168,7 +168,7 @@ const WorkspaceGroupTitle = styled('div')(({ theme }) => { }; }); -const WorkspaceWrapper = styled('div')(({ theme }) => { +const WorkspaceWrapper = styled('div')(() => { return { maxHeight: '200px', overflow: 'auto', diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/style.ts b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/style.ts index 7b66216661..4c5162a94f 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/style.ts +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/style.ts @@ -24,7 +24,7 @@ export const StyledModalHeader = styled('div')(({ theme }) => { // export const StyledModalContent = styled('div')(({ theme }) => {}); -export const StyledTextContent = styled('div')(({ theme }) => { +export const StyledTextContent = styled('div')(() => { return { margin: 'auto', width: '425px', @@ -37,7 +37,7 @@ export const StyledTextContent = styled('div')(({ theme }) => { }; }); -export const StyledInputContent = styled('div')(({ theme }) => { +export const StyledInputContent = styled('div')(() => { return { display: 'flex', flexDirection: 'row', @@ -46,7 +46,7 @@ export const StyledInputContent = styled('div')(({ theme }) => { }; }); -export const StyledButtonContent = styled('div')(({ theme }) => { +export const StyledButtonContent = styled('div')(() => { return { display: 'flex', flexDirection: 'row', @@ -55,7 +55,7 @@ export const StyledButtonContent = styled('div')(({ theme }) => { }; }); -export const StyledButton = styled(Button)(({ theme }) => { +export const StyledButton = styled(Button)(() => { return { width: '260px', justifyContent: 'center', diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/workspace-create.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/workspace-create.tsx index 2a48e7d4a1..73962f93c0 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/workspace-create.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/CreateWorkspaceItem/workspace-create/workspace-create.tsx @@ -1,8 +1,4 @@ -import { - createWorkspace, - getBlob, - uploadBlob, -} from '@pathfinder/data-services'; +import { createWorkspace, uploadBlob } from '@pathfinder/data-services'; import Modal from '@/ui/modal'; import Input from '@/ui/input'; import { diff --git a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/WorkspaceItem/FooterSetting.tsx b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/WorkspaceItem/FooterSetting.tsx index b82fc7d781..eb761058b6 100644 --- a/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/WorkspaceItem/FooterSetting.tsx +++ b/packages/app/src/components/workspace-slider-bar/WorkspaceSelector/WorkspaceItem/WorkspaceItem/FooterSetting.tsx @@ -25,7 +25,7 @@ export const FooterSetting = ({ onClick }: SettingProps) => { ); }; -const Wrapper = styled(IconButton)(({ theme }) => { +const Wrapper = styled(IconButton)(() => { return { fontSize: '20px', }; diff --git a/packages/app/src/components/workspace-slider-bar/index.tsx b/packages/app/src/components/workspace-slider-bar/index.tsx index c1b9ef2970..966b1c971a 100644 --- a/packages/app/src/components/workspace-slider-bar/index.tsx +++ b/packages/app/src/components/workspace-slider-bar/index.tsx @@ -19,7 +19,6 @@ import { ImportIcon, TrashIcon, AddIcon, - FavouritedIcon, } from '@blocksuite/icons'; import Link from 'next/link'; import { Tooltip } from '@/ui/tooltip'; @@ -29,7 +28,6 @@ import { useAppState } from '@/providers/app-state-provider/context'; import { IconButton } from '@/ui/button'; import { WorkspaceSelector } from './WorkspaceSelector'; import useLocalStorage from '@/hooks/use-local-storage'; -import { useTranslation } from '@/libs/i18n'; import usePageMetaList from '@/hooks/use-page-meta-list'; import { usePageHelper } from '@/hooks/use-page-helper'; @@ -73,7 +71,6 @@ export const WorkSpaceSliderBar = () => { const [showTip, setShowTip] = useState(false); const [show, setShow] = useLocalStorage('AFFINE_SLIDE_BAR', false, true); - const { t } = useTranslation(); const paths = { all: currentWorkspaceId ? `/workspace/${currentWorkspaceId}/all` : '', diff --git a/packages/app/src/components/workspace-slider-bar/style.ts b/packages/app/src/components/workspace-slider-bar/style.ts index acc936f7ea..2cb6b4e53f 100644 --- a/packages/app/src/components/workspace-slider-bar/style.ts +++ b/packages/app/src/components/workspace-slider-bar/style.ts @@ -78,7 +78,7 @@ export const StyledListItemForWorkspace = styled(StyledListItem)({ height: '52px', }); -export const StyledLink = styled(Link)(({ theme }) => { +export const StyledLink = styled(Link)(() => { return { flexGrow: 1, textAlign: 'left', @@ -93,7 +93,7 @@ export const StyledLink = styled(Link)(({ theme }) => { }, }; }); -export const StyledNewPageButton = styled(StyledListItem)(({ theme }) => { +export const StyledNewPageButton = styled(StyledListItem)(() => { return { position: 'absolute', bottom: '24px', diff --git a/packages/app/src/hooks/use-current-page-meta.ts b/packages/app/src/hooks/use-current-page-meta.ts index 36ccf4befe..0dbdfc20fc 100644 --- a/packages/app/src/hooks/use-current-page-meta.ts +++ b/packages/app/src/hooks/use-current-page-meta.ts @@ -9,7 +9,7 @@ export const useCurrentPageMeta = (): PageMeta | null => { return null; } return ( - (currentWorkspace?.meta.pageMetas.find( + (currentWorkspace.meta.pageMetas.find( p => p.id === currentPage.pageId ) as PageMeta) ?? null ); @@ -22,7 +22,7 @@ export const useCurrentPageMeta = (): PageMeta | null => { useEffect(() => { setCurrentPageMeta(pageMetaHandler); - const dispose = currentWorkspace?.meta.pagesUpdated.on(res => { + const dispose = currentWorkspace?.meta.pagesUpdated.on(() => { setCurrentPageMeta(pageMetaHandler); }).dispose; diff --git a/packages/app/src/hooks/use-init-workspace.ts b/packages/app/src/hooks/use-init-workspace.ts index df628c1a75..1866e69b4c 100644 --- a/packages/app/src/hooks/use-init-workspace.ts +++ b/packages/app/src/hooks/use-init-workspace.ts @@ -28,7 +28,7 @@ export const useInitWorkspace = (disabled?: boolean) => { loadWorkspace(workspaceId).finally(() => { setLoading(false); }); - }, [workspaceId, disabled]); + }, [workspaceId, disabled, loadWorkspace]); return { workspaceId, diff --git a/packages/app/src/hooks/use-page-helper.ts b/packages/app/src/hooks/use-page-helper.ts index e527df69dc..58c2c5497c 100644 --- a/packages/app/src/hooks/use-page-helper.ts +++ b/packages/app/src/hooks/use-page-helper.ts @@ -59,6 +59,7 @@ export const usePageHelper = (): EditorHandlers => { return trash; }, search: (query: QueryContent) => { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return currentWorkspace!.search(query); }, changePageMode: async (pageId, mode) => { @@ -76,6 +77,7 @@ export const usePageHelper = (): EditorHandlers => { }, permanentlyDeletePage: pageId => { // TODO: workspace.meta.removePage or workspace.removePage? + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion currentWorkspace!.meta.removePage(pageId); }, openPage: (pageId, query = {}, newTab = false) => { diff --git a/packages/app/src/libs/i18n/scripts/api.ts b/packages/app/src/libs/i18n/scripts/api.ts index 44f8a574fd..0cd1a156b4 100644 --- a/packages/app/src/libs/i18n/scripts/api.ts +++ b/packages/app/src/libs/i18n/scripts/api.ts @@ -103,6 +103,7 @@ export const getRemoteTranslations = async (languages: string) => { return {}; } // The assert is safe because we checked above + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return translations[languages]!; }; @@ -162,11 +163,11 @@ export const removeTag = async (keyId: string, tagId: number) => { return json; }; -export const addTagByKey = async (key: string, tag: string) => { - // TODO get key id by key name - // const keyId = - // addTag(keyId, tag); -}; +// export const addTagByKey = async (key: string, tag: string) => { +// // TODO get key id by key name +// // const keyId = +// // addTag(keyId, tag); +// }; /** * Exports data diff --git a/packages/app/src/libs/i18n/scripts/download.ts b/packages/app/src/libs/i18n/scripts/download.ts index 11e819f83b..a43e84bf22 100644 --- a/packages/app/src/libs/i18n/scripts/download.ts +++ b/packages/app/src/libs/i18n/scripts/download.ts @@ -9,7 +9,8 @@ const RES_DIR = path.resolve(process.cwd(), 'src', 'resources'); const countKeys = (obj: TranslationRes) => { let count = 0; - Object.entries(obj).forEach(([key, value]) => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Object.entries(obj).forEach(([_, value]) => { if (typeof value === 'string') { count++; } else { @@ -101,6 +102,7 @@ const main = async () => { export const LOCALES = [ ${availableLanguages + // eslint-disable-next-line @typescript-eslint/no-unused-vars .map(({ translations, ...language }) => JSON.stringify({ ...language, diff --git a/packages/app/src/libs/i18n/scripts/sync.ts b/packages/app/src/libs/i18n/scripts/sync.ts index 0a9a96b415..80b16a5024 100644 --- a/packages/app/src/libs/i18n/scripts/sync.ts +++ b/packages/app/src/libs/i18n/scripts/sync.ts @@ -1,7 +1,7 @@ // cSpell:ignore Tolgee import { readFile } from 'fs/promises'; import path from 'path'; -import { addTagByKey, createsNewKey, getRemoteTranslations } from './api'; +import { createsNewKey, getRemoteTranslations } from './api'; import type { TranslationRes } from './utils'; const BASE_JSON_PATH = path.resolve( @@ -12,8 +12,6 @@ const BASE_JSON_PATH = path.resolve( ); const BASE_LANGUAGES = 'en' as const; -const DEPRECATED_TAG_NAME = 'unused' as const; - /** * * @example @@ -140,15 +138,15 @@ const main = async () => { // TODO remove unused tags from used keys - diff.remove.forEach(key => { - // TODO set unused tag - // console.log(`Add ${DEPRECATED_TAG_NAME} to ${key}`); - addTagByKey(key, DEPRECATED_TAG_NAME); - }); + // diff.remove.forEach(key => { + // // TODO set unused tag + // // console.log(`Add ${DEPRECATED_TAG_NAME} to ${key}`); + // addTagByKey(key, DEPRECATED_TAG_NAME); + // }); - diff.modify.forEach(key => { - // TODO warn different between local and remote base translations - }); + // diff.modify.forEach(key => { + // // TODO warn different between local and remote base translations + // }); // TODO send notification }; diff --git a/packages/app/src/pages/invite/[invite_code].tsx b/packages/app/src/pages/invite/[invite_code].tsx index f6b0985904..e068dfc271 100644 --- a/packages/app/src/pages/invite/[invite_code].tsx +++ b/packages/app/src/pages/invite/[invite_code].tsx @@ -21,6 +21,7 @@ const User = ({ name, avatar }: { name: string; avatar?: string }) => { export default function DevPage() { const router = useRouter(); const [successInvited, setSuccessInvited] = useState(false); + // eslint-disable-next-line @typescript-eslint/no-explicit-any const [inviteData, setInviteData] = useState(null); useEffect(() => { acceptInviting({ invitingCode: router.query.invite_code as string }) @@ -55,8 +56,8 @@ export default function DevPage() { > @@ -82,8 +83,8 @@ export default function DevPage() { fill="#6880FF" /> diff --git a/packages/app/src/pages/workspace/[workspaceId]/[pageId].tsx b/packages/app/src/pages/workspace/[workspaceId]/[pageId].tsx index 8fc7989363..7e7fb325ec 100644 --- a/packages/app/src/pages/workspace/[workspaceId]/[pageId].tsx +++ b/packages/app/src/pages/workspace/[workspaceId]/[pageId].tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-non-null-assertion */ import { useRef, useEffect, @@ -15,7 +16,7 @@ import type { NextPageWithLayout } from '../..//_app'; import WorkspaceLayout from '@/components/workspace-layout'; import { useRouter } from 'next/router'; -const StyledEditorContainer = styled('div')(({ theme }) => { +const StyledEditorContainer = styled('div')(() => { return { height: 'calc(100vh - 60px)', }; diff --git a/packages/app/src/pages/workspace/[workspaceId]/index.tsx b/packages/app/src/pages/workspace/[workspaceId]/index.tsx index b326e2d703..2b3bc8f8bd 100644 --- a/packages/app/src/pages/workspace/[workspaceId]/index.tsx +++ b/packages/app/src/pages/workspace/[workspaceId]/index.tsx @@ -13,7 +13,7 @@ const WorkspaceIndex = () => { if (!workspace) { return; } - const savedPageId = workspace!.meta.pageMetas[0]?.id; + const savedPageId = workspace.meta.pageMetas[0]?.id; if (savedPageId) { router.replace(`/workspace/${currentWorkspaceId}/${savedPageId}`); return; diff --git a/packages/app/src/pages/workspace/index.tsx b/packages/app/src/pages/workspace/index.tsx index c9c5886a7f..244c91763a 100644 --- a/packages/app/src/pages/workspace/index.tsx +++ b/packages/app/src/pages/workspace/index.tsx @@ -10,7 +10,7 @@ export const WorkspaceIndex = () => { if (workspace) { router.push(`/workspace/${workspaceId}`); } - }, [workspace, workspaceId]); + }, [router, workspace, workspaceId]); return <>; }; diff --git a/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx b/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx index d9667f5c31..07affa0d36 100644 --- a/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx +++ b/packages/app/src/providers/app-state-provider/dynamic-blocksuite.tsx @@ -8,11 +8,7 @@ import { import '@blocksuite/blocks'; import '@blocksuite/blocks/style'; import { BlockSchema, createEditor } from '@blocksuite/editor'; -import type { - AppStateContext, - LoadWorkspaceHandler, - CreateEditorHandler, -} from './context'; +import type { LoadWorkspaceHandler, CreateEditorHandler } from './context'; import { downloadWorkspace, token, diff --git a/packages/app/src/providers/app-state-provider/provider.tsx b/packages/app/src/providers/app-state-provider/provider.tsx index ad5d5d697b..74413cc94c 100644 --- a/packages/app/src/providers/app-state-provider/provider.tsx +++ b/packages/app/src/providers/app-state-provider/provider.tsx @@ -75,6 +75,7 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => { workspaces, })); })(); + // eslint-disable-next-line react-hooks/exhaustive-deps }, [state.workspacesMeta]); const [loadWorkspaceHandler, _setLoadWorkspaceHandler] = diff --git a/packages/app/src/providers/confirm-provider.tsx b/packages/app/src/providers/confirm-provider.tsx index 116c047ee7..cc349f3c60 100644 --- a/packages/app/src/providers/confirm-provider.tsx +++ b/packages/app/src/providers/confirm-provider.tsx @@ -22,8 +22,8 @@ export const ConfirmProvider = ({ return ( { - return new Promise((resolve, reject) => { + confirm: ({ onCancel, onConfirm, ...props }: ConfirmProps) => { + return new Promise(resolve => { const confirmId = String(Date.now()); const closeHandler = () => { delete confirmRecord[confirmId]; diff --git a/packages/app/src/providers/global-modal-provider.tsx b/packages/app/src/providers/global-modal-provider.tsx index 06cc894e23..76a0365dfc 100644 --- a/packages/app/src/providers/global-modal-provider.tsx +++ b/packages/app/src/providers/global-modal-provider.tsx @@ -1,5 +1,11 @@ /* eslint-disable @typescript-eslint/no-empty-function */ -import { createContext, useContext, useEffect, useState } from 'react'; +import { + createContext, + useCallback, + useContext, + useEffect, + useState, +} from 'react'; import type { PropsWithChildren } from 'react'; import ShortcutsModal from '@/components/shortcuts-modal'; import ContactModal from '@/components/contact-modal'; @@ -26,7 +32,7 @@ type ModalMap = { export const ModalContext = createContext({ triggerShortcutsModal: () => {}, triggerContactModal: () => {}, - triggerQuickSearchModal: (visible?) => {}, + triggerQuickSearchModal: () => {}, triggerImportModal: () => {}, triggerLoginModal: () => {}, }); @@ -44,12 +50,15 @@ export const ModalProvider = ({ login: false, }); - const triggerHandler = (key: keyof ModalMap, visible?: boolean) => { - setModalMap({ - ...modalMap, - [key]: visible ?? !modalMap[key], - }); - }; + const triggerHandler = useCallback( + (key: keyof ModalMap, visible?: boolean) => { + setModalMap({ + ...modalMap, + [key]: visible ?? !modalMap[key], + }); + }, + [modalMap] + ); useEffect(() => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore diff --git a/packages/app/src/providers/themeProvider.tsx b/packages/app/src/providers/themeProvider.tsx index 9facac4dbb..07616f28e7 100644 --- a/packages/app/src/providers/themeProvider.tsx +++ b/packages/app/src/providers/themeProvider.tsx @@ -99,7 +99,10 @@ export const ThemeProvider = ({ diff --git a/packages/app/src/ui/button/button.tsx b/packages/app/src/ui/button/button.tsx index 2157fd3256..7e57202717 100644 --- a/packages/app/src/ui/button/button.tsx +++ b/packages/app/src/ui/button/button.tsx @@ -1,12 +1,4 @@ -import { - HTMLAttributes, - cloneElement, - ReactElement, - Children, - CSSProperties, - forwardRef, - PropsWithChildren, -} from 'react'; +import { cloneElement, Children, forwardRef } from 'react'; import { StyledButton } from './styles'; import { ButtonProps } from './interface'; diff --git a/packages/app/src/ui/button/styles.ts b/packages/app/src/ui/button/styles.ts index 503261a1be..54cda81dcc 100644 --- a/packages/app/src/ui/button/styles.ts +++ b/packages/app/src/ui/button/styles.ts @@ -113,6 +113,7 @@ export const StyledTextButton = styled('button', { bold = false, shape = 'default', // TODO: Implement type + // eslint-disable-next-line @typescript-eslint/no-unused-vars type = 'default', }) => { const { fontSize, borderRadius, padding, height } = getSize(size); diff --git a/packages/app/src/ui/confirm/styles.ts b/packages/app/src/ui/confirm/styles.ts index 731b95f274..ef2c86155d 100644 --- a/packages/app/src/ui/confirm/styles.ts +++ b/packages/app/src/ui/confirm/styles.ts @@ -1,7 +1,7 @@ import { displayFlex, styled } from '@/styles'; import { ModalWrapper } from '@/ui/modal'; -export const StyledModalWrapper = styled(ModalWrapper)(({ theme }) => { +export const StyledModalWrapper = styled(ModalWrapper)(() => { return { width: '460px', padding: '46px 60px 32px', diff --git a/packages/app/src/ui/input/input.tsx b/packages/app/src/ui/input/input.tsx index b92646bca3..b3a702e4f3 100644 --- a/packages/app/src/ui/input/input.tsx +++ b/packages/app/src/ui/input/input.tsx @@ -9,6 +9,7 @@ type inputProps = { maxLength?: number; minLength?: number; onChange?: (value: string) => void; + // eslint-disable-next-line @typescript-eslint/no-explicit-any onBlur?: (e: any) => void; }; diff --git a/packages/app/src/ui/layout/content.tsx b/packages/app/src/ui/layout/content.tsx index 42db310df9..510f3886a6 100644 --- a/packages/app/src/ui/layout/content.tsx +++ b/packages/app/src/ui/layout/content.tsx @@ -1,4 +1,4 @@ -import React, { CSSProperties } from 'react'; +import { CSSProperties } from 'react'; import { styled, textEllipsis } from '@/styles'; // This component should be just used to be contained the text content diff --git a/packages/app/src/ui/layout/wrapper.tsx b/packages/app/src/ui/layout/wrapper.tsx index bf92d4c774..00584b20f0 100644 --- a/packages/app/src/ui/layout/wrapper.tsx +++ b/packages/app/src/ui/layout/wrapper.tsx @@ -1,4 +1,4 @@ -import type { CSSProperties, HTMLAttributes, PropsWithChildren } from 'react'; +import type { CSSProperties } from 'react'; import { styled } from '@/styles'; export type WrapperProps = { diff --git a/packages/app/src/ui/menu/styles.ts b/packages/app/src/ui/menu/styles.ts index f1f4ef1764..8679b4a153 100644 --- a/packages/app/src/ui/menu/styles.ts +++ b/packages/app/src/ui/menu/styles.ts @@ -13,14 +13,12 @@ export const StyledMenuWrapper = styled(StyledPopperContainer)(({ theme }) => { }; }); -export const StyledArrow = styled(ArrowRightIcon)(({ theme }) => { - return { - position: 'absolute', - right: 0, - top: 0, - bottom: 0, - margin: 'auto', - }; +export const StyledArrow = styled(ArrowRightIcon)({ + position: 'absolute', + right: 0, + top: 0, + bottom: 0, + margin: 'auto', }); export const StyledMenuItem = styled.button<{ diff --git a/packages/app/src/ui/modal/modal-wrapper.tsx b/packages/app/src/ui/modal/modal-wrapper.tsx index 331930448e..f924b58966 100644 --- a/packages/app/src/ui/modal/modal-wrapper.tsx +++ b/packages/app/src/ui/modal/modal-wrapper.tsx @@ -1,4 +1,4 @@ -import React, { CSSProperties, HTMLAttributes, PropsWithChildren } from 'react'; +import { CSSProperties } from 'react'; import { styled } from '@/styles'; export const ModalWrapper = styled.div<{ diff --git a/packages/app/src/ui/modal/modal.tsx b/packages/app/src/ui/modal/modal.tsx index d77a4f50f0..705f56ab6a 100644 --- a/packages/app/src/ui/modal/modal.tsx +++ b/packages/app/src/ui/modal/modal.tsx @@ -1,5 +1,5 @@ import Fade from '@mui/material/Fade'; -import { StyledModal, StyledBackdrop, StyledWrapper } from './styles'; +import { StyledModal, StyledBackdrop } from './styles'; import { ModalUnstyledOwnProps } from '@mui/base/ModalUnstyled'; const Backdrop = ({ @@ -11,7 +11,7 @@ const Backdrop = ({ }) => { return ( - + ); }; @@ -31,7 +31,6 @@ const transformConfig = { export const Modal = (props: ModalProps) => { const { wrapperPosition = ['center', 'center'], - components, open, children, ...otherProps diff --git a/packages/app/src/ui/modal/styles.ts b/packages/app/src/ui/modal/styles.ts index 33938f81ee..4af9cb397c 100644 --- a/packages/app/src/ui/modal/styles.ts +++ b/packages/app/src/ui/modal/styles.ts @@ -3,16 +3,14 @@ import ModalUnstyled from '@mui/base/ModalUnstyled'; import { Wrapper } from '@/ui/layout'; import { CSSProperties } from 'react'; -export const StyledBackdrop = styled.div<{ open?: boolean }>(({ open }) => { - return { - zIndex: '-1', - position: 'fixed', - right: '0', - bottom: '0', - top: '0', - left: '0', - backgroundColor: 'rgba(58, 76, 92, 0.2)', - }; +export const StyledBackdrop = styled.div({ + zIndex: '-1', + position: 'fixed', + right: '0', + bottom: '0', + top: '0', + left: '0', + backgroundColor: 'rgba(58, 76, 92, 0.2)', }); export const StyledModal = styled(ModalUnstyled, { diff --git a/packages/app/src/ui/table/index.ts b/packages/app/src/ui/table/index.ts index f9c589659b..cfe7cea9ad 100644 --- a/packages/app/src/ui/table/index.ts +++ b/packages/app/src/ui/table/index.ts @@ -1,6 +1,6 @@ // import Table from '@mui/material/Table'; // import TableBody from '@mui/material/TableBody'; -import TableCell from '@mui/material/TableCell'; +// import TableCell from '@mui/material/TableCell'; // import TableHead from '@mui/material/TableHead'; // import TableRow from '@mui/material/TableRow'; // diff --git a/packages/app/src/ui/table/styles.ts b/packages/app/src/ui/table/styles.ts index 9850bc8b43..009888e8b1 100644 --- a/packages/app/src/ui/table/styles.ts +++ b/packages/app/src/ui/table/styles.ts @@ -14,7 +14,7 @@ export const StyledTable = styled.table<{ tableLayout: 'auto' | 'fixed' }>( } ); -export const StyledTableBody = styled.tbody(({ theme }) => { +export const StyledTableBody = styled.tbody(() => { return { fontWeight: 400, }; @@ -22,7 +22,7 @@ export const StyledTableBody = styled.tbody(({ theme }) => { export const StyledTableCell = styled.td< Pick ->(({ theme, align = 'left', ellipsis = false, proportion }) => { +>(({ align = 'left', ellipsis = false, proportion }) => { const width = proportion ? `${proportion * 100}%` : 'auto'; return { width, @@ -37,7 +37,7 @@ export const StyledTableCell = styled.td< }; }); -export const StyledTableHead = styled.thead(({ theme }) => { +export const StyledTableHead = styled.thead(() => { return { fontWeight: 500, tr: { diff --git a/packages/app/src/utils/get-is-mobile.ts b/packages/app/src/utils/get-is-mobile.ts index 4399da501b..1755a40061 100644 --- a/packages/app/src/utils/get-is-mobile.ts +++ b/packages/app/src/utils/get-is-mobile.ts @@ -13,6 +13,7 @@ export function isMobile(userAgent: string) { export const getIsMobile = function () { return isMobile( + // eslint-disable-next-line @typescript-eslint/no-explicit-any navigator?.userAgent || navigator?.vendor || (window as any)?.opera ); }; diff --git a/packages/app/src/utils/tools.ts b/packages/app/src/utils/tools.ts index fef254cd16..eaa7bc6774 100644 --- a/packages/app/src/utils/tools.ts +++ b/packages/app/src/utils/tools.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ // eslint-disable-next-line @typescript-eslint/ban-types export function debounce(fn: Function, timeout: number) { let timeoutId: any;