Shows number of non-done todos (todo + in_progress) next to the Todos nav item. Hides when count is zero. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
interface Props {
|
||||
open: boolean;
|
||||
onToggle: () => void;
|
||||
counts: { devices: number; components: number; needsRepair: number };
|
||||
counts: { devices: number; components: number; needsRepair: number; openTodos: number };
|
||||
}
|
||||
|
||||
let { open, onToggle, counts }: Props = $props();
|
||||
@@ -40,6 +40,7 @@
|
||||
{
|
||||
href: '/todos',
|
||||
label: 'Todos',
|
||||
badge: counts.openTodos || undefined,
|
||||
icon: 'M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z'
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { LayoutServerLoad } from './$types';
|
||||
import { redirect } from '@sveltejs/kit';
|
||||
import { db } from '$lib/server/db/index.js';
|
||||
import { devices, components, componentInstances } from '$lib/server/db/schema.js';
|
||||
import { count, eq, or, and } from 'drizzle-orm';
|
||||
import { devices, components, componentInstances, todos } from '$lib/server/db/schema.js';
|
||||
import { count, eq, or, and, ne } from 'drizzle-orm';
|
||||
|
||||
export const load: LayoutServerLoad = async ({ locals }) => {
|
||||
if (!locals.user) {
|
||||
@@ -20,12 +20,18 @@ export const load: LayoutServerLoad = async ({ locals }) => {
|
||||
.from(devices)
|
||||
.where(and(eq(devices.disabled, false), or(eq(devices.condition, 'In Repair'), eq(devices.condition, 'Waiting for Repair'))));
|
||||
|
||||
const [openTodos] = await db
|
||||
.select({ value: count() })
|
||||
.from(todos)
|
||||
.where(ne(todos.status, 'done'));
|
||||
|
||||
return {
|
||||
user: locals.user,
|
||||
counts: {
|
||||
devices: deviceCount?.value ?? 0,
|
||||
components: componentCount?.value ?? 0,
|
||||
needsRepair: repairCount?.value ?? 0
|
||||
needsRepair: repairCount?.value ?? 0,
|
||||
openTodos: openTodos?.value ?? 0
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user