/* 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 } from "wouter"; import { AdminAccount } from "../lib/types/account"; interface UsernameProps { account: AdminAccount; linkTo?: string; backLocation?: string; classNames?: string[]; } export default function Username({ account, linkTo, backLocation, classNames }: UsernameProps) { const [ _location, setLocation ] = useLocation(); let className = "username-lozenge"; let isLocal = account.domain == null; if (account.suspended) { className += " suspended"; } if (isLocal) { className += " local"; } if (classNames) { className = [ className, classNames ].flat().join(" "); } let icon = isLocal ? { fa: "fa-home", info: "Local user" } : { fa: "fa-external-link-square", info: "Remote user" }; const content = ( <>