From 600c06f8a328b55d2aca43c6df4609a3cfc894f3 Mon Sep 17 00:00:00 2001 From: engelhartrueben Date: Tue, 23 Jul 2024 16:36:23 -0400 Subject: [PATCH 1/4] fix bug where the CampaignTable would white screen of death after trying to sort --- src/components/AdminCampaignList/CampaignTable.jsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/AdminCampaignList/CampaignTable.jsx b/src/components/AdminCampaignList/CampaignTable.jsx index b28e8730d..a3e2395d8 100644 --- a/src/components/AdminCampaignList/CampaignTable.jsx +++ b/src/components/AdminCampaignList/CampaignTable.jsx @@ -39,7 +39,8 @@ export class CampaignTable extends React.Component { }; state = { - dataTableKey: "initial" + dataTableKey: "initial", + campaigns: [...this.props.data.organization.campaigns.campaigns] }; statusIsChanging = campaign => { @@ -346,9 +347,9 @@ export class CampaignTable extends React.Component { break; case "sort": this.clearCampaignSelection(); - campaigns.sort(this.sortFunc(tableState.sortOrder.name)); + this.state.campaigns.sort(this.sortFunc(tableState.sortOrder.name)); if (tableState.sortOrder.direction === "desc") { - campaigns.reverse(); + this.state.campaigns.reverse() } break; case "rowSelectionChange": @@ -372,7 +373,7 @@ export class CampaignTable extends React.Component {

Date: Tue, 23 Jul 2024 16:37:07 -0400 Subject: [PATCH 2/4] set initial sort to ID_DESC --- src/containers/AdminCampaignList.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/containers/AdminCampaignList.jsx b/src/containers/AdminCampaignList.jsx index 7f3bd177e..8ed20f5aa 100644 --- a/src/containers/AdminCampaignList.jsx +++ b/src/containers/AdminCampaignList.jsx @@ -19,7 +19,7 @@ import { dataTest } from "../lib/attributes"; import loadData from "./hoc/load-data"; import theme from "../styles/theme"; import SortBy, { - DUE_DATE_DESC_SORT + ID_DESC_SORT } from "../components/AdminCampaignList/SortBy"; import Search from "../components/Search"; import CampaignTable from "../components/AdminCampaignList/CampaignTable"; @@ -38,7 +38,7 @@ const INITIAL_FILTER = { isArchived: false, searchString: "" }; -const INITIAL_SORT_BY = DUE_DATE_DESC_SORT.value; +const INITIAL_SORT_BY = ID_DESC_SORT.value; export class AdminCampaignList extends React.Component { static propTypes = { From d393ccd40b8db917c934f33077bb3bb444082d80 Mon Sep 17 00:00:00 2001 From: engelhartrueben Date: Tue, 23 Jul 2024 16:42:08 -0400 Subject: [PATCH 3/4] remove sorting on archive column --- src/components/AdminCampaignList/CampaignTable.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/AdminCampaignList/CampaignTable.jsx b/src/components/AdminCampaignList/CampaignTable.jsx index a3e2395d8..f4ea2bf9c 100644 --- a/src/components/AdminCampaignList/CampaignTable.jsx +++ b/src/components/AdminCampaignList/CampaignTable.jsx @@ -120,7 +120,8 @@ export class CampaignTable extends React.Component { customBodyRender: (value, tableMeta) => { const campaign = campaigns.find(c => c.id === tableMeta.rowData[0]); return this.renderArchiveIcon(campaign); - } + }, + sort: false }, style: { width: "5em" From 85e62fb9baff196bdbdecee0255ca14198b3a388 Mon Sep 17 00:00:00 2001 From: engelhartrueben Date: Tue, 23 Jul 2024 16:50:13 -0400 Subject: [PATCH 4/4] call this.state.campaigns directly wherever possible. Object destructured pageInfo immidiately --- src/components/AdminCampaignList/CampaignTable.jsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/components/AdminCampaignList/CampaignTable.jsx b/src/components/AdminCampaignList/CampaignTable.jsx index f4ea2bf9c..aa44a3e92 100644 --- a/src/components/AdminCampaignList/CampaignTable.jsx +++ b/src/components/AdminCampaignList/CampaignTable.jsx @@ -307,8 +307,7 @@ export class CampaignTable extends React.Component { }; render() { - const { campaigns, pageInfo } = this.props.data.organization.campaigns; - const { limit, offset, total } = pageInfo; + const { limit, offset, total } = this.props.data.organization.campaigns.pageInfo; const displayPage = Math.floor(offset / limit) + 1; let rowSizeList = [10, 20, 50, 100]; @@ -355,7 +354,7 @@ export class CampaignTable extends React.Component { break; case "rowSelectionChange": const ids = tableState.selectedRows.data.map(({ index }) => { - return campaigns[index].id; + return this.state.campaigns[index].id; }); this.props.handleChecked(ids); break; @@ -367,7 +366,7 @@ export class CampaignTable extends React.Component { } }; - return campaigns.length === 0 ? ( + return this.state.campaigns.length === 0 ? ( } /> ) : (
@@ -377,7 +376,7 @@ export class CampaignTable extends React.Component { data={this.state.campaigns} columns={this.prepareTableColumns( this.props.data.organization, - campaigns + this.state.campaigns )} options={options} />