diff --git a/internal/api/client/admin/accountaction.go b/internal/api/client/admin/accountaction.go
index b4206ac37..484f5bbc4 100644
--- a/internal/api/client/admin/accountaction.go
+++ b/internal/api/client/admin/accountaction.go
@@ -53,7 +53,7 @@
// -
// name: type
// in: formData
-// description: Type of action to be taken (`disable`, `silence`, or `suspend`).
+// description: Type of action to be taken, currently only supports `suspend`.
// type: string
// required: true
// -
diff --git a/web/source/package.json b/web/source/package.json
index e1ca357b3..bd082b6e7 100644
--- a/web/source/package.json
+++ b/web/source/package.json
@@ -28,7 +28,6 @@
"psl": "^1.9.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-error-boundary": "^3.1.4",
"react-redux": "^8.0.4",
"redux": "^4.2.0",
"redux-persist": "^6.0.0",
diff --git a/web/source/settings/admin/accounts/detail.jsx b/web/source/settings/admin/accounts/detail.jsx
new file mode 100644
index 000000000..189c07e8d
--- /dev/null
+++ b/web/source/settings/admin/accounts/detail.jsx
@@ -0,0 +1,114 @@
+/*
+ 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 .
+*/
+
+"use strict";
+
+const React = require("react");
+const { useRoute, Redirect } = require("wouter");
+
+const query = require("../../lib/query");
+
+const FormWithData = require("../../lib/form/form-with-data");
+
+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");
+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 ;
+ } else {
+ return (
+
+ );
+ } else {
+ content = ;
+ }
+
+ return (
+ <>
+
+
+ {content}
+ >
+ );
+}
+
+function ModifyAccount({ account }) {
+ const form = {
+ id: useValue("id", account.id),
+ reason: useTextInput("text", {})
+ };
+
+ const [modifyAccount, result] = useFormSubmit(form, query.useActionAccountMutation());
+
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/web/source/settings/admin/accounts/index.jsx b/web/source/settings/admin/accounts/index.jsx
new file mode 100644
index 000000000..1dea36fb5
--- /dev/null
+++ b/web/source/settings/admin/accounts/index.jsx
@@ -0,0 +1,140 @@
+/*
+ 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 .
+*/
+
+"use strict";
+
+const React = require("react");
+const { Switch, Route, Link } = require("wouter");
+
+const query = require("../../lib/query");
+const { useTextInput } = require("../../lib/form");
+
+const AccountDetail = require("./detail");
+const { useBaseUrl } = require("../../lib/navigation/util");
+const { Error } = require("../../components/error");
+
+module.exports = function Accounts({ baseUrl }) {
+ return (
+
+ Pending #581,
+ there is currently no way to list accounts.
+ You can perform actions on reported accounts by clicking their name in the report, or searching for a username below.
+