[resumes][fix] fix resumes starring lag + add zoom controls (#359)

* [resumes][fix] Fix star button delay

* [resumes][feat] add zoom controls for pdf
This commit is contained in:
Peirong
2022-10-11 16:36:09 +08:00
committed by GitHub
parent 6a6c939953
commit a905f31b2c
7 changed files with 114 additions and 62 deletions

View File

@@ -28,7 +28,7 @@ export const appRouter = createRouter()
.merge('companies.', companiesRouter)
.merge('resumes.resume.', resumesRouter)
.merge('resumes.resume.user.', resumesResumeUserRouter)
.merge('resumes.star.user.', resumesStarUserRouter)
.merge('resumes.resume.', resumesStarUserRouter)
.merge('resumes.reviews.', resumeReviewsRouter)
.merge('resumes.reviews.user.', resumesReviewsUserRouter)
.merge('questions.answers.comments.', questionsAnswerCommentRouter)

View File

@@ -62,7 +62,9 @@ export const resumesRouter = createRouter()
},
stars: {
where: {
userId,
OR: {
userId,
},
},
},
user: {

View File

@@ -2,38 +2,14 @@ import { z } from 'zod';
import { createProtectedRouter } from '../context';
export const resumesStarUserRouter = createProtectedRouter().mutation(
'create_or_delete',
{
export const resumesStarUserRouter = createProtectedRouter()
.mutation('unstar', {
input: z.object({
resumeId: z.string(),
}),
async resolve({ ctx, input }) {
const { resumeId } = input;
// Update_star will only be called if user is logged in
const userId = ctx.session!.user!.id;
// Use the resumeId and resumeProfileId to check if star exists
const resumesStar = await ctx.prisma.resumesStar.findUnique({
select: {
id: true,
},
where: {
userId_resumeId: {
resumeId,
userId,
},
},
});
if (resumesStar === null) {
return await ctx.prisma.resumesStar.create({
data: {
resumeId,
userId,
},
});
}
const userId = ctx.session.user.id;
return await ctx.prisma.resumesStar.delete({
where: {
userId_resumeId: {
@@ -43,5 +19,19 @@ export const resumesStarUserRouter = createProtectedRouter().mutation(
},
});
},
},
);
})
.mutation('star', {
input: z.object({
resumeId: z.string(),
}),
async resolve({ ctx, input }) {
const { resumeId } = input;
const userId = ctx.session.user.id;
return await ctx.prisma.resumesStar.create({
data: {
resumeId,
userId,
},
});
},
});