@@ -3,9 +3,16 @@ import Image from "next/image";
3
3
import { Input } from "@/components/ui/input" ;
4
4
import { Label } from "@/components/ui/label" ;
5
5
import { Button } from "@/components/ui/button" ;
6
- import { UploadCloud } from "lucide-react" ;
6
+ import { UploadCloud , Command } from "lucide-react" ;
7
7
import { UserButton } from "@clerk/nextjs" ;
8
- import { ChangeEvent , Dispatch , SetStateAction } from "react" ;
8
+ import { isMobile } from "react-device-detect" ;
9
+ import {
10
+ ChangeEvent ,
11
+ Dispatch ,
12
+ SetStateAction ,
13
+ useState ,
14
+ useEffect ,
15
+ } from "react" ;
9
16
import { typeUpldState } from "@/types/appx" ;
10
17
11
18
import LightImage from "@/public/assets/TransparentBlob White.png" ;
@@ -24,6 +31,19 @@ export default function Header({
24
31
open,
25
32
uploadState,
26
33
} : HeaderProp ) {
34
+ const [ count , setCount ] = useState ( 0 ) ;
35
+ const [ isMobileUse , setIsMobileUse ] = useState ( false ) ;
36
+
37
+ useEffect ( ( ) => {
38
+ setCount ( ( prev ) => prev + 1 ) ;
39
+
40
+ count === 1 && setIsMobileUse ( isMobile ) ;
41
+
42
+ return ( ) => {
43
+ setCount ( 0 ) ;
44
+ } ;
45
+ } , [ count ] ) ;
46
+
27
47
return (
28
48
< header className = "fixed top-0 w-full z-10 md:p-3 md:px-10 lg:p-3 lg:px-10 p-4 bg-white/30 dark:bg-darkestbg/70 backdrop-blur-md border border-transparent border-b-borderbtm/20 dark:border-b-borderbtm flex items-center justify-between" >
29
49
< div className = "" >
@@ -48,7 +68,7 @@ export default function Header({
48
68
/>
49
69
</ Link >
50
70
</ div >
51
- < nav className = "flex items-center md:gap-4 lg:gap-4 gap-1 " >
71
+ < nav className = "flex items-center md:gap-4 lg:gap-4 gap-3 " >
52
72
{ /* account */ }
53
73
< Input
54
74
id = "upload-file"
@@ -62,8 +82,8 @@ export default function Header({
62
82
htmlFor = "upload-file"
63
83
className = { `${
64
84
uploadState . isUploading
65
- ? "bg-royalblue/30 p-2 px-4 pointer-events-none border border-blueborder rounded text-white flex items-center gap-1"
66
- : "md:bg-royalblue lg:bg-royalblue bg-transparent md:transition-colors lg:transition-colors md:hover:bg-royalblue/60 lg:hover:bg-royalblue/60 p-2 px-4 cursor-pointer border md:border-blueborder/20 lg:border-blueborder/20 border-transparent rounded text-white flex items-center gap-1"
85
+ ? "bg-royalblue/30 p-2 md: px-4 lg:px-4 px-2 pointer-events-none border border-blueborder rounded text-white flex items-center gap-1"
86
+ : "md:bg-royalblue lg:bg-royalblue bg-transparent md:transition-colors lg:transition-colors md:hover:bg-royalblue/60 lg:hover:bg-royalblue/60 p-2 md: px-4 lg:px-4 px-2 cursor-pointer border md:border-blueborder/20 lg:border-blueborder/20 border-transparent rounded text-white flex items-center gap-1"
67
87
} `}
68
88
>
69
89
< UploadCloud className = "md:w-auto md:h-auto lg:w-auto lg:h-auto w-6 h-6" /> { " " }
@@ -73,12 +93,16 @@ export default function Header({
73
93
: uploadState . props . upload }
74
94
</ span >
75
95
</ Label >
76
- < Button
77
- className = "bg-darkestbg dark:bg-darkbtn hover:bg-thirdprop hover:dark:bg-borderbtm text-white dark:text-white rounded md:flex lg:flex hidden items-center gap-1"
78
- onClick = { ( ) => setOpen ( ! open ) }
79
- >
80
- Menu
81
- </ Button >
96
+ { isMobileUse ? (
97
+ < Command className = "cursor-pointer" onClick = { ( ) => setOpen ( ! open ) } />
98
+ ) : (
99
+ < Button
100
+ className = "bg-darkestbg dark:bg-darkbtn hover:bg-thirdprop hover:dark:bg-borderbtm text-white dark:text-white rounded items-center gap-1"
101
+ onClick = { ( ) => setOpen ( ! open ) }
102
+ >
103
+ Menu
104
+ </ Button >
105
+ ) }
82
106
< UserButton />
83
107
</ nav >
84
108
</ header >
0 commit comments