From a3bb08768f882e29e5f3d03f2ae86d98b7c9b687 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Tue, 1 Aug 2023 18:14:53 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20make=20my=20default=20board?= =?UTF-8?q?=20button=20to=20manage=20boards?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/manage/boards/index.tsx | 17 +++++++++++++++++ src/server/api/routers/user.ts | 15 ++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/pages/manage/boards/index.tsx b/src/pages/manage/boards/index.tsx index 53cd19c5d..474d3f606 100644 --- a/src/pages/manage/boards/index.tsx +++ b/src/pages/manage/boards/index.tsx @@ -16,6 +16,7 @@ import { useListState } from '@mantine/hooks'; import { modals } from '@mantine/modals'; import { IconApps, + IconDeviceFloppy, IconDotsVertical, IconFolderFilled, IconPlus, @@ -30,7 +31,13 @@ import { sleep } from '~/tools/client/time'; import { api } from '~/utils/api'; const BoardsPage = () => { + const context = api.useContext(); const { data } = api.boards.all.useQuery(); + const { mutateAsync } = api.user.makeDefaultDashboard.useMutation({ + onSettled: () => { + void context.boards.invalidate(); + }, + }); const [deletingDashboards, { append, filter }] = useListState([]); @@ -139,6 +146,16 @@ const BoardsPage = () => { + } + onClick={async () => { + void mutateAsync({ + board: board.name, + }); + }} + > + Set as your default board + { modals.openContextModal({ diff --git a/src/server/api/routers/user.ts b/src/server/api/routers/user.ts index 182b0297a..95c2392ab 100644 --- a/src/server/api/routers/user.ts +++ b/src/server/api/routers/user.ts @@ -155,13 +155,26 @@ export const userRouter = createTRPCRouter({ disablePingPulse: input.disablePingPulse, replacePingWithIcons: input.replaceDotsWithIcons, defaultBoard: input.defaultBoard, - language: input.language + language: input.language, }, }, }, }); }), + makeDefaultDashboard: publicProcedure + .input(z.object({ board: z.string() })) + .mutation(async ({ ctx, input }) => { + await ctx.prisma.userSettings.update({ + where: { + userId: ctx.session?.user.id, + }, + data: { + defaultBoard: input.board, + }, + }); + }), + all: publicProcedure .input( z.object({