Skip to content

Commit bd15ce2

Browse files
authored
fix(logs): Use fields array to support static column widths (#95432)
This was changed to a count in #94797 but that broke the static column widths. So reverting it back to the array of fields. LOGS-212
1 parent ef84694 commit bd15ce2

File tree

7 files changed

+32
-35
lines changed

7 files changed

+32
-35
lines changed

static/app/components/profiling/suspectFunctions/suspectFunctionsTable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ export function SuspectFunctionsTable({
114114

115115
const fields = COLUMNS.map(column => column.value);
116116
const tableRef = useRef<HTMLTableElement>(null);
117-
const {initialTableStyles} = useTableStyles(fields.length, tableRef);
117+
const {initialTableStyles} = useTableStyles(fields, tableRef);
118118

119119
const baggage: RenderFunctionBaggage = {
120120
location,

static/app/views/explore/components/table.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export const ALLOWED_CELL_ACTIONS: Actions[] = [
5959
const MINIMUM_COLUMN_WIDTH = COL_WIDTH_MINIMUM;
6060

6161
export function useTableStyles(
62-
fieldsCount: number,
62+
fields: string[],
6363
tableRef: React.RefObject<HTMLDivElement | null>,
6464
options?: {
6565
minimumColumnWidth?: number;
@@ -74,16 +74,16 @@ export function useTableStyles(
7474
: options?.prefixColumnWidth;
7575

7676
const resizingColumnIndex = useRef<number | null>(null);
77-
const columnWidthsRef = useRef<Array<number | null>>(new Array(fieldsCount).fill(null));
77+
const columnWidthsRef = useRef<Array<number | null>>(fields.map(_ => null));
7878

7979
useEffect(() => {
80-
columnWidthsRef.current = new Array(fieldsCount)
81-
.fill(null)
82-
.map((_, index) => columnWidthsRef.current[index] ?? null);
83-
}, [fieldsCount]);
80+
columnWidthsRef.current = fields.map(
81+
(_, index) => columnWidthsRef.current[index] ?? null
82+
);
83+
}, [fields]);
8484

8585
const initialTableStyles = useMemo(() => {
86-
const gridTemplateColumns = new Array(fieldsCount).fill(null).map(field => {
86+
const gridTemplateColumns = fields.map(field => {
8787
const staticWidth = options?.staticColumnWidths?.[field];
8888
if (staticWidth) {
8989
return typeof staticWidth === 'number' ? `${staticWidth}px` : staticWidth;
@@ -96,7 +96,7 @@ export function useTableStyles(
9696
return {
9797
gridTemplateColumns: gridTemplateColumns.join(' '),
9898
};
99-
}, [fieldsCount, minimumColumnWidth, prefixColumnWidth, options?.staticColumnWidths]);
99+
}, [fields, minimumColumnWidth, prefixColumnWidth, options?.staticColumnWidths]);
100100

101101
const onResizeMouseDown = useCallback(
102102
(event: React.MouseEvent<HTMLDivElement>, index: number) => {

static/app/views/explore/logs/tables/logsInfiniteTable.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -96,17 +96,13 @@ export function LogsInfiniteTable({
9696
const [isFunctionScrolling, setIsFunctionScrolling] = useState(false);
9797

9898
const sharedHoverTimeoutRef = useRef<NodeJS.Timeout | null>(null);
99-
const {initialTableStyles, onResizeMouseDown} = useTableStyles(
100-
fields.length,
101-
tableRef,
102-
{
103-
minimumColumnWidth: 50,
104-
prefixColumnWidth: 'min-content',
105-
staticColumnWidths: {
106-
[OurLogKnownFieldKey.MESSAGE]: '1fr',
107-
},
108-
}
109-
);
99+
const {initialTableStyles, onResizeMouseDown} = useTableStyles(fields, tableRef, {
100+
minimumColumnWidth: 50,
101+
prefixColumnWidth: 'min-content',
102+
staticColumnWidths: {
103+
[OurLogKnownFieldKey.MESSAGE]: '1fr',
104+
},
105+
});
110106

111107
const estimateSize = useCallback(
112108
(index: number) => {

static/app/views/explore/logs/tables/logsTable.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,13 @@ export function LogsTable({
6464

6565
const tableRef = useRef<HTMLTableElement>(null);
6666
const sharedHoverTimeoutRef = useRef<NodeJS.Timeout | null>(null);
67-
const {initialTableStyles, onResizeMouseDown} = useTableStyles(
68-
fields.length,
69-
tableRef,
70-
{
71-
minimumColumnWidth: 50,
72-
prefixColumnWidth: 'min-content',
73-
staticColumnWidths: {
74-
[OurLogKnownFieldKey.MESSAGE]: '1fr',
75-
},
76-
}
77-
);
67+
const {initialTableStyles, onResizeMouseDown} = useTableStyles(fields, tableRef, {
68+
minimumColumnWidth: 50,
69+
prefixColumnWidth: 'min-content',
70+
staticColumnWidths: {
71+
[OurLogKnownFieldKey.MESSAGE]: '1fr',
72+
},
73+
});
7874

7975
const isEmpty = !isPending && !isError && (data?.length ?? 0) === 0;
8076
const highlightTerms = useMemo(() => getLogBodySearchTerms(search), [search]);

static/app/views/explore/multiQueryMode/queryVisualizations/table.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ function AggregatesTable({
9999
const {tags: stringTags} = useTraceItemTags('string');
100100

101101
const tableRef = useRef<HTMLTableElement>(null);
102-
const {initialTableStyles} = useTableStyles(fields.length, tableRef, {
102+
const {initialTableStyles} = useTableStyles(fields, tableRef, {
103103
minimumColumnWidth: 50,
104104
prefixColumnWidth: 'min-content',
105105
});
@@ -235,7 +235,7 @@ function SpansTable({spansTableResult, query: queryParts, index}: SampleTablePro
235235
const {tags: stringTags} = useTraceItemTags('string');
236236

237237
const tableRef = useRef<HTMLTableElement>(null);
238-
const {initialTableStyles} = useTableStyles(visibleFields.length, tableRef, {
238+
const {initialTableStyles} = useTableStyles(visibleFields, tableRef, {
239239
minimumColumnWidth: 50,
240240
});
241241

static/app/views/explore/tables/aggregatesTable.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,12 @@ export function AggregatesTable({aggregatesTableResult}: AggregatesTableProps) {
8080

8181
const tableRef = useRef<HTMLTableElement>(null);
8282
const {initialTableStyles, onResizeMouseDown} = useTableStyles(
83-
visibleAggregateFields.length,
83+
visibleAggregateFields.map(aggregateField => {
84+
if (isGroupBy(aggregateField)) {
85+
return aggregateField.groupBy;
86+
}
87+
return aggregateField.yAxis;
88+
}),
8489
tableRef,
8590
{
8691
minimumColumnWidth: 50,

static/app/views/explore/tables/spansTable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export function SpansTable({spansTableResult}: SpansTableProps) {
5353

5454
const tableRef = useRef<HTMLTableElement>(null);
5555
const {initialTableStyles, onResizeMouseDown} = useTableStyles(
56-
visibleFields.length,
56+
visibleFields,
5757
tableRef,
5858
{minimumColumnWidth: 50}
5959
);

0 commit comments

Comments
 (0)