diff --git a/apps/web/components/dashboard/hours/EditableHour.tsx b/apps/web/components/dashboard/hours/EditableHour.tsx index 2945253..e76bef0 100644 --- a/apps/web/components/dashboard/hours/EditableHour.tsx +++ b/apps/web/components/dashboard/hours/EditableHour.tsx @@ -185,7 +185,10 @@ export default function EditableHour({
{ decrementCount({ metricId: m.metricId, hourId: hour.id }); }}> - +
) )} diff --git a/apps/web/components/dashboard/hours/EditableHourComment.tsx b/apps/web/components/dashboard/hours/EditableHourComment.tsx index b89acd3..728925a 100644 --- a/apps/web/components/dashboard/hours/EditableHourComment.tsx +++ b/apps/web/components/dashboard/hours/EditableHourComment.tsx @@ -1,7 +1,7 @@ "use client"; import { set } from "date-fns"; -import { MessageCircle } from "lucide-react"; +import { BookOpen, Info, MessageCircle, NotebookPen, Quote } from "lucide-react"; import { useEffect, useRef, useState } from "react"; function selectHourCode(time: number) { @@ -56,7 +56,7 @@ export function EditableHourComment({ return (
{hour.comment ? - + : ""} { +export const Icon = ({ name = "FileQuestion", color = "white", size = 16, tooltip = null, ...props }) => { const icon = Object.keys(icons).find((i) => i.toLowerCase() == (name.toLowerCase())); - if (!icon) { - return null; - } - const LucideIcon = icons[name as keyof typeof icons]; // Add an index signature to allow indexing with a string + if (icon) { + const LucideIcon = icons[icon as keyof typeof icons]; // Add an index signature to allow indexing with a string + const ret = ; - return ; + if (tooltip) { + return ( + + {ret} + + + {tooltip} + + ); + } + else { + return ret; + } + } }; diff --git a/packages/shared/types/metrics.ts b/packages/shared/types/metrics.ts index 6018b1d..0b6f51f 100644 --- a/packages/shared/types/metrics.ts +++ b/packages/shared/types/metrics.ts @@ -3,6 +3,7 @@ import { z } from "zod"; export const zMeasurementSchema = z.object({ id: z.string().optional(), metricId: z.string(), + metricName: z.string().optional(), hourId: z.string().optional(), dayId: z.string().optional(), value: z.coerce.number(), diff --git a/packages/trpc/routers/hours.ts b/packages/trpc/routers/hours.ts index 1bc38e1..b0ee664 100644 --- a/packages/trpc/routers/hours.ts +++ b/packages/trpc/routers/hours.ts @@ -65,6 +65,7 @@ export async function hourJoinsQuery( metricId: measurements.metricId, value: measurements.value, icon: metrics.icon, + metricName: metrics.name, }) .from(measurements) .leftJoin(metrics, eq(metrics.id, measurements.metricId)) diff --git a/packages/trpc/routers/measurements.ts b/packages/trpc/routers/measurements.ts index 91dab7c..ac24674 100644 --- a/packages/trpc/routers/measurements.ts +++ b/packages/trpc/routers/measurements.ts @@ -60,6 +60,7 @@ export const measurementsAppRouter = router({ return { ...newMeasurement[0], icon: metric[0].icon, + metricName: metric[0].name, }; } }),