[WEB-1690] fix: always show the search input if search query is present (#4901)
* fix: don't hide search input if search query is present * chore: update logic * chore: update dependency aray
This commit is contained in:
parent
efab68b19d
commit
367ccba17e
5 changed files with 26 additions and 10 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useCallback, useRef, useState } from "react";
|
import { useCallback, useEffect, useRef, useState } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
import { Search, Briefcase, X, ListFilter } from "lucide-react";
|
import { Search, Briefcase, X, ListFilter } from "lucide-react";
|
||||||
|
|
@ -82,6 +82,10 @@ export const ProjectsListHeader = observer(() => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (searchQuery.trim() !== "") setIsSearchOpen(true);
|
||||||
|
}, [searchQuery]);
|
||||||
|
|
||||||
const isFiltersApplied = calculateTotalFilters(filters ?? {}) !== 0;
|
const isFiltersApplied = calculateTotalFilters(filters ?? {}) !== 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { useCallback, useRef, useState } from "react";
|
import { useCallback, useEffect, useRef, useState } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// icons
|
// icons
|
||||||
import { ListFilter, Search, X } from "lucide-react";
|
import { ListFilter, Search, X } from "lucide-react";
|
||||||
|
|
@ -63,6 +63,10 @@ export const CyclesViewHeader: React.FC<Props> = observer((props) => {
|
||||||
|
|
||||||
const isFiltersApplied = calculateTotalFilters(currentProjectFilters ?? {}) !== 0;
|
const isFiltersApplied = calculateTotalFilters(currentProjectFilters ?? {}) !== 0;
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (searchQuery.trim() !== "") setIsSearchOpen(true);
|
||||||
|
}, [searchQuery]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
{!isSearchOpen && (
|
{!isSearchOpen && (
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React, { FC, useCallback, useRef, useState } from "react";
|
import React, { FC, useCallback, useEffect, useRef, useState } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
// icons
|
// icons
|
||||||
|
|
@ -26,13 +26,10 @@ import { usePlatformOS } from "@/hooks/use-platform-os";
|
||||||
export const ModuleViewHeader: FC = observer(() => {
|
export const ModuleViewHeader: FC = observer(() => {
|
||||||
// refs
|
// refs
|
||||||
const inputRef = useRef<HTMLInputElement>(null);
|
const inputRef = useRef<HTMLInputElement>(null);
|
||||||
|
|
||||||
// router
|
// router
|
||||||
const { projectId } = useParams();
|
const { projectId } = useParams();
|
||||||
|
|
||||||
// hooks
|
// hooks
|
||||||
const { isMobile } = usePlatformOS();
|
const { isMobile } = usePlatformOS();
|
||||||
|
|
||||||
// store hooks
|
// store hooks
|
||||||
const {
|
const {
|
||||||
workspace: { workspaceMemberIds },
|
workspace: { workspaceMemberIds },
|
||||||
|
|
@ -85,6 +82,10 @@ export const ModuleViewHeader: FC = observer(() => {
|
||||||
if (isSearchOpen && searchQuery.trim() === "") setIsSearchOpen(false);
|
if (isSearchOpen && searchQuery.trim() === "") setIsSearchOpen(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (searchQuery.trim() !== "") setIsSearchOpen(true);
|
||||||
|
}, [searchQuery]);
|
||||||
|
|
||||||
const isFiltersApplied = calculateTotalFilters(filters ?? {}) !== 0 || displayFilters?.favorites;
|
const isFiltersApplied = calculateTotalFilters(filters ?? {}) !== 0 || displayFilters?.favorites;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC, useState, useRef } from "react";
|
import { FC, useState, useRef, useEffect } from "react";
|
||||||
import { Search, X } from "lucide-react";
|
import { Search, X } from "lucide-react";
|
||||||
// helpers
|
// helpers
|
||||||
import { cn } from "@/helpers/common.helper";
|
import { cn } from "@/helpers/common.helper";
|
||||||
|
|
@ -31,6 +31,10 @@ export const PageSearchInput: FC<Props> = (props) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (searchQuery.trim() !== "") setIsSearchOpen(true);
|
||||||
|
}, [searchQuery]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{!isSearchOpen && (
|
{!isSearchOpen && (
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import React, { useRef, useState } from "react";
|
import React, { useEffect, useRef, useState } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// icons
|
// icons
|
||||||
import { Search, X } from "lucide-react";
|
import { Search, X } from "lucide-react";
|
||||||
|
|
@ -11,10 +11,9 @@ import useOutsideClickDetector from "@/hooks/use-outside-click-detector";
|
||||||
export const ViewListHeader = observer(() => {
|
export const ViewListHeader = observer(() => {
|
||||||
// states
|
// states
|
||||||
const [isSearchOpen, setIsSearchOpen] = useState(false);
|
const [isSearchOpen, setIsSearchOpen] = useState(false);
|
||||||
// const [isSearchOpen, setIsSearchOpen] = useState(searchQuery !== "" ? true : false);
|
|
||||||
// refs
|
// refs
|
||||||
const inputRef = useRef<HTMLInputElement>(null);
|
const inputRef = useRef<HTMLInputElement>(null);
|
||||||
|
// store hooks
|
||||||
const { searchQuery, updateSearchQuery } = useProjectView();
|
const { searchQuery, updateSearchQuery } = useProjectView();
|
||||||
|
|
||||||
// handlers
|
// handlers
|
||||||
|
|
@ -33,6 +32,10 @@ export const ViewListHeader = observer(() => {
|
||||||
if (isSearchOpen && searchQuery.trim() === "") setIsSearchOpen(false);
|
if (isSearchOpen && searchQuery.trim() === "") setIsSearchOpen(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (searchQuery.trim() !== "") setIsSearchOpen(true);
|
||||||
|
}, [searchQuery]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="h-full flex items-center gap-2">
|
<div className="h-full flex items-center gap-2">
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue