summaryrefslogtreecommitdiff
path: root/web/source/settings/admin/accounts/detail/index.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'web/source/settings/admin/accounts/detail/index.tsx')
-rw-r--r--web/source/settings/admin/accounts/detail/index.tsx179
1 files changed, 0 insertions, 179 deletions
diff --git a/web/source/settings/admin/accounts/detail/index.tsx b/web/source/settings/admin/accounts/detail/index.tsx
deleted file mode 100644
index 79eb493de..000000000
--- a/web/source/settings/admin/accounts/detail/index.tsx
+++ /dev/null
@@ -1,179 +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/>.
-*/
-
-import React from "react";
-import { useRoute, Redirect } from "wouter";
-
-import { useGetAccountQuery } from "../../../lib/query";
-
-import FormWithData from "../../../lib/form/form-with-data";
-
-import { useBaseUrl } from "../../../lib/navigation/util";
-import FakeProfile from "../../../components/fake-profile";
-
-import { AdminAccount } from "../../../lib/types/account";
-import { HandleSignup } from "./handlesignup";
-import { AccountActions } from "./actions";
-import BackButton from "../../../components/back-button";
-
-export default function AccountDetail() {
- // /settings/admin/accounts
- const accountsBaseUrl = useBaseUrl();
-
- let [_match, params] = useRoute(`${accountsBaseUrl}/:accountId`);
-
- if (params?.accountId == undefined) {
- return <Redirect to={accountsBaseUrl} />;
- } else {
- return (
- <div className="account-detail">
- <h1 className="text-cutoff">
- <BackButton to={accountsBaseUrl} /> Account Details
- </h1>
- <FormWithData
- dataQuery={useGetAccountQuery}
- queryArg={params.accountId}
- DataForm={AccountDetailForm}
- {...{accountsBaseUrl}}
- />
- </div>
- );
- }
-}
-
-interface AccountDetailFormProps {
- accountsBaseUrl: string,
- data: AdminAccount,
-}
-
-function AccountDetailForm({ data: adminAcct, accountsBaseUrl }: AccountDetailFormProps) {
- let yesOrNo = (b: boolean) => {
- return b ? "yes" : "no";
- };
-
- let created = new Date(adminAcct.created_at).toDateString();
- let lastPosted = "never";
- if (adminAcct.account.last_status_at) {
- lastPosted = new Date(adminAcct.account.last_status_at).toDateString();
- }
- const local = !adminAcct.domain;
-
- return (
- <>
- <FakeProfile {...adminAcct.account} />
- <h3>General Account Details</h3>
- { adminAcct.suspended &&
- <div className="info">
- <i className="fa fa-fw fa-info-circle" aria-hidden="true"></i>
- <b>Account is suspended.</b>
- </div>
- }
- <dl className="info-list">
- { !local &&
- <div className="info-list-entry">
- <dt>Domain</dt>
- <dd>{adminAcct.domain}</dd>
- </div>}
- <div className="info-list-entry">
- <dt>Created</dt>
- <dd><time dateTime={adminAcct.created_at}>{created}</time></dd>
- </div>
- <div className="info-list-entry">
- <dt>Last posted</dt>
- <dd>{lastPosted}</dd>
- </div>
- <div className="info-list-entry">
- <dt>Suspended</dt>
- <dd>{yesOrNo(adminAcct.suspended)}</dd>
- </div>
- <div className="info-list-entry">
- <dt>Silenced</dt>
- <dd>{yesOrNo(adminAcct.silenced)}</dd>
- </div>
- <div className="info-list-entry">
- <dt>Statuses</dt>
- <dd>{adminAcct.account.statuses_count}</dd>
- </div>
- <div className="info-list-entry">
- <dt>Followers</dt>
- <dd>{adminAcct.account.followers_count}</dd>
- </div>
- <div className="info-list-entry">
- <dt>Following</dt>
- <dd>{adminAcct.account.following_count}</dd>
- </div>
- </dl>
- { local &&
- // Only show local account details
- // if this is a local account!
- <>
- <h3>Local Account Details</h3>
- { !adminAcct.approved &&
- <div className="info">
- <i className="fa fa-fw fa-info-circle" aria-hidden="true"></i>
- <b>Account is pending.</b>
- </div>
- }
- { !adminAcct.confirmed &&
- <div className="info">
- <i className="fa fa-fw fa-info-circle" aria-hidden="true"></i>
- <b>Account email not yet confirmed.</b>
- </div>
- }
- <dl className="info-list">
- <div className="info-list-entry">
- <dt>Email</dt>
- <dd>{adminAcct.email} {<b>{adminAcct.confirmed ? "(confirmed)" : "(not confirmed)"}</b> }</dd>
- </div>
- <div className="info-list-entry">
- <dt>Disabled</dt>
- <dd>{yesOrNo(adminAcct.disabled)}</dd>
- </div>
- <div className="info-list-entry">
- <dt>Approved</dt>
- <dd>{yesOrNo(adminAcct.approved)}</dd>
- </div>
- <div className="info-list-entry">
- <dt>Sign-Up Reason</dt>
- <dd>{adminAcct.invite_request ?? <i>none provided</i>}</dd>
- </div>
- { (adminAcct.ip && adminAcct.ip !== "0.0.0.0") &&
- <div className="info-list-entry">
- <dt>Sign-Up IP</dt>
- <dd>{adminAcct.ip}</dd>
- </div> }
- { adminAcct.locale &&
- <div className="info-list-entry">
- <dt>Locale</dt>
- <dd>{adminAcct.locale}</dd>
- </div> }
- </dl>
- </> }
- { local && !adminAcct.approved
- ?
- <HandleSignup
- account={adminAcct}
- accountsBaseUrl={accountsBaseUrl}
- />
- :
- <AccountActions account={adminAcct} />
- }
- </>
- );
-}