From 89e0cfd8741b6763ca04e90558bccf4c3c380cfa Mon Sep 17 00:00:00 2001
From: tobi <31960611+tsmethurst@users.noreply.github.com>
Date: Sat, 13 Apr 2024 13:25:10 +0200
Subject: [feature] Admin accounts endpoints; approve/reject sign-ups (#2826)

* update settings panels, add pending overview + approve/deny functions

* add admin accounts get, approve, reject

* send approved/rejected emails

* use signup URL

* docs!

* email

* swagger

* web linting

* fix email tests

* wee lil fixerinos

* use new paging logic for GetAccounts() series of admin endpoints, small changes to query building

* shuffle useAccountIDIn check *before* adding to query

* fix parse from toot react error

* use `netip.Addr`

* put valid slices in globals

* optimistic updates for account state

---------

Co-authored-by: kim <grufwub@gmail.com>
---
 web/source/settings/admin/accounts/detail.jsx | 112 --------------------------
 1 file changed, 112 deletions(-)
 delete mode 100644 web/source/settings/admin/accounts/detail.jsx

(limited to 'web/source/settings/admin/accounts/detail.jsx')

diff --git a/web/source/settings/admin/accounts/detail.jsx b/web/source/settings/admin/accounts/detail.jsx
deleted file mode 100644
index 63049c149..000000000
--- a/web/source/settings/admin/accounts/detail.jsx
+++ /dev/null
@@ -1,112 +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 <http://www.gnu.org/licenses/>.
-*/
-
-const React = require("react");
-const { useRoute, Redirect } = require("wouter");
-
-const query = require("../../lib/query");
-
-const FormWithData = require("../../lib/form/form-with-data").default;
-
-const { useBaseUrl } = require("../../lib/navigation/util");
-const FakeProfile = require("../../components/fake-profile");
-const MutationButton = require("../../components/form/mutation-button");
-
-const useFormSubmit = require("../../lib/form/submit").default;
-const { useValue, useTextInput } = require("../../lib/form");
-const { TextInput } = require("../../components/form/inputs");
-
-module.exports = function AccountDetail({ }) {
-	const baseUrl = useBaseUrl();
-
-	let [_match, params] = useRoute(`${baseUrl}/:accountId`);
-
-	if (params?.accountId == undefined) {
-		return <Redirect to={baseUrl} />;
-	} else {
-		return (
-			<div className="account-detail">
-				<h1>
-					Account Details
-				</h1>
-				<FormWithData
-					dataQuery={query.useGetAccountQuery}
-					queryArg={params.accountId}
-					DataForm={AccountDetailForm}
-				/>
-			</div>
-		);
-	}
-};
-
-function AccountDetailForm({ data: account }) {
-	let content;
-	if (account.suspended) {
-		content = (
-			<h2 className="error">Account is suspended.</h2>
-		);
-	} else {
-		content = <ModifyAccount account={account} />;
-	}
-
-	return (
-		<>
-			<FakeProfile {...account} />
-
-			{content}
-		</>
-	);
-}
-
-function ModifyAccount({ account }) {
-	const form = {
-		id: useValue("id", account.id),
-		reason: useTextInput("text")
-	};
-
-	const [modifyAccount, result] = useFormSubmit(form, query.useActionAccountMutation());
-
-	return (
-		<form onSubmit={modifyAccount}>
-			<h2>Actions</h2>
-			<TextInput
-				field={form.reason}
-				placeholder="Reason for this action"
-			/>
-
-			<div className="action-buttons">
-				{/* <MutationButton
-					label="Disable"
-					name="disable"
-					result={result}
-				/>
-				<MutationButton
-					label="Silence"
-					name="silence"
-					result={result}
-				/> */}
-				<MutationButton
-					label="Suspend"
-					name="suspend"
-					result={result}
-				/>
-			</div>
-		</form>
-	);
-}
\ No newline at end of file
-- 
cgit v1.2.3

