diff --git a/apps/web/src/app/(app)/[organizationId]/[projectId]/events/event-list-item.tsx b/apps/web/src/app/(app)/[organizationId]/[projectId]/events/event-list-item.tsx index ad948713..6ee378f6 100644 --- a/apps/web/src/app/(app)/[organizationId]/[projectId]/events/event-list-item.tsx +++ b/apps/web/src/app/(app)/[organizationId]/[projectId]/events/event-list-item.tsx @@ -160,7 +160,7 @@ export function EventListItem(props: EventListItemProps) { return ( setEvents((p) => uniq([...p, name]))}> {name.split('_').join(' ')} @@ -192,42 +192,40 @@ export function EventListItem(props: EventListItemProps) { } image={} > -
-
- {propertiesList.length > 0 && ( -
-
Your properties
-
- {propertiesList.map((item) => ( - { - setFilter( - `properties.${item.name}`, - item.value ? String(item.value) : '', - 'is' - ); - }} - /> - ))} -
-
- )} -
-
Properties
+
+ {propertiesList.length > 0 && ( +
+
Your properties
- {keyValueList.map((item) => ( + {propertiesList.map((item) => ( item.onClick?.()} key={item.name} name={item.name} value={item.value} + onClick={() => { + setFilter( + `properties.${item.name}`, + item.value ? String(item.value) : '', + 'is' + ); + }} /> ))}
+ )} +
+
Properties
+
+ {keyValueList.map((item) => ( + item.onClick?.()} + key={item.name} + name={item.name} + value={item.value} + /> + ))} +
diff --git a/apps/web/src/app/(app)/[organizationId]/[projectId]/events/event-list.tsx b/apps/web/src/app/(app)/[organizationId]/[projectId]/events/event-list.tsx index 6e701905..16d8ad51 100644 --- a/apps/web/src/app/(app)/[organizationId]/[projectId]/events/event-list.tsx +++ b/apps/web/src/app/(app)/[organizationId]/[projectId]/events/event-list.tsx @@ -1,17 +1,23 @@ 'use client'; -import { Suspense } from 'react'; +import { Fragment, Suspense } from 'react'; import { FullPageEmptyState } from '@/components/FullPageEmptyState'; import { Pagination } from '@/components/Pagination'; import { Button } from '@/components/ui/button'; import { useCursor } from '@/hooks/useCursor'; import { useEventQueryFilters } from '@/hooks/useEventQueryFilters'; +import { isSameDay } from 'date-fns'; import { GanttChartIcon } from 'lucide-react'; import type { IServiceCreateEventPayload } from '@mixan/db'; import { EventListItem } from './event-list-item'; +function showDateHeader(a: Date, b?: Date) { + if (!b) return true; + return !isSameDay(a, b); +} + interface EventListProps { data: IServiceCreateEventPayload[]; count: number; @@ -55,8 +61,18 @@ export function EventList({ data, count }: EventListProps) { take={50} />
- {data.map((item) => ( - + {data.map((item, index, list) => ( + + {showDateHeader( + item.createdAt, + list[index - 1]?.createdAt + ) && ( +
+ {item.createdAt.toLocaleDateString()} +
+ )} + +
))}
<> {properties && ( -
-
-
-
Properties
-
- {Object.entries(properties) - .filter(([, value]) => !!value) - .map(([key, value]) => ( - setFilter(`properties.${key}`, value)} - key={key} - name={key} - value={value} - /> - ))} -
-
+
+
Properties
+
+ {Object.entries(properties) + .filter(([, value]) => !!value) + .map(([key, value]) => ( + setFilter(`properties.${key}`, value)} + key={key} + name={key} + value={value} + /> + ))}
)} diff --git a/apps/web/src/app/(public)/share/overview/[id]/page.tsx b/apps/web/src/app/(public)/share/overview/[id]/page.tsx index dccb5cfe..9c6348d5 100644 --- a/apps/web/src/app/(public)/share/overview/[id]/page.tsx +++ b/apps/web/src/app/(public)/share/overview/[id]/page.tsx @@ -31,7 +31,7 @@ export default async function Page({ params: { id } }: PageProps) { return (
-
+
{organization?.name} diff --git a/apps/web/src/components/general/ExpandableListItem.tsx b/apps/web/src/components/general/ExpandableListItem.tsx index 5108d4d9..7b0b3ade 100644 --- a/apps/web/src/components/general/ExpandableListItem.tsx +++ b/apps/web/src/components/general/ExpandableListItem.tsx @@ -38,6 +38,7 @@ export function ExpandableListItem({ variant="secondary" size="icon" onClick={() => setOpen((p) => !p)} + className="bg-black/5 hover:bg-black/10" >
-
+
NOW
{/*
*/} diff --git a/apps/web/src/components/overview/overview-metrics.tsx b/apps/web/src/components/overview/overview-metrics.tsx index 60fa1ad0..0b56868b 100644 --- a/apps/web/src/components/overview/overview-metrics.tsx +++ b/apps/web/src/components/overview/overview-metrics.tsx @@ -196,7 +196,10 @@ export default function OverviewMetrics({ projectId }: OverviewMetricsProps) { {reports.map((report, index) => (