@@ -24,9 +24,7 @@ function PinnedSearchBar({
2424 const [ searchText , setSearchText ] = useState ( "" ) ;
2525 const [ suggestions , setSuggestions ] = useState < string [ ] > ( [ ] ) ;
2626 const suggestionsRef = useRef < HTMLUListElement | null > ( null ) ;
27- const floatingContainerRef = useRef < HTMLDivElement > ( null ) ;
2827 const [ pinned , setPinned ] = useState < boolean > ( false ) ;
29- const [ open , setOpen ] = useState ( false ) ;
3028 const [ showControls , setShowControls ] = useState ( false ) ;
3129 const searchRef = useRef < HTMLInputElement > ( null ) ;
3230 const [ fuzzy , setFuzzy ] = useState (
@@ -76,19 +74,6 @@ function PinnedSearchBar({
7674 filtersNotPulled ?.( ) ;
7775 } ;
7876
79- const handleClickOutside = ( event : MouseEvent ) => {
80- const target = event . target as Node ;
81- if (
82- floatingContainerRef . current &&
83- ! floatingContainerRef . current . contains ( target )
84- ) {
85- setOpen ( false ) ;
86- }
87-
88- if ( suggestionsRef . current && ! suggestionsRef . current . contains ( target ) ) {
89- setSuggestions ( [ ] ) ;
90- }
91- } ;
9277
9378 useEffect ( ( ) => {
9479 const handleAddClicked = ( ) => {
@@ -156,7 +141,6 @@ function PinnedSearchBar({
156141 const handleRemoveAll = ( ) => {
157142 localStorage . setItem ( "userSubjects" , JSON . stringify ( [ ] ) ) ;
158143 window . dispatchEvent ( new Event ( "userSubjectsChanged" ) ) ;
159- setOpen ( false ) ;
160144 } ;
161145
162146 useEffect ( ( ) => {
@@ -167,22 +151,16 @@ function PinnedSearchBar({
167151 if ( storedSubjects . length > 0 ) {
168152 setShowControls ( true ) ;
169153 }
170-
171- document . addEventListener ( "mousedown" , handleClickOutside ) ;
172- return ( ) => {
173- document . removeEventListener ( "mousedown" , handleClickOutside ) ;
174- } ;
175154 } , [ ] ) ;
176155
177156 return (
178157 < div className = "w-full font-play" >
179158 < div className = "flex justify-center" >
180- < div className = "w-full max-w-xl " >
159+ < div className = "w-full max-w-2xl " >
181160 < form
182161 onSubmit = { ( e ) => {
183162 e . preventDefault ( ) ;
184163 handlePinToggle ( ) ;
185- if ( searchText . trim ( ) !== "" ) setOpen ( false ) ;
186164 } }
187165 >
188166 < div className = "flex items-center gap-2" >
@@ -220,68 +198,33 @@ function PinnedSearchBar({
220198 </ ul >
221199 ) }
222200 </ div >
223-
224- < div className = "hidden md:block" >
225- < PinButton
226- isPinned = { pinned }
227- onToggle = { handlePinToggle }
228- disabled = { ! showControls || searchText . trim ( ) === "" }
229- />
230- </ div >
231-
232- < div
233- ref = { floatingContainerRef }
234- className = { `md:hidden ${ showControls ? "block" : "hidden" } ` }
201+ < PinButton
202+ isPinned = { pinned }
203+ onToggle = { handlePinToggle }
204+ disabled = { ! showControls || searchText . trim ( ) === "" }
205+ />
206+ { displayPapers && < button
207+ onClick = { ( ) => {
208+ handleRemoveAll ( ) ;
209+ } }
210+ className = "items-center gap-2 rounded-full border border-[#3A3745] bg-[#e8e9ff] px-3 py-1.5 text-sm font-semibold text-gray-700 transition hover:bg-slate-50 dark:bg-black dark:text-white dark:hover:bg-[#1A1823] hidden sm:flex"
235211 >
236- < NavDropdownButton
237- isOpen = { open }
238- onClick = { ( ) => setOpen ( ( prev ) => ! prev ) }
239- variant = "pinned"
240- />
241212
242- < div className = { `${ open ? "block" : "hidden" } ` } >
243- < FloatingControls >
244- < PinButton
245- isPinned = { pinned }
246- onToggle = { ( ) => {
247- handlePinToggle ( ) ;
248- setOpen ( false ) ;
249- } }
250- disabled = { ! showControls || searchText . trim ( ) === "" }
251- />
252- { displayPapers && (
253- < button
254- onClick = { ( ) => {
255- handleRemoveAll ( ) ;
256- setOpen ( false ) ;
257- } }
258- className = "flex items-center gap-2 rounded-full border border-[#3A3745] bg-[#e8e9ff] px-3 py-1.5 text-sm font-semibold text-gray-700 transition hover:bg-slate-50 dark:bg-black dark:text-white dark:hover:bg-[#1A1823]"
259- >
260- Remove All < X className = "h-4 w-4" />
261- </ button >
262- ) }
263- </ FloatingControls >
264- </ div >
265- </ div >
213+ Remove All < X className = "h-4 w-4" />
214+ </ button > }
266215 </ div >
267216 </ form >
268217 </ div >
269218 </ div >
270- { displayPapers && (
271- < div className = "mt-2 hidden w-full md:block" >
272- < div className = "ml-auto w-fit" >
273- < button
274- onClick = { ( ) => {
275- handleRemoveAll ( ) ;
276- setOpen ( false ) ;
277- } }
278- className = "flex items-center gap-2 rounded-full border border-[#3A3745] bg-[#e8e9ff] px-3 py-1.5 text-sm font-semibold text-gray-700 transition hover:bg-slate-50 dark:bg-black dark:text-white dark:hover:bg-[#1A1823]"
279- >
280- Remove All < X className = "h-4 w-4" />
281- </ button >
282- </ div >
283- </ div >
284- ) }
219+
220+ { displayPapers && < button
221+ onClick = { ( ) => {
222+ handleRemoveAll ( ) ;
223+ } }
224+ className = "sm:hidden mt-4 flex items-center gap-2 rounded-full border border-[#3A3745] bg-[#e8e9ff] px-3 py-1.5 text-sm font-semibold text-gray-700 transition hover:bg-slate dark:bg-black dark:text-white dark:hover:bg-[#1A1823]"
225+ >
226+ Remove All < X className = "h-4 w-4" />
227+ </ button > }
285228 </ div >
286229 ) ;
287230}
0 commit comments