mirror of
https://github.com/Myzel394/kleckrelay-website.git
synced 2025-06-18 23:45:26 +02:00
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import {ReactElement, useLayoutEffect} from "react"
|
|
import {useTranslation} from "react-i18next"
|
|
import {BsStarFill} from "react-icons/bs"
|
|
import {AiFillEdit} from "react-icons/ai"
|
|
import {Link} from "react-router-dom"
|
|
|
|
import {List, ListItemButton, ListItemIcon, ListItemText} from "@mui/material"
|
|
|
|
import {SimplePageBuilder} from "~/components"
|
|
import {useNavigateToNext, useUser} from "~/hooks"
|
|
import ServerStatus from "~/route-widgets/AdminRoute/ServerStatus"
|
|
|
|
export default function AdminRoute(): ReactElement {
|
|
const {t} = useTranslation("title")
|
|
const navigateToNext = useNavigateToNext()
|
|
const user = useUser()
|
|
|
|
useLayoutEffect(() => {
|
|
if (!user.isAdmin) {
|
|
navigateToNext()
|
|
}
|
|
}, [user.isAdmin, navigateToNext])
|
|
|
|
return (
|
|
<SimplePageBuilder.Page title={t("title")}>
|
|
<ServerStatus />
|
|
<List>
|
|
<ListItemButton component={Link} to="/admin/reserved-aliases">
|
|
<ListItemIcon>
|
|
<BsStarFill />
|
|
</ListItemIcon>
|
|
<ListItemText primary={t("routes.reservedAliases")} />
|
|
</ListItemButton>
|
|
<ListItemButton component={Link} to="/admin/settings">
|
|
<ListItemIcon>
|
|
<AiFillEdit />
|
|
</ListItemIcon>
|
|
<ListItemText primary={t("routes.settings")} />
|
|
</ListItemButton>
|
|
</List>
|
|
</SimplePageBuilder.Page>
|
|
)
|
|
}
|