Skip to content

Commit

Permalink
🐛 [backport release-0.5] Persist filters in URL for applications table (
Browse files Browse the repository at this point in the history
#2033) (#2038)

Backport-of:  (#2033)
Fix regression after: #1980
Resolves: https://issues.redhat.com/browse/MTA-1390

Initial filter values work best if the table is not persisting state
between reloads (default strategy, component state). If the table uses
session or local storage then any existing filter overwrites the default
value. From the end user perspective the functionality works only on the
first load with a clean browser (no previous state).

Switching to URL filter persistence provides the same functionality and
ensures we have only one source of filters.

Reference-Url:  #1698

Signed-off-by: Radoslaw Szwajkowski <rszwajko@redhat.com>
  • Loading branch information
rszwajko committed Aug 1, 2024
1 parent 0e579db commit 204f421
Showing 1 changed file with 2 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,7 @@ import { normalizeRisk } from "@app/utils/type-utils";
import { checkAccess } from "@app/utils/rbac-utils";

// Hooks
import {
deserializeFilterUrlParams,
useLocalTableControls,
} from "@app/hooks/table-controls";
import { useLocalTableControls } from "@app/hooks/table-controls";

// Queries
import { getArchetypeById, getAssessmentsByItemId } from "@app/api/rest";
Expand Down Expand Up @@ -313,11 +310,6 @@ export const ApplicationsTable: React.FC = () => {
};

// ----- Table controls
const urlParams = new URLSearchParams(window.location.search);
const filters = urlParams.get("filters");

const deserializedFilterValues = deserializeFilterUrlParams({ filters });

const tableControls = useLocalTableControls({
tableName: "applications",
idProperty: "id",
Expand All @@ -338,7 +330,7 @@ export const ApplicationsTable: React.FC = () => {
isActiveItemEnabled: true,
persistTo: {
activeItem: "urlParams",
filter: "sessionStorage",
filter: "urlParams",
pagination: "sessionStorage",
sort: "sessionStorage",
},
Expand All @@ -348,7 +340,6 @@ export const ApplicationsTable: React.FC = () => {
initialColumns: {
name: { isIdentity: true },
},
initialFilterValues: deserializedFilterValues,
getSortValues: (app) => ({
name: app.name,
businessService: app.businessService?.name || "",
Expand Down

0 comments on commit 204f421

Please sign in to comment.