feat: clear all button only appears if there is changes on search params

This commit is contained in:
Pablo Lara
2024-09-06 11:25:09 +02:00
parent 5326ffbcc9
commit a30c6520d4
2 changed files with 22 additions and 11 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ export default function Home() {
<>
<Header title="Scan Overview" icon="solar:pie-chart-2-outline" />
<Spacer y={4} />
<FilterControls date accounts regions mutedFindings />
<FilterControls providers date accounts regions mutedFindings />
<Spacer y={10} />
<div className="grid grid-cols-12 gap-4">
<CustomBox
+21 -10
View File
@@ -2,7 +2,7 @@
import { Button } from "@nextui-org/react";
import { useRouter, useSearchParams } from "next/navigation";
import React, { useCallback } from "react";
import React, { useCallback, useEffect, useState } from "react";
import { CustomAccountSelection } from "./CustomAccountSelection";
import { CustomCheckboxMutedFindings } from "./CustomCheckboxMutedFindings";
@@ -30,6 +30,14 @@ export const FilterControls: React.FC<FilterControlsProps> = ({
}) => {
const router = useRouter();
const searchParams = useSearchParams();
const [showClearButton, setShowClearButton] = useState(false);
useEffect(() => {
const hasFilters = Array.from(searchParams.keys()).some(
(key) => key.startsWith("filter[") || key === "sort",
);
setShowClearButton(hasFilters);
}, [searchParams]);
const clearAllFilters = useCallback(() => {
const params = new URLSearchParams(searchParams.toString());
@@ -49,15 +57,18 @@ export const FilterControls: React.FC<FilterControlsProps> = ({
{regions && <CustomRegionSelection />}
{accounts && <CustomAccountSelection />}
{mutedFindings && <CustomCheckboxMutedFindings />}
<Button
className="w-full md:w-fit"
onClick={clearAllFilters}
variant="flat"
color="default"
size="sm"
>
Clear all
</Button>
{showClearButton && (
<Button
className="w-full md:w-fit transition-all duration-300 ease-in-out"
onClick={clearAllFilters}
variant="flat"
color="default"
size="sm"
>
Clear all
</Button>
)}
</div>
);
};