Skip to content

Commit

Permalink
Merge pull request #15 from git-init-priyanshu/nextjs
Browse files Browse the repository at this point in the history
Responsiveness
  • Loading branch information
git-init-priyanshu authored Aug 12, 2024
2 parents f17a885 + 0468ccc commit aa922a5
Show file tree
Hide file tree
Showing 22 changed files with 1,260 additions and 371 deletions.
33 changes: 26 additions & 7 deletions app/components/Header/components/SearchBar.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use client"

import { useCallback, useMemo, useState } from "react"
import { useCallback, useEffect, useMemo, useRef, useState } from "react"
import Image from "next/image";
import { Search, X } from "lucide-react"
import { debounce } from 'lodash'
Expand Down Expand Up @@ -30,6 +30,8 @@ type SearchResponse = {
export default function SearchBar() {
const router = useRouter();

const searchedResponseRef = useRef<HTMLDivElement>(null);

const [searchResponse, setSearchResponse] = useState<SearchResponse | undefined>(undefined);
const [searchValue, setSearchValue] = useState("");
const [isFocused, setIsFocused] = useState(false);
Expand All @@ -47,8 +49,25 @@ export default function SearchBar() {
[search]
);

const handleDocumentClick = (e: any) => {
if (
searchedResponseRef.current &&
!searchedResponseRef.current.contains(e.target)
) {
setIsFocused(false);
}
};
useEffect(() => {
document.addEventListener('mousedown', handleDocumentClick);
return () => {
document.removeEventListener('mousedown', handleDocumentClick);
};
}, []);

return (
<div className={`transform relative hidden md:block lg:w-[30rem] lg:translate-x-1/4`}>
<div
className={`transform relative hidden md:block lg:w-[30rem] lg:translate-x-1/4`}
>
<div className="relative">
<Input
className={
Expand All @@ -57,19 +76,18 @@ export default function SearchBar() {
: "rounded-full"} px-8 `
}
onFocus={() => setIsFocused(true)}
onBlur={() => setIsFocused(false)}
value={searchValue}
onChange={(e) => {
setSearchValue(e.target.value);
if (!e.target.value) return setSearchResponse(undefined);
debouncedSearch(e.target.value)
debouncedSearch(e.target.value);
}}
placeholder="Search documents..."
/>
<Search size={20} className="absolute text-slate-500 top-1/2 transform -translate-y-1/2 ml-2" />
<X
size={20}
onClick={() => setSearchValue("")}
onClick={() => setSearchValue('')}
className={
`${!searchValue
? "hidden"
Expand All @@ -78,6 +96,7 @@ export default function SearchBar() {
</div>

<div
ref={searchedResponseRef}
className={
`${isFocused && searchResponse
? "block"
Expand Down Expand Up @@ -124,5 +143,5 @@ export default function SearchBar() {
}
</div>
</div>
)
}
);
};
216 changes: 0 additions & 216 deletions app/writer/[id]/components/Header.tsx

This file was deleted.

Loading

0 comments on commit aa922a5

Please sign in to comment.