/*
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 { useGetAccountQuery } from "../../../../lib/query/admin";
import FormWithData from "../../../../lib/form/form-with-data";
import FakeProfile from "../../../../components/profile";
import { AdminAccount } from "../../../../lib/types/account";
import { AccountActions } from "./actions";
import { useParams } from "wouter";
import { useBaseUrl } from "../../../../lib/navigation/util";
import BackButton from "../../../../components/back-button";
import { UseOurInstanceAccount, yesOrNo } from "../../../../lib/util";
export default function AccountDetail() {
const params: { accountID: string } = useParams();
const baseUrl = useBaseUrl();
const backLocation: String = history.state?.backLocation ?? `~${baseUrl}`;
return (
Account Details
);
}
interface AccountDetailFormProps {
data: AdminAccount;
backLocation: string;
}
function AccountDetailForm({ data: adminAcct, backLocation }: AccountDetailFormProps) {
// If this is our instance account, don't
// bother returning detailed account information.
const ourInstanceAccount = UseOurInstanceAccount(adminAcct);
if (ourInstanceAccount) {
return (
<>
This is the service account for your instance; you
cannot perform moderation actions on this account.
>
);
}
const local = !adminAcct.domain;
return (
<>
{
// Only show local account details
// if this is a local account!
local &&
}
>
);
}
function GeneralAccountDetails({ adminAcct } : { adminAcct: AdminAccount }) {
const local = !adminAcct.domain;
const 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();
}
return (
<>