From 725a21b02721f92ed0420ed3f807ee921de77992 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 1 May 2024 15:11:22 +0200 Subject: [feature] Page through accounts as moderator (#2881) * [feature] Page through accounts as moderator * aaaaa * use COLLATE "C" for Postgres to ensure same ordering as SQLite * fix typo, test paging up * don't show moderation / info for our instance acct --- web/source/package.json | 2 + web/source/settings/components/account-list.tsx | 82 ----------- web/source/settings/components/pageable-list.tsx | 113 +++++++++++++++ web/source/settings/components/username.tsx | 90 ++++++++++++ web/source/settings/index.tsx | 9 +- web/source/settings/lib/query/admin/index.ts | 13 +- web/source/settings/lib/query/gts-api.ts | 6 +- web/source/settings/lib/types/account.ts | 6 + web/source/settings/style.css | 109 +++++++++----- .../views/moderation/accounts/detail/actions.tsx | 126 +++++++++++++++-- .../moderation/accounts/detail/handlesignup.tsx | 114 --------------- .../views/moderation/accounts/detail/index.tsx | 157 +++++++++++++-------- .../views/moderation/accounts/detail/util.tsx | 43 ++++++ .../settings/views/moderation/accounts/index.tsx | 4 +- .../views/moderation/accounts/pending/index.tsx | 28 +++- .../views/moderation/accounts/search/index.tsx | 80 ++++++++--- web/source/settings/views/moderation/menu.tsx | 8 +- .../settings/views/moderation/reports/detail.tsx | 12 +- .../settings/views/moderation/reports/overview.tsx | 4 +- .../settings/views/moderation/reports/username.tsx | 66 --------- web/source/settings/views/moderation/router.tsx | 10 +- web/source/yarn.lock | 12 ++ 22 files changed, 676 insertions(+), 418 deletions(-) delete mode 100644 web/source/settings/components/account-list.tsx create mode 100644 web/source/settings/components/pageable-list.tsx create mode 100644 web/source/settings/components/username.tsx delete mode 100644 web/source/settings/views/moderation/accounts/detail/handlesignup.tsx create mode 100644 web/source/settings/views/moderation/accounts/detail/util.tsx delete mode 100644 web/source/settings/views/moderation/reports/username.tsx (limited to 'web') diff --git a/web/source/package.json b/web/source/package.json index 919bf3c83..230c248ad 100644 --- a/web/source/package.json +++ b/web/source/package.json @@ -22,6 +22,7 @@ "nanoid": "^4.0.0", "object-to-formdata": "^4.4.2", "papaparse": "^5.3.2", + "parse-link-header": "^2.0.0", "photoswipe": "^5.3.3", "photoswipe-dynamic-caption-plugin": "^1.2.7", "plyr": "^3.7.8", @@ -44,6 +45,7 @@ "@joepie91/eslint-config": "^1.1.1", "@types/is-valid-domain": "^0.0.2", "@types/papaparse": "^5.3.9", + "@types/parse-link-header": "^2.0.3", "@types/psl": "^1.1.1", "@types/react-dom": "^18.2.8", "@typescript-eslint/eslint-plugin": "^6.7.4", diff --git a/web/source/settings/components/account-list.tsx b/web/source/settings/components/account-list.tsx deleted file mode 100644 index c4420b5bc..000000000 --- a/web/source/settings/components/account-list.tsx +++ /dev/null @@ -1,82 +0,0 @@ -/* - GoToSocial - Copyright (C) GoToSocial Authors admin@gotosocial.org - SPDX-License-Identifier: AGPL-3.0-or-later - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -import React from "react"; -import { Link } from "wouter"; -import { Error } from "./error"; -import { AdminAccount } from "../lib/types/account"; -import { SerializedError } from "@reduxjs/toolkit"; -import { FetchBaseQueryError } from "@reduxjs/toolkit/query"; - -export interface AccountListProps { - isSuccess: boolean, - data: AdminAccount[] | undefined, - isLoading: boolean, - isError: boolean, - error: FetchBaseQueryError | SerializedError | undefined, - emptyMessage: string, -} - -export function AccountList({ - isLoading, - isSuccess, - data, - isError, - error, - emptyMessage, -}: AccountListProps) { - if (!(isSuccess || isError)) { - // Hasn't been called yet. - return null; - } - - if (isLoading) { - return