Skip to content

Commit 83d9310

Browse files
committed
Refactor Table Components for Improved Code Clarity and Performance
- Simplified import statements in MetricsTable and TasksReviewTable by removing unnecessary imports. - Updated TaskAnalysisTable to enhance filter functionality by removing unused parameters in filter components. - Improved key assignment in table rendering for better performance and consistency. These changes enhance the maintainability and performance of the table components, providing a cleaner codebase.
1 parent 5e86105 commit 83d9310

5 files changed

Lines changed: 16 additions & 25 deletions

File tree

src/components/SuperAdmin/MetricsTable.jsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,7 @@ import WithSortedChallenges from "../HOCs/WithSortedChallenges/WithSortedChallen
66
import PaginationControl from "../PaginationControl/PaginationControl";
77
import SvgSymbol from "../SvgSymbol/SvgSymbol";
88
import { SearchFilter } from "../TableShared/EnhancedTable";
9-
import {
10-
cellStyles,
11-
inputStyles,
12-
linkStyles,
13-
rowStyles,
14-
tableStyles,
15-
} from "../TableShared/TableStyles";
9+
import { cellStyles, inputStyles, rowStyles, tableStyles } from "../TableShared/TableStyles";
1610
import { CHALLENGE_COLUMNS, PROJECT_COLUMNS, getUserColumns } from "./MetricsData";
1711
import WithMetricsSearchResults from "./WithMetricsSearchResults";
1812
import WithSortedProjects from "./WithSortedProjects";

src/components/TaskAnalysisTable/TaskAnalysisTable.jsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import _isEqual from "lodash/isEqual";
2-
import _isObject from "lodash/isObject";
31
import { Fragment, useMemo, useState } from "react";
42
import { injectIntl } from "react-intl";
53
import { useExpanded, useResizeColumns, useSortBy, useTable } from "react-table";
@@ -173,14 +171,14 @@ export const TaskAnalysisTableInternal = (props) => {
173171
<div className="mr-overflow-x-auto">
174172
<table {...getTableProps()} className={tableStyles} style={{ minWidth: "max-content" }}>
175173
<thead>
176-
{headerGroups.map((headerGroup) => (
177-
<Fragment key={headerGroup.id}>
174+
{headerGroups.map((headerGroup, headerGroupIndex) => (
175+
<Fragment key={`header-group-${headerGroupIndex}`}>
178176
<tr {...headerGroup.getHeaderGroupProps()}>
179-
{headerGroup.headers.map((column) => (
177+
{headerGroup.headers.map((column, columnIndex) => (
180178
<th
181179
{...column.getHeaderProps()}
182180
className={`mr-px-2 mr-text-left mr-border-gray-600 mr-relative ${column.canResize ? "mr-border-r mr-border-gray-500" : ""}`}
183-
key={column.id}
181+
key={`header-${column.id}-${columnIndex}`}
184182
style={{
185183
...column.getHeaderProps().style,
186184
width: column.width,
@@ -217,8 +215,8 @@ export const TaskAnalysisTableInternal = (props) => {
217215
))}
218216
</tr>
219217
<tr>
220-
{headerGroup.headers.map((column) => (
221-
<th key={`filter-${column.id}`} className="mr-px-2">
218+
{headerGroup.headers.map((column, columnIndex) => (
219+
<th key={`filter-${column.id}-${columnIndex}`} className="mr-px-2">
222220
<div>{column.Filter ? column.render("Filter") : null}</div>
223221
</th>
224222
))}
@@ -235,8 +233,9 @@ export const TaskAnalysisTableInternal = (props) => {
235233
{...row.getRowProps()}
236234
className={`${row.isExpanded ? "mr-bg-black-10" : ""} ${rowStyles}`}
237235
>
238-
{row.cells.map((cell) => (
236+
{row.cells.map((cell, cellIndex) => (
239237
<td
238+
key={`cell-${row.original.id}-${cell.column.id}-${cellIndex}`}
240239
{...cell.getCellProps()}
241240
className="mr-px-2"
242241
style={{

src/components/TaskAnalysisTable/setupColumnTypes.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const setupColumnTypes = (props, taskBaseRoute, manager, openComments) =>
2525
columns.selected = {
2626
id: "selected",
2727
accessor: (task) => props.isTaskSelected(task.id),
28-
Cell: ({ value, row }) => {
28+
Cell: ({ row }) => {
2929
const status = row.original.status ?? row.original.taskStatus;
3030
const alreadyBundled =
3131
row.original.bundleId && !props.taskBundle?.bundleId !== row.original.bundleId;
@@ -70,7 +70,7 @@ export const setupColumnTypes = (props, taskBaseRoute, manager, openComments) =>
7070
Header: props.intl.formatMessage(messages.featureIdLabel),
7171
accessor: (t) => t.name || t.title,
7272
Cell: ({ value }) => <div>{value || ""}</div>,
73-
Filter: ({ column }) => {
73+
Filter: () => {
7474
const filterValue = props.criteria?.filters?.featureId || "";
7575
const updateFilter = (value) => {
7676
const newFilters = { ...props.criteria?.filters };
@@ -157,7 +157,7 @@ export const setupColumnTypes = (props, taskBaseRoute, manager, openComments) =>
157157
return <span>{taskLink}</span>;
158158
}
159159
},
160-
Filter: ({ column }) => {
160+
Filter: () => {
161161
const filterValue = props.criteria?.filters?.id || "";
162162
const updateFilter = (value) => {
163163
const newFilters = { ...props.criteria?.filters };
@@ -293,7 +293,7 @@ export const setupColumnTypes = (props, taskBaseRoute, manager, openComments) =>
293293
</span>
294294
);
295295
},
296-
Filter: ({ column }) => {
296+
Filter: () => {
297297
let filterValue = props.criteria?.filters?.mappedOn;
298298
if (typeof filterValue === "string" && filterValue !== "") {
299299
filterValue = parseISO(filterValue);
@@ -601,7 +601,7 @@ export const setupColumnTypes = (props, taskBaseRoute, manager, openComments) =>
601601
</div>
602602
);
603603
},
604-
Filter: ({ column }) => {
604+
Filter: () => {
605605
const filterValue = props.criteria?.filters?.tags || "";
606606
const preferredTags = [
607607
...(props.challenge?.preferredTags?.split(",") ?? []),

src/components/TaskClusterMap/TileLayerErrorBoundary.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class TileLayerErrorBoundary extends React.Component {
1919
}
2020
}
2121

22-
static getDerivedStateFromError(error) {
22+
static getDerivedStateFromError() {
2323
return { hasError: true };
2424
}
2525

src/pages/Review/TasksReview/TasksReviewTable.jsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import classNames from "classnames";
22
import _cloneDeep from "lodash/cloneDeep";
33
import _isEqual from "lodash/isEqual";
4-
import _isObject from "lodash/isObject";
54
import _omit from "lodash/omit";
65
import { Fragment, useCallback, useEffect, useMemo, useState } from "react";
76
import { FormattedMessage } from "react-intl";
@@ -28,8 +27,7 @@ import {
2827
buildLinkToMapperExportCSV,
2928
buildLinkToReviewTableExportCSV,
3029
} from "../../../services/Task/TaskReview/TaskReview";
31-
import FilterSuggestTextBox from "./FilterSuggestTextBox";
32-
import { FILTER_SEARCH_ALL, FILTER_SEARCH_TEXT } from "./FilterSuggestTextBox";
30+
import { FILTER_SEARCH_ALL } from "./FilterSuggestTextBox";
3331
import messages from "./Messages";
3432
import { setupConfigurableColumns } from "./columns";
3533
import { setupColumnTypes } from "./setupColumnTypes";

0 commit comments

Comments
 (0)