From bac962c1270aded1d1b34c18370d93c80e5cc151 Mon Sep 17 00:00:00 2001 From: Aine Date: Sat, 5 Apr 2025 21:37:31 +0300 Subject: [PATCH] remove unused eslint plugin, run eslint --fix, rollback node memory workaround in ci --- .github/workflows/workflow.yml | 2 - jest.config.ts | 22 +- package.json | 12 +- src/App.test.tsx | 2 +- src/App.tsx | 8 +- src/Context.tsx | 2 +- src/components/AdminLayout.tsx | 143 +++--- src/components/AvatarField.test.tsx | 5 +- src/components/AvatarField.tsx | 16 +- src/components/DeleteRoomButton.tsx | 27 +- src/components/DeleteUserButton.tsx | 29 +- src/components/DeviceRemoveButton.tsx | 1 + src/components/ExperimentalFeatures.tsx | 87 ++-- src/components/Footer.tsx | 60 +-- src/components/LoginFormBox.tsx | 105 +++-- src/components/ServerNotices.tsx | 7 +- src/components/UserAccountData.tsx | 79 ++-- src/components/UserRateLimits.tsx | 100 +++-- .../etke.cc/ServerCommandsPanel.tsx | 267 +++++------ .../etke.cc/ServerNotificationsBadge.tsx | 166 ++++--- .../etke.cc/ServerNotificationsPage.tsx | 35 +- src/components/etke.cc/ServerStatusBadge.tsx | 161 ++++--- src/components/etke.cc/ServerStatusPage.tsx | 66 +-- src/components/media.tsx | 55 +-- .../user-import/ConflictModeCard.tsx | 38 +- src/components/user-import/ErrorsCard.tsx | 29 +- src/components/user-import/ResultsCard.tsx | 46 +- .../user-import/StartImportCard.tsx | 29 +- src/components/user-import/StatsCard.tsx | 21 +- src/components/user-import/UploadCard.tsx | 14 +- src/components/user-import/UserImport.tsx | 52 ++- src/components/user-import/types.ts | 4 +- src/components/user-import/useImportFile.tsx | 18 +- src/i18n/de.ts | 31 +- src/i18n/en.ts | 15 +- src/i18n/fa.ts | 20 +- src/i18n/fr.ts | 27 +- src/i18n/index.d.ts | 8 +- src/i18n/it.ts | 418 +++++++++--------- src/i18n/ru.ts | 38 +- src/i18n/zh.ts | 17 +- src/index.tsx | 11 +- src/pages/LoginPage.test.tsx | 17 +- src/pages/LoginPage.tsx | 88 ++-- src/resources/destinations.tsx | 37 +- src/resources/registration_tokens.tsx | 10 +- src/resources/reports.tsx | 10 +- src/resources/room_directory.tsx | 11 +- src/resources/rooms.tsx | 100 +++-- src/resources/users.tsx | 281 ++++++++---- src/synapse/authProvider.test.ts | 14 +- src/synapse/authProvider.ts | 28 +- src/synapse/dataProvider.ts | 123 +++--- src/utils/config.ts | 20 +- src/utils/date.ts | 2 +- src/utils/decodeURLComponent.ts | 2 +- src/utils/error.ts | 8 +- src/utils/fetchMedia.ts | 18 +- src/utils/icons.ts | 20 +- src/utils/mxid.ts | 3 +- vite.config.ts | 30 +- yarn.lock | 169 +------ 62 files changed, 1782 insertions(+), 1502 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 4edbf6b..4c12eb5 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -24,8 +24,6 @@ jobs: node-version: lts/* cache: yarn - name: Install dependencies - env: - NODE_OPTIONS: --max-old-space-size=8192 run: yarn install --immutable --network-timeout=300000 - name: Build run: yarn build --base=${{ env.base_path }} diff --git a/jest.config.ts b/jest.config.ts index c5af96a..66fb5db 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -10,22 +10,22 @@ const config: JestConfigWithTsJest = { extensionsToTreatAsEsm: [".ts", ".tsx"], setupFilesAfterEnv: ["/src/jest.setup.ts"], transform: { - '^.+\\.tsx?$': [ - 'ts-jest', + "^.+\\.tsx?$": [ + "ts-jest", { diagnostics: { - ignoreCodes: [1343] + ignoreCodes: [1343], }, astTransformers: { before: [ { - path: 'ts-jest-mock-import-meta', - options: { metaObjectReplacement: { env: { BASE_URL: "/" } } } - } - ] - } - } - ] - } + path: "ts-jest-mock-import-meta", + options: { metaObjectReplacement: { env: { BASE_URL: "/" } } }, + }, + ], + }, + }, + ], + }, }; export default config; diff --git a/package.json b/package.json index 85f8adf..ef163cb 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-prettier": "^5.2.5", "eslint-plugin-unused-imports": "^4.1.4", - "eslint-plugin-yaml": "^1.1.2", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-fetch-mock": "^3.0.3", @@ -75,7 +74,7 @@ "scripts": { "start": "vite serve", "build": "vite build", - "lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ignore-path .gitignore --ignore-pattern testdata/ --ext .ts,.tsx,.yml,.yaml .", + "lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ignore-path .gitignore --ignore-pattern testdata/ --ext .ts,.tsx .", "fix": "yarn lint --fix", "test": "yarn jest", "test:watch": "yarn jest --watch" @@ -88,15 +87,13 @@ "import", "prettier", "unused-imports", - "@typescript-eslint", - "yaml" + "@typescript-eslint" ], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/stylistic", - "plugin:import/typescript", - "plugin:yaml/legacy" + "plugin:import/typescript" ], "parser": "@typescript-eslint/parser", "parserOptions": { @@ -135,8 +132,7 @@ ] ] } - ], - "unused-imports/no-unused-imports-ts": 2 + ] } }, "prettier": { diff --git a/src/App.test.tsx b/src/App.test.tsx index 0c76a4c..111b63d 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -1,6 +1,6 @@ import { render, screen } from "@testing-library/react"; -import { BrowserRouter } from "react-router-dom"; import fetchMock from "jest-fetch-mock"; +import { BrowserRouter } from "react-router-dom"; fetchMock.enableMocks(); jest.mock("./synapse/authProvider", () => ({ diff --git a/src/App.tsx b/src/App.tsx index 2aa2efa..2b5ed3b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,11 +1,12 @@ +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { merge } from "lodash"; import polyglotI18nProvider from "ra-i18n-polyglot"; - import { Admin, CustomRoutes, Resource, resolveBrowserLocale } from "react-admin"; - import { Route } from "react-router-dom"; import AdminLayout from "./components/AdminLayout"; +import ServerNotificationsPage from "./components/etke.cc/ServerNotificationsPage"; +import ServerStatusPage from "./components/etke.cc/ServerStatusPage"; import UserImport from "./components/user-import/UserImport"; import germanMessages from "./i18n/de"; import englishMessages from "./i18n/en"; @@ -23,9 +24,6 @@ import userMediaStats from "./resources/user_media_statistics"; import users from "./resources/users"; import authProvider from "./synapse/authProvider"; import dataProvider from "./synapse/dataProvider"; -import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -import ServerStatusPage from "./components/etke.cc/ServerStatusPage"; -import ServerNotificationsPage from "./components/etke.cc/ServerNotificationsPage"; // TODO: Can we use lazy loading together with browser locale? const messages = { diff --git a/src/Context.tsx b/src/Context.tsx index 8d1c837..82bb0ee 100644 --- a/src/Context.tsx +++ b/src/Context.tsx @@ -4,4 +4,4 @@ import { Config } from "./utils/config"; export const AppContext = createContext({} as Config); -export const useAppContext = () => useContext(AppContext) as Config; \ No newline at end of file +export const useAppContext = () => useContext(AppContext) as Config; diff --git a/src/components/AdminLayout.tsx b/src/components/AdminLayout.tsx index de72b8e..e199198 100644 --- a/src/components/AdminLayout.tsx +++ b/src/components/AdminLayout.tsx @@ -1,12 +1,25 @@ -import { CheckForApplicationUpdate, AppBar, TitlePortal, InspectorButton, Confirm, Layout, Logout, Menu, useLogout, UserMenu, useStore } from "react-admin"; -import { LoginMethod } from "../pages/LoginPage"; import { useEffect, useState, Suspense } from "react"; -import { Icons, DefaultIcon } from "../utils/icons"; -import { MenuItem, GetConfig, ClearConfig } from "../utils/config"; +import { + CheckForApplicationUpdate, + AppBar, + TitlePortal, + InspectorButton, + Confirm, + Layout, + Logout, + Menu, + useLogout, + UserMenu, + useStore, +} from "react-admin"; + import Footer from "./Footer"; -import ServerStatusBadge from "./etke.cc/ServerStatusBadge"; +import { LoginMethod } from "../pages/LoginPage"; +import { MenuItem, GetConfig, ClearConfig } from "../utils/config"; +import { Icons, DefaultIcon } from "../utils/icons"; import { ServerNotificationsBadge } from "./etke.cc/ServerNotificationsBadge"; import { ServerProcessResponse, ServerStatusResponse } from "../synapse/dataProvider"; +import ServerStatusBadge from "./etke.cc/ServerStatusBadge"; import { ServerStatusStyledBadge } from "./etke.cc/ServerStatusBadge"; const AdminUserMenu = () => { @@ -50,15 +63,17 @@ const AdminUserMenu = () => { }; const AdminAppBar = () => { - return (}> - - - - - ); + return ( + }> + + + + + + ); }; -const AdminMenu = (props) => { +const AdminMenu = props => { const [menu, setMenu] = useState([] as MenuItem[]); const [serverStatusEnabled, setServerStatusEnabled] = useState(false); useEffect(() => { @@ -67,57 +82,77 @@ const AdminMenu = (props) => { setServerStatusEnabled(true); } }, []); - const [serverProcess, setServerProcess] = useStore("serverProcess", { command: "", locked_at: "" }); - const [serverStatus, setServerStatus] = useStore("serverStatus", { success: false, ok: false, host: "", results: [] }); + const [serverProcess, setServerProcess] = useStore("serverProcess", { + command: "", + locked_at: "", + }); + const [serverStatus, setServerStatus] = useStore("serverStatus", { + success: false, + ok: false, + host: "", + results: [], + }); return ( - {serverStatusEnabled && - } - primaryText="Server Status" /> - } - - {menu && menu.map((item, index) => { - const { url, icon, label } = item; - const IconComponent = Icons[icon] as React.ComponentType | undefined; - - return ( - - : } - onClick={props.onMenuClick} + {serverStatusEnabled && ( + - - ); - })} + } + primaryText="Server Status" + /> + )} + + {menu && + menu.map((item, index) => { + const { url, icon, label } = item; + const IconComponent = Icons[icon] as React.ComponentType | undefined; + + return ( + + : } + onClick={props.onMenuClick} + /> + + ); + })} ); }; export const AdminLayout = ({ children }) => { - return <> - - {children} - - -