From 6f870f730222d488ee47540dcb62ea3d1abc1f19 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Thu, 16 Feb 2023 22:40:10 +0100 Subject: [PATCH] feat: Add delete button to reserved aliases --- public/locales/en-US/translation.json | 9 +++++++++ src/apis/delete-reserved-alias.ts | 13 +++++++++++++ src/apis/index.ts | 2 ++ src/routes/ReservedAliasDetailRoute.tsx | 24 +++++++++++++++++++++--- 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 src/apis/delete-reserved-alias.ts diff --git a/public/locales/en-US/translation.json b/public/locales/en-US/translation.json index a757df4..6e65679 100644 --- a/public/locales/en-US/translation.json +++ b/public/locales/en-US/translation.json @@ -412,6 +412,15 @@ "title": "Global settings are disabled", "description": "Global settings have been disabled. You can enable them in the configuration file." } + }, + "reservedAlias": { + "actions": { + "delete": { + "label": "Delete Reserved Alias", + "description": "Are you sure you want to delete this reserved alias?", + "continueAction": "Delete Reserved Alias" + } + } } } }, diff --git a/src/apis/delete-reserved-alias.ts b/src/apis/delete-reserved-alias.ts new file mode 100644 index 0000000..f3b019b --- /dev/null +++ b/src/apis/delete-reserved-alias.ts @@ -0,0 +1,13 @@ +import {client} from "~/constants/axios-client" +import {SimpleDetailResponse} from "~/server-types" + +export default async function deleteReservedAlias(id: string): Promise { + const {data} = await client.delete( + `${import.meta.env.VITE_SERVER_BASE_URL}/v1/reserved-alias/${id}`, + { + withCredentials: true, + }, + ) + + return data +} diff --git a/src/apis/index.ts b/src/apis/index.ts index 5f10655..d976efd 100644 --- a/src/apis/index.ts +++ b/src/apis/index.ts @@ -54,3 +54,5 @@ export * from "./update-admin-settings" export {default as updateAdminSettings} from "./update-admin-settings" export * from "./delete-alias" export {default as deleteAlias} from "./delete-alias" +export * from "./delete-reserved-alias" +export {default as deleteReservedAlias} from "./delete-reserved-alias" diff --git a/src/routes/ReservedAliasDetailRoute.tsx b/src/routes/ReservedAliasDetailRoute.tsx index b3c9eac..74cbdbb 100644 --- a/src/routes/ReservedAliasDetailRoute.tsx +++ b/src/routes/ReservedAliasDetailRoute.tsx @@ -6,9 +6,9 @@ import {AxiosError} from "axios" import {useQuery} from "@tanstack/react-query" import {Grid} from "@mui/material" -import {QueryResult, SimplePage, SimplePageBuilder} from "~/components" +import {DeleteButton, QueryResult, SimplePage, SimplePageBuilder} from "~/components" import {ReservedAlias} from "~/server-types" -import {getReservedAlias} from "~/apis" +import {deleteReservedAlias, getReservedAlias} from "~/apis" import AliasActivationSwitch from "~/route-widgets/ReservedAliasDetailRoute/AliasActivationSwitch" import AliasAddress from "~/route-widgets/AliasDetailRoute/AliasAddress" import AliasUsersList from "~/route-widgets/ReservedAliasDetailRoute/AliasUsersList" @@ -21,7 +21,25 @@ export default function ReservedAliasDetailRoute(): ReactElement { const query = useQuery(queryKey, () => getReservedAlias(params.id!)) return ( - + deleteReservedAlias(params.id!)} + label={t("routes.AdminRoute.reservedAlias.actions.delete.label")} + description={t( + "routes.adminRoute.reservedAlias.actions.delete.description", + )} + continueLabel={t( + "routes.AdminRoute.reservedAlias.actions.delete.continueAction", + )} + navigateTo="/admin/reserved-aliases" + successMessage={t("relations.alias.mutations.success.aliasDeleted")} + /> + ) + } + > query={query}> {alias => (