From 87cf5d52985e1dbeb0a2b07c86ef443bb4bb2c6d Mon Sep 17 00:00:00 2001 From: Brian Cao Date: Fri, 18 Aug 2023 11:10:44 -0700 Subject: [PATCH 1/3] Fix UserWebsites. --- .../pages/settings/users/UserWebsites.js | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/components/pages/settings/users/UserWebsites.js b/components/pages/settings/users/UserWebsites.js index 144fae44..d61df4d8 100644 --- a/components/pages/settings/users/UserWebsites.js +++ b/components/pages/settings/users/UserWebsites.js @@ -2,12 +2,19 @@ import { Loading } from 'react-basics'; import useApi from 'hooks/useApi'; import WebsitesTable from 'components/pages/settings/websites/WebsitesTable'; import useMessages from 'hooks/useMessages'; +import useApiFilter from 'hooks/useApiFilter'; export function UserWebsites({ userId }) { const { formatMessage, messages } = useMessages(); + const { filter, page, pageSize, handleFilterChange, handlePageChange, handlePageSizeChange } = + useApiFilter(); const { get, useQuery } = useApi(); - const { data, isLoading } = useQuery(['user:websites', userId], () => - get(`/users/${userId}/websites`), + const { data, isLoading } = useQuery(['user:websites', userId, filter, page, pageSize], () => + get(`/users/${userId}/websites`, { + filter, + page, + pageSize, + }), ); const hasData = data && data.length !== 0; @@ -17,7 +24,15 @@ export function UserWebsites({ userId }) { return (
- {hasData && } + {hasData && ( + + )} {!hasData && formatMessage(messages.noDataAvailable)}
); From 1aa407027ee234711bb60dfbe163ddd3f3fc4699 Mon Sep 17 00:00:00 2001 From: Brian Cao Date: Fri, 18 Aug 2023 11:16:03 -0700 Subject: [PATCH 2/3] Remove password. --- queries/admin/user.ts | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/queries/admin/user.ts b/queries/admin/user.ts index dfb923f3..ca459b9f 100644 --- a/queries/admin/user.ts +++ b/queries/admin/user.ts @@ -37,7 +37,7 @@ export async function getUserByUsername(username: string, options: GetUserOption } export async function getUsers( - UserSearchFilter: UserSearchFilter = {}, + UserSearchFilter: UserSearchFilter, options?: { include?: Prisma.UserInclude }, ): Promise> { const { teamId, filter, filterType = USER_FILTER_TYPES.all } = UserSearchFilter; @@ -72,14 +72,22 @@ export async function getUsers( ...UserSearchFilter, }); - const users = await prisma.client.user.findMany({ - where: { - ...where, - deletedAt: null, - }, - ...pageFilters, - ...(options?.include && { include: options.include }), - }); + const users = await prisma.client.user + .findMany({ + where: { + ...where, + deletedAt: null, + }, + ...pageFilters, + ...(options?.include && { include: options.include }), + }) + .then(a => { + return a.map(a => { + const { password, ...rest } = a; + + return rest; + }); + }); const count = await prisma.client.user.count({ where: { ...where, From c213b6414f0943dac8050fbc1db33f2d2c7203c6 Mon Sep 17 00:00:00 2001 From: Brian Cao Date: Fri, 18 Aug 2023 12:39:31 -0700 Subject: [PATCH 3/3] Default list size. --- lib/prisma.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/prisma.ts b/lib/prisma.ts index 12bafa51..8fa7e8ae 100644 --- a/lib/prisma.ts +++ b/lib/prisma.ts @@ -185,7 +185,9 @@ function getPageFilters(filters: SearchFilter): [ orderBy: string; }, ] { - const { pageSize = 10, page = 1, orderBy } = filters; + const pageSize = filters?.pageSize || 10; + const page = filters?.page || 1; + const orderBy = filters?.orderBy; return [ {