feat: add delete notification function
This commit is contained in:
parent
52255690cb
commit
324edc2d88
@ -1,5 +1,5 @@
|
|||||||
import { EditOutlined, PlusOutlined } from '@ant-design/icons';
|
import { DeleteOutlined, EditOutlined, PlusOutlined } from '@ant-design/icons';
|
||||||
import { Button, List } from 'antd';
|
import { Button, List, Popconfirm } from 'antd';
|
||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
import { trpc } from '../../api/trpc';
|
import { trpc } from '../../api/trpc';
|
||||||
import {
|
import {
|
||||||
@ -21,10 +21,10 @@ export const NotificationList: React.FC = React.memo(() => {
|
|||||||
NotificationFormValues | undefined
|
NotificationFormValues | undefined
|
||||||
>(undefined);
|
>(undefined);
|
||||||
|
|
||||||
const mutation = trpc.notification.upsert.useMutation();
|
const upsertMutation = trpc.notification.upsert.useMutation();
|
||||||
|
const deleteMutation = trpc.notification.delete.useMutation();
|
||||||
|
|
||||||
const handleOpenModal = useEvent((initValues?: NotificationFormValues) => {
|
const handleOpenModal = useEvent((initValues?: NotificationFormValues) => {
|
||||||
console.log('initValues', initValues);
|
|
||||||
setEditingFormData(initValues);
|
setEditingFormData(initValues);
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
});
|
});
|
||||||
@ -35,7 +35,7 @@ export const NotificationList: React.FC = React.memo(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const handleSubmit = useEvent(async (values: NotificationFormValues) => {
|
const handleSubmit = useEvent(async (values: NotificationFormValues) => {
|
||||||
await mutation.mutateAsync({
|
await upsertMutation.mutateAsync({
|
||||||
workspaceId: currentWorkspaceId!,
|
workspaceId: currentWorkspaceId!,
|
||||||
...values,
|
...values,
|
||||||
});
|
});
|
||||||
@ -43,6 +43,14 @@ export const NotificationList: React.FC = React.memo(() => {
|
|||||||
refetch();
|
refetch();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const handleDelete = useEvent(async (notificationId: string) => {
|
||||||
|
await deleteMutation.mutateAsync({
|
||||||
|
workspaceId: currentWorkspaceId!,
|
||||||
|
id: notificationId,
|
||||||
|
});
|
||||||
|
refetch();
|
||||||
|
});
|
||||||
|
|
||||||
if (!currentWorkspaceId) {
|
if (!currentWorkspaceId) {
|
||||||
return <NoWorkspaceTip />;
|
return <NoWorkspaceTip />;
|
||||||
}
|
}
|
||||||
@ -84,6 +92,17 @@ export const NotificationList: React.FC = React.memo(() => {
|
|||||||
>
|
>
|
||||||
Edit
|
Edit
|
||||||
</Button>,
|
</Button>,
|
||||||
|
<Popconfirm
|
||||||
|
title="Is delete this item?"
|
||||||
|
okButtonProps={{
|
||||||
|
danger: true,
|
||||||
|
}}
|
||||||
|
onConfirm={() => {
|
||||||
|
handleDelete(item.id);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Button danger={true} icon={<DeleteOutlined />} />
|
||||||
|
</Popconfirm>,
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<List.Item.Meta title={item.name} />
|
<List.Item.Meta title={item.name} />
|
||||||
|
@ -49,4 +49,20 @@ export const notificationRouter = router({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
delete: workspaceOwnerProcedure
|
||||||
|
.input(
|
||||||
|
z.object({
|
||||||
|
id: z.string(),
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.mutation(async ({ input }) => {
|
||||||
|
const { id, workspaceId } = input;
|
||||||
|
|
||||||
|
return await prisma.notification.delete({
|
||||||
|
where: {
|
||||||
|
workspaceId,
|
||||||
|
id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user