Skip to content

Commit e6f617f

Browse files
committed
Make textFilter persist across tabs
Same as #980, but for the textfilter, aka the search field. When typing something into the search bar, then switching to a different tab, then switching back to the original tab, the search bar is empty. With this patch, the search bar will instead remember what was originally written in it.
1 parent fa48c7a commit e6f617f

15 files changed

Lines changed: 48 additions & 55 deletions

File tree

src/components/configuration/Themes.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react";
22
import { useTranslation } from "react-i18next";
33
import TableFilters from "../shared/TableFilters";
44
import Table from "../shared/Table";
5-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
5+
import { fetchFilters } from "../../slices/tableFilterSlice";
66
import { themesTemplateMap } from "../../configs/tableConfigs/themesTableMap";
77
import { getTotalThemes } from "../../selectors/themeSelectors";
88
import { loadThemesIntoTable } from "../../thunks/tableThunks";
@@ -35,9 +35,6 @@ const Themes = () => {
3535

3636
dispatch(fetchFilters("themes"));
3737

38-
// Reset text filter
39-
dispatch(editTextFilter(""));
40-
4138
// Load themes on mount
4239
const loadThemes = async () => {
4340
// Fetching themes from server

src/components/events/Events.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { eventsTemplateMap } from "../../configs/tableConfigs/eventsTableMap";
1313
import {
1414
loadEventsIntoTable,
1515
} from "../../thunks/tableThunks";
16-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
16+
import { fetchFilters } from "../../slices/tableFilterSlice";
1717
import {
1818
getTotalEvents,
1919
isFetchingAssetUploadOptions as getIsFetchingAssetUploadOptions,
@@ -70,10 +70,7 @@ const Events = () => {
7070
// Clear redux of previous table data
7171
dispatch(resetTableProperties());
7272

73-
dispatch(fetchFilters("events"))
74-
75-
// Reset text filter
76-
dispatch(editTextFilter(""));
73+
dispatch(fetchFilters("events"));
7774

7875
// disable actions button
7976
dispatch(setShowActions(false));

src/components/events/Series.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { seriesTemplateMap } from "../../configs/tableConfigs/seriesTableMap";
99
import {
1010
loadSeriesIntoTable,
1111
} from "../../thunks/tableThunks";
12-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
12+
import { fetchFilters } from "../../slices/tableFilterSlice";
1313
import { getTotalSeries, isShowActions } from "../../selectors/seriesSeletctor";
1414
import Header from "../Header";
1515
import NavBar from "../NavBar";
@@ -51,10 +51,7 @@ const Series = () => {
5151
// Clear table of previous data
5252
dispatch(resetTableProperties());
5353

54-
dispatch(fetchFilters("series"))
55-
56-
// Reset text filer
57-
dispatch(editTextFilter(""));
54+
dispatch(fetchFilters("series"));
5855

5956
// disable actions button
6057
dispatch(showActionsSeries(false));

src/components/recordings/Recordings.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Notifications from "../shared/Notifications";
66
import { recordingsTemplateMap } from "../../configs/tableConfigs/recordingsTableMap";
77
import { getTotalRecordings } from "../../selectors/recordingSelectors";
88
import { loadRecordingsIntoTable } from "../../thunks/tableThunks";
9-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
9+
import { fetchFilters } from "../../slices/tableFilterSlice";
1010
import Header from "../Header";
1111
import NavBar from "../NavBar";
1212
import MainView from "../MainView";
@@ -35,9 +35,6 @@ const Recordings = () => {
3535

3636
dispatch(fetchFilters("recordings"));
3737

38-
// Reset text filter
39-
dispatch(editTextFilter(""));
40-
4138
// Load recordings on mount
4239
const loadRecordings = async () => {
4340
// Fetching recordings from server

src/components/shared/Stats.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ const Stats = () => {
3030
let filterValue;
3131
await stats.filters.forEach((f) => {
3232
if (f.name.toLowerCase() === "textfilter") {
33-
dispatch(editTextFilter(f.value));
33+
dispatch(editTextFilter({text: f.value, resource: "events"}));
3434
return;
3535
} else {
36-
dispatch(removeTextFilter());
36+
dispatch(removeTextFilter("events"));
3737
}
3838
let filter = filterMap.find(({ name }) => name === f.name);
3939
filterValue = f.value;

src/components/shared/TableFilters.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ const TableFilters = ({
5050
const filterMap = useAppSelector(state => getFilters(state, resource));
5151
const secondFilter = useAppSelector(state => getSecondFilter(state));
5252
const selectedFilter = useAppSelector(state => getSelectedFilter(state));
53-
const textFilter = useAppSelector(state => getTextFilter(state));
53+
const textFilter = useAppSelector(state => getTextFilter(state, resource));
5454

5555
// Variables for showing different dialogs depending on what was clicked
5656
const [showFilterSelector, setFilterSelector] = useState(false);
@@ -71,7 +71,7 @@ const TableFilters = ({
7171
setEndDate(undefined);
7272
setFilterSelector(false);
7373

74-
dispatch(removeTextFilter());
74+
dispatch(removeTextFilter(resource));
7575
dispatch(removeSelectedFilter());
7676
dispatch(removeSelectedFilter());
7777

@@ -102,7 +102,7 @@ const TableFilters = ({
102102
const handleChange = (name: string, value: string) => {
103103
let mustApplyChanges = false;
104104
if (name === "textFilter") {
105-
dispatch(editTextFilter(value));
105+
dispatch(editTextFilter({text: value, resource: resource}));
106106
mustApplyChanges = true;
107107
}
108108

src/components/systems/Jobs.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Table from "../shared/Table";
55
import Notifications from "../shared/Notifications";
66
import { jobsTemplateMap } from "../../configs/tableConfigs/jobsTableConfig";
77
import { getTotalJobs } from "../../selectors/jobSelectors";
8-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
8+
import { fetchFilters } from "../../slices/tableFilterSlice";
99
import {
1010
loadJobsIntoTable,
1111
} from "../../thunks/tableThunks";
@@ -37,9 +37,6 @@ const Jobs = () => {
3737

3838
dispatch(fetchFilters("jobs"));
3939

40-
// Reset text filter
41-
dispatch(editTextFilter(""));
42-
4340
// Load jobs on mount
4441
const loadJobs = async () => {
4542
// Fetching jobs from server

src/components/systems/Servers.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import Table from "../shared/Table";
55
import Notifications from "../shared/Notifications";
66
import { serversTemplateMap } from "../../configs/tableConfigs/serversTableMap";
77
import { getTotalServers } from "../../selectors/serverSelectors";
8-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
8+
import { fetchFilters } from "../../slices/tableFilterSlice";
99
import {
1010
loadServersIntoTable,
1111
} from "../../thunks/tableThunks";
@@ -37,9 +37,6 @@ const Servers = () => {
3737

3838
dispatch(fetchFilters("servers"));
3939

40-
// Reset text filter
41-
dispatch(editTextFilter(""));
42-
4340
// Load servers on mount
4441
const loadServers = async () => {
4542
// Fetching servers from server

src/components/systems/Services.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import TableFilters from "../shared/TableFilters";
44
import Table from "../shared/Table";
55
import Notifications from "../shared/Notifications";
66
import { servicesTemplateMap } from "../../configs/tableConfigs/servicesTableMap";
7-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
7+
import { fetchFilters } from "../../slices/tableFilterSlice";
88
import {
99
loadServicesIntoTable,
1010
} from "../../thunks/tableThunks";
@@ -37,9 +37,6 @@ const Services = () => {
3737

3838
dispatch(fetchFilters("services"));
3939

40-
// Reset text filter
41-
dispatch(editTextFilter(""));
42-
4340
// Load services on mount
4441
const loadServices = async () => {
4542
// Fetching services from server

src/components/users/Acls.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import TableFilters from "../shared/TableFilters";
44
import Table from "../shared/Table";
55
import Notifications from "../shared/Notifications";
66
import { aclsTemplateMap } from "../../configs/tableConfigs/aclsTableMap";
7-
import { fetchFilters, editTextFilter } from "../../slices/tableFilterSlice";
7+
import { fetchFilters } from "../../slices/tableFilterSlice";
88
import {
99
loadAclsIntoTable,
1010
} from "../../thunks/tableThunks";
@@ -37,9 +37,6 @@ const Acls = () => {
3737

3838
dispatch(fetchFilters("acls"));
3939

40-
// Reset text filter
41-
dispatch(editTextFilter(""));
42-
4340
// Load acls on mount
4441
const loadAcls = async () => {
4542
// Fetching acls from server

0 commit comments

Comments
 (0)