Fix types and temporarily hiding pagination

This commit is contained in:
Alan 2023-09-11 00:10:42 -07:00
parent 198c7174e4
commit 49944c223f
3 changed files with 24 additions and 8 deletions

View File

@ -896,6 +896,9 @@ const Main = ({ filters }: { filters: ReturnType<typeof getTeamsFiltersFromQuery
const { data: teams } = trpc.viewer.teams.list.useQuery(undefined, {
// Teams don't change that frequently
refetchOnWindowFocus: false,
trpc: {
context: { skipBatch: true },
},
});
// After teams are fetched we then load event types for each team
@ -952,8 +955,10 @@ const Main = ({ filters }: { filters: ReturnType<typeof getTeamsFiltersFromQuery
if (!teamEventTypes || teamEventTypes.length === 0 || !firstElementTeamEventTypes.team) {
return null;
}
const teamDataMatchWithEventType = teams && teams.length > 0 && teams[index];
const membershipCount = teamDataMatchWithEventType?.membershipCount || 0;
const teamDataMatchWithEventType = teams && teams.length > 0 ? teams[index] : null;
const membershipCount = teamDataMatchWithEventType
? teamDataMatchWithEventType?.membershipCount
: 0;
return (
<>
@ -970,7 +975,9 @@ const Main = ({ filters }: { filters: ReturnType<typeof getTeamsFiltersFromQuery
<EventTypeList
data={teamEventTypes}
key={index}
readonly={"MEMBER" === teamDataMatchWithEventType.role}
readonly={
teamDataMatchWithEventType ? "MEMBER" === teamDataMatchWithEventType.role : false
}
/>
) : (
<EmptyEventTypeList

View File

@ -38,7 +38,7 @@ export const paginateHandler = async ({ ctx, input }: EventTypesPaginateProps) =
teamConditional = { teamId: { in: teamIds } };
}
const skip = (page - 1) * pageSize;
// const skip = (page - 1) * pageSize;
const result = await prisma.eventType.findMany({
where: {
@ -83,8 +83,9 @@ export const paginateHandler = async ({ ctx, input }: EventTypesPaginateProps) =
},
},
},
skip,
take: pageSize,
// Temporarily disabled until we can figure out how to do this properly
// skip,
// take: pageSize,
});
return result;

View File

@ -35,6 +35,15 @@ export const listHandler = async ({ ctx }: ListOptions) => {
const isOrgAdmin = !!(await isOrganisationAdmin(ctx.user.id, ctx.user.organization.id)); // Org id exists here as we're inside a conditional TS complaining for some reason
// This can be optimized by using a custom view between membership and team and teamMemberCount
const membershipCount = await prisma.teamMemberCount.findMany({
where: {
id: {
in: membershipsWithoutParent.map((m) => m.teamId),
},
},
});
return membershipsWithoutParent.map(({ team: { inviteTokens, ..._team }, ...membership }) => ({
role: membership.role,
accepted: membership.accepted,
@ -42,6 +51,7 @@ export const listHandler = async ({ ctx }: ListOptions) => {
..._team,
/** To prevent breaking we only return non-email attached token here, if we have one */
inviteToken: inviteTokens.find((token) => token.identifier === "invite-link-for-teamId-" + _team.id),
membershipCount: membershipCount.find((m) => m.id === _team.id)?.count || 0,
}));
}
@ -68,8 +78,6 @@ export const listHandler = async ({ ctx }: ListOptions) => {
},
});
console.log({ membershipCount });
return memberships
.filter((mmship) => {
const metadata = teamMetadataSchema.parse(mmship.team.metadata);