in frontend/src/containers/AdminHome.tsx [12:165]
function AdminHome() {
const history = useHistory();
const currentAuthenticatedUser = useCurrentAuthenticatedUser();
const { t } = useTranslation();
const onCreateDashboard = () => {
history.push("/admin/dashboard/create");
};
const onViewDashboards = () => {
history.push("/admin/dashboards");
};
const onManageUsers = () => {
history.push("/admin/users");
};
const onViewSettings = () => {
history.push("/admin/settings");
};
const onViewPublicWebsite = () => {
const win = window.open("/", "_blank");
if (!!win) {
win.focus();
}
};
if (
!currentAuthenticatedUser ||
(!currentAuthenticatedUser.isEditor && !currentAuthenticatedUser.isAdmin)
) {
return null;
}
return (
<div className="usa-prose">
<div className="grid-row">
<div className="grid-col-12 tablet:grid-col-8">
<h1 className="font-sans-3xl line-height-sans-2 margin-top-2">
{t("WelcomeToPDoA")}
</h1>
<p className="font-sans-lg usa-prose">
{`${
currentAuthenticatedUser.isAdmin
? `${t("WhatYouCanDoAsAdmin")}`
: `${t("WhatYouCanDoAsNotAdmin")}`
}`}
</p>
</div>
</div>
<div className="grid-row margin-top-2">
{currentAuthenticatedUser.isEditor ? (
<CardGroup>
<Card title={t("CreateANewDashboard")} col={7}>
<CardBody>
<p>
{t("BuildDraftDashboards")}
<br />
<br />
</p>
</CardBody>
<CardFooter>
<Button
type="button"
variant="base"
onClick={onCreateDashboard}
>
{t("CreateDashboard")}
</Button>
</CardFooter>
</Card>
<Card title={t("ViewExistingDashboards")} col={5}>
<CardBody>
<p>{t("ViewDashboardsCreatedByOthers")}</p>
</CardBody>
<CardFooter>
<Button
type="button"
variant="outline"
onClick={onViewDashboards}
>
{t("ViewDashboard")}
</Button>
</CardFooter>
</Card>
</CardGroup>
) : (
""
)}
{currentAuthenticatedUser.isAdmin ? (
<CardGroup>
<Card title={t("CreateANewDashboard")} col={4}>
<CardBody>
<p>
{t("BuildDraftDashboards")}
<br />
<br />
</p>
</CardBody>
<CardFooter>
<Button
type="button"
variant="base"
onClick={onCreateDashboard}
>
{t("CreateDashboard")}
</Button>
</CardFooter>
</Card>
<Card title={t("AddOtherUsers")} col={4}>
<CardBody>
<p>{t("AllowOtherUsers")}</p>
</CardBody>
<CardFooter>
<Button type="button" variant="outline" onClick={onManageUsers}>
{t("ManageUsers")}
</Button>
</CardFooter>
</Card>
<Card title={t("CustomizeSettings")} col={4}>
<CardBody>
<p>{t("PersonalizeDashboard")}</p>
</CardBody>
<CardFooter>
<Button
type="button"
variant="outline"
onClick={onViewSettings}
>
{t("ViewSettings")}
</Button>
</CardFooter>
</Card>
</CardGroup>
) : (
""
)}
</div>
<hr />
<div className="grid-row text-center">
<div className="grid-col">
<p className="font-sans-md">
{t("PDoASite")} <br /> {t("WantToViewPublishedSite")}
</p>
<Button type="button" variant="outline" onClick={onViewPublicWebsite}>
{t("ViewPublishedSite")}{" "}
<FontAwesomeIcon size="sm" icon={faExternalLinkAlt} />
</Button>
</div>
</div>
</div>
);
}