From dca050bcca33713022eb2182eb15c1986ae6f3b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Zugmeyer?= Date: Fri, 8 Sep 2023 10:18:13 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8C=E2=9C=A8=20add=20a=20button=20to?= =?UTF-8?q?=20remove=20columns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/tabs/eventsTab/columnDrag.tsx | 2 +- .../components/tabs/eventsTab/eventRow.tsx | 17 +++-- .../components/tabs/eventsTab/eventsList.tsx | 69 +++++++++++++++---- 3 files changed, 68 insertions(+), 20 deletions(-) diff --git a/developer-extension/src/panel/components/tabs/eventsTab/columnDrag.tsx b/developer-extension/src/panel/components/tabs/eventsTab/columnDrag.tsx index 459b8f3c4d..354b1d1c45 100644 --- a/developer-extension/src/panel/components/tabs/eventsTab/columnDrag.tsx +++ b/developer-extension/src/panel/components/tabs/eventsTab/columnDrag.tsx @@ -117,7 +117,7 @@ function initColumnDrag( if (!targetCell) { return false } - const siblings = Array.from(targetCell.parentElement!.children) + const siblings = Array.from(targetCell.parentElement!.querySelectorAll(':scope > [data-header-cell]')) const columnIndex = siblings.indexOf(targetCell) state = { diff --git a/developer-extension/src/panel/components/tabs/eventsTab/eventRow.tsx b/developer-extension/src/panel/components/tabs/eventsTab/eventRow.tsx index 688c6916b5..cd2e3fb261 100644 --- a/developer-extension/src/panel/components/tabs/eventsTab/eventRow.tsx +++ b/developer-extension/src/panel/components/tabs/eventsTab/eventRow.tsx @@ -84,14 +84,20 @@ export const EventRow = React.memo( return ( - {columns.map((column): React.ReactElement => { + {columns.map((column, index): React.ReactElement => { + const isLast = index === columns.length - 1 switch (column.type) { case 'date': - return {formatDate(event.date)} + return ( + + {formatDate(event.date)} + + ) case 'description': return ( + {isRumEvent(event) || isTelemetryEvent(event) ? ( {event.type} @@ -134,7 +140,7 @@ export const EventRow = React.memo( case 'field': { const value = facetRegistry.getFieldValueForEvent(event, column.path) return ( - + {value !== undefined && ( ) { +function Cell({ isLast, ...props }: BoxProps & ComponentPropsWithoutRef<'div'> & { isLast: boolean }) { return ( - {columns.map((column, index) => ( - - - {getColumnTitle(column)} - {index === columns.length - 1 && ( - - )} - - + {columns.map((column) => ( + ))} + + + @@ -73,6 +70,50 @@ export function EventsList({ ) } +function ColumnHeader({ + columns, + column, + onColumnsChange, +}: { + columns: EventListColumn[] + column: EventListColumn + onColumnsChange: (columns: EventListColumn[]) => void +}) { + return ( + + + + {getColumnTitle(column)} + onColumnsChange(removeColumn(columns, column))} /> + + + + ) +} + function AddColumnPopover({ columns, onColumnsChange,