Fix clock-in failing when no client is selected
clockIn and create used `input.clientId?.trim() ?? null`, but clients always send `""` (not undefined) for no-client. `??` doesn't catch the empty string, so `""` was inserted into time_entries.client_id, violating the foreign key to clients.id. Use `|| null` to normalize a blank string to null, matching updateRunning. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -242,7 +242,7 @@ export const timeEntriesRouter = createTRPCRouter({
|
||||
});
|
||||
}
|
||||
|
||||
const clientId = input.clientId?.trim() ?? null;
|
||||
const clientId = input.clientId?.trim() || null;
|
||||
let clientRecord: { defaultHourlyRate: number | null } | null = null;
|
||||
if (clientId) {
|
||||
const found = await ctx.db.query.clients.findFirst({
|
||||
@@ -514,7 +514,7 @@ export const timeEntriesRouter = createTRPCRouter({
|
||||
create: protectedProcedure
|
||||
.input(createSchema)
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
const clientId = input.clientId?.trim() ?? null;
|
||||
const clientId = input.clientId?.trim() || null;
|
||||
if (clientId) {
|
||||
const client = await ctx.db.query.clients.findFirst({
|
||||
where: and(eq(clients.id, clientId), eq(clients.createdById, ctx.session.user.id)),
|
||||
|
||||
Reference in New Issue
Block a user