/* 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 { useLocation, useParams } from "wouter"; import Loading from "../../../../components/loading"; import { useBaseUrl } from "../../../../lib/navigation/util"; import BackButton from "../../../../components/back-button"; import { Error as ErrorC } from "../../../../components/error"; import UsernameLozenge from "../../../../components/username-lozenge"; import { useDeleteDomainPermissionExcludeMutation, useGetDomainPermissionExcludeQuery } from "../../../../lib/query/admin/domain-permissions/excludes"; import MutationButton from "../../../../components/form/mutation-button"; export default function DomainPermissionExcludeDetail() { const baseUrl = useBaseUrl(); const backLocation: string = history.state?.backLocation ?? `~${baseUrl}`; const params = useParams(); let id = params.excludeId as string | undefined; if (!id) { throw "no perm ID"; } const { data: permExclude, isLoading, isFetching, isError, error, } = useGetDomainPermissionExcludeQuery(id); if (isLoading || isFetching) { return ; } else if (isError) { return ; } else if (permExclude === undefined) { return ; } const created = permExclude.created_at ? new Date(permExclude.created_at).toDateString(): "unknown"; const domain = permExclude.domain; const privateComment = permExclude.private_comment ?? "[none]"; return (

Domain Permission Exclude Detail

Created
Created By
Domain
{domain}
Private comment
{privateComment}
); } function HandleExclude({ id, backLocation}: {id: string, backLocation: string}) { const [_location, setLocation] = useLocation(); const [ deleteExclude, deleteResult ] = useDeleteDomainPermissionExcludeMutation(); return ( { e.preventDefault(); e.stopPropagation(); deleteExclude(id).then(res => { if ("data" in res) { setLocation(backLocation); } }); }} disabled={false} showError={true} result={deleteResult} /> ); }