add confirm button for dangerous admin actions
This commit is contained in:
@ -1,6 +1,9 @@
|
||||
import { XCircleIcon } from "@heroicons/react/20/solid";
|
||||
import { AdminBarLayout } from "~/components/admin/ControlBar";
|
||||
import { AdminActionButton, AdminActionLink } from "~/components/admin/common";
|
||||
import {
|
||||
AdminActionButton,
|
||||
AdminActionConfirmButton,
|
||||
} from "~/components/admin/common";
|
||||
import Image from "next/image";
|
||||
import {
|
||||
ResourceForm,
|
||||
@ -87,11 +90,15 @@ const EditResourcePage = () => {
|
||||
onSubmit(formMethods.getValues());
|
||||
}}
|
||||
/>,
|
||||
<AdminActionLink
|
||||
<AdminActionConfirmButton
|
||||
key="cancel"
|
||||
symbol={<XCircleIcon className="w-4" />}
|
||||
label="Cancel"
|
||||
href={`/resources/${data.id}`}
|
||||
onConfirm={() => {
|
||||
router.push(`/resources/${data.id}`).catch((error) => {
|
||||
console.error(error);
|
||||
});
|
||||
}}
|
||||
/>,
|
||||
]}
|
||||
>
|
||||
|
@ -6,10 +6,14 @@ import { type AuditoryResource, type PlatformLink } from "@prisma/client";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import { AdminBarLayout } from "~/components/admin/ControlBar";
|
||||
import { AdminActionLink } from "~/components/admin/common";
|
||||
import {
|
||||
AdminActionConfirmButton,
|
||||
AdminActionLink,
|
||||
} from "~/components/admin/common";
|
||||
import { useRouter } from "next/router";
|
||||
import { HeaderFooterLayout } from "~/layouts/HeaderFooterLayout";
|
||||
import { QueryWaitWrapper } from "~/components/LoadingWrapper";
|
||||
import { TrashIcon } from "@heroicons/react/24/outline";
|
||||
|
||||
export const PlatformLinkButton = ({
|
||||
platformLink,
|
||||
@ -122,13 +126,23 @@ const ResourceViewPage = () => {
|
||||
return (
|
||||
<HeaderFooterLayout>
|
||||
<AdminBarLayout
|
||||
actions={
|
||||
actions={[
|
||||
<AdminActionLink
|
||||
key="edit"
|
||||
symbol={<PencilSquareIcon className="w-4" />}
|
||||
label="Edit Page"
|
||||
href={`${router.asPath}/edit`}
|
||||
/>
|
||||
}
|
||||
/>,
|
||||
<AdminActionConfirmButton
|
||||
key="delete"
|
||||
label="Delete"
|
||||
symbol={<TrashIcon className="w-4" />}
|
||||
onConfirm={() => {
|
||||
// todo
|
||||
console.log("deleting");
|
||||
}}
|
||||
/>,
|
||||
]}
|
||||
>
|
||||
<div className="mb-12">
|
||||
<QueryWaitWrapper query={resourceQuery} Render={ConditionalView} />
|
||||
|
@ -7,7 +7,10 @@ import {
|
||||
type UseFormReturn,
|
||||
} from "react-hook-form";
|
||||
import { AdminBarLayout } from "~/components/admin/ControlBar";
|
||||
import { AdminActionButton, AdminActionLink } from "~/components/admin/common";
|
||||
import {
|
||||
AdminActionButton,
|
||||
AdminActionConfirmButton,
|
||||
} from "~/components/admin/common";
|
||||
import {
|
||||
type ResourceCreateInput,
|
||||
ResourceForm,
|
||||
@ -55,11 +58,15 @@ const EditResourcePage = () => {
|
||||
.catch((error) => console.error(error));
|
||||
}}
|
||||
/>,
|
||||
<AdminActionLink
|
||||
<AdminActionConfirmButton
|
||||
key="cancel"
|
||||
symbol={<XCircleIcon className="w-4" />}
|
||||
label="Cancel"
|
||||
href={`/resources`}
|
||||
onConfirm={() => {
|
||||
router.push("/resources").catch((error) => {
|
||||
console.error(error);
|
||||
});
|
||||
}}
|
||||
/>,
|
||||
]}
|
||||
>
|
||||
|
Reference in New Issue
Block a user