@@ -33,43 +33,84 @@ interface HeaderProps {
33
33
systemMessageRef : object ;
34
34
}
35
35
36
- export const Header = memo ( ( {
37
- input,
38
- isLoading,
39
- systemMessageRef
40
- } : HeaderProps ) => {
41
- useEffect ( ( ) => {
42
- const details = [ ...document . querySelectorAll ( '.menu details' ) ] ;
43
- document . addEventListener ( 'click' , ( event ) => {
44
- if ( ! details . some ( ( el ) => el . contains ( event . target ) ) ) {
45
- for ( const el of details ) {
46
- el . removeAttribute ( 'open' ) ;
36
+ export const Header = memo (
37
+ ( { input, isLoading, systemMessageRef } : HeaderProps ) => {
38
+ useEffect ( ( ) => {
39
+ const details = [ ...document . querySelectorAll ( '.menu details' ) ] ;
40
+ document . addEventListener ( 'click' , ( event ) => {
41
+ if ( ! details . some ( ( el ) => el . contains ( event . target ) ) ) {
42
+ for ( const el of details ) {
43
+ el . removeAttribute ( 'open' ) ;
44
+ }
45
+ } else {
46
+ for ( const el of details ) {
47
+ ! el . contains ( event . target ) ? el . removeAttribute ( 'open' ) : '' ;
48
+ }
47
49
}
48
- } else {
49
- for ( const el of details ) {
50
- ! el . contains ( event . target ) ? el . removeAttribute ( 'open' ) : '' ;
51
- }
52
- }
53
- } ) ;
54
- } , [ ] ) ;
50
+ } ) ;
51
+ } , [ ] ) ;
55
52
56
- return (
57
- < div className = "fixed top-0 z-50 navbar bg-base-300" >
58
- < div className = "navbar-start" >
59
- < div className = "dropdown" >
60
- { /* biome-ignore lint/a11y/noLabelWithoutControl: <explanation> */ }
61
- < label tabIndex = { 0 } className = "btn btn-ghost lg:hidden" >
62
- < Suspense fallback = { < div > Loading...</ div > } >
63
- < FontAwesomeIcon icon = { faBars } />
64
- </ Suspense >
65
- </ label >
66
- < ul
67
- tabIndex = { 0 }
68
- className = "p-2 mt-3 shadow menu menu-sm dropdown-content z-1 bg-base-200 rounded-box"
53
+ return (
54
+ < div className = "fixed top-0 z-50 navbar bg-base-300" >
55
+ < div className = "navbar-start" >
56
+ < div className = "dropdown" >
57
+ { /* biome-ignore lint/a11y/noLabelWithoutControl: <explanation> */ }
58
+ < label tabIndex = { 0 } className = "btn btn-ghost lg:hidden" >
59
+ < Suspense fallback = { < div > Loading...</ div > } >
60
+ < FontAwesomeIcon icon = { faBars } />
61
+ </ Suspense >
62
+ </ label >
63
+ < ul
64
+ tabIndex = { 0 }
65
+ className = "p-2 w-52 mt-3 shadow menu menu-sm dropdown-content z-1 bg-base-200 rounded-box"
66
+ >
67
+ < li >
68
+ < details className = "system-message-dropdown" >
69
+ < summary className = "whitespace-nowrap" >
70
+ < Suspense fallback = { < div > Loading...</ div > } >
71
+ < FontAwesomeIcon icon = { faRobot } />
72
+ </ Suspense >
73
+ System
74
+ </ summary >
75
+ < ul className = "bg-base-200" >
76
+ < li >
77
+ < SystemMessage
78
+ input = { input }
79
+ systemMessageRef = { systemMessageRef }
80
+ />
81
+ </ li >
82
+ </ ul >
83
+ </ details >
84
+ </ li >
85
+ < li >
86
+ < Parameters />
87
+ </ li >
88
+ < li >
89
+ < ClearChatButton buttonText = "Clear" isLoading = { isLoading } />
90
+ </ li >
91
+ < li >
92
+ < ExportChatButton buttonText = "Export" isLoading = { isLoading } />
93
+ </ li >
94
+ < li >
95
+ < ThemeChanger />
96
+ </ li >
97
+ </ ul >
98
+ </ div >
99
+ < a
100
+ className = "text-sm leading-4 normal-case lg:text-xl"
101
+ href = "https://github.com/cu-cit-cloud-team/azure-openai-gpt4-chat"
102
+ target = "_blank"
103
+ rel = "noreferrer noopener"
69
104
>
105
+ Cloud Team GPT Chat v{ pkg . version }
106
+ </ a >
107
+ < UpdateCheck />
108
+ </ div >
109
+ < div className = "hidden navbar-center lg:flex" >
110
+ < ul className = "menu menu-horizontal" >
70
111
< li >
71
112
< details className = "system-message-dropdown" >
72
- < summary className = "whitespace-nowrap" >
113
+ < summary >
73
114
< Suspense fallback = { < div > Loading...</ div > } >
74
115
< FontAwesomeIcon icon = { faRobot } />
75
116
</ Suspense >
@@ -99,56 +140,13 @@ export const Header = memo(({
99
140
</ li >
100
141
</ ul >
101
142
</ div >
102
- < a
103
- className = "text-sm leading-4 normal-case lg:text-xl"
104
- href = "https://github.com/cu-cit-cloud-team/azure-openai-gpt4-chat"
105
- target = "_blank"
106
- rel = "noreferrer noopener"
107
- >
108
- Cloud Team GPT Chat v{ pkg . version }
109
- </ a >
110
- < UpdateCheck />
111
- </ div >
112
- < div className = "hidden navbar-center lg:flex" >
113
- < ul className = "menu menu-horizontal" >
114
- < li >
115
- < details className = "system-message-dropdown" >
116
- < summary >
117
- < Suspense fallback = { < div > Loading...</ div > } >
118
- < FontAwesomeIcon icon = { faRobot } />
119
- </ Suspense >
120
- System
121
- </ summary >
122
- < ul className = "w-fit bg-base-200" >
123
- < li >
124
- < SystemMessage
125
- input = { input }
126
- systemMessageRef = { systemMessageRef }
127
- />
128
- </ li >
129
- </ ul >
130
- </ details >
131
- </ li >
132
- < li >
133
- < Parameters />
134
- </ li >
135
- < li >
136
- < ClearChatButton buttonText = "Clear" isLoading = { isLoading } />
137
- </ li >
138
- < li >
139
- < ExportChatButton buttonText = "Export" isLoading = { isLoading } />
140
- </ li >
141
- < li >
142
- < ThemeChanger />
143
- </ li >
144
- </ ul >
145
- </ div >
146
- < div className = "navbar-end" >
147
- < UserAvatar />
143
+ < div className = "navbar-end" >
144
+ < UserAvatar />
145
+ </ div >
148
146
</ div >
149
- </ div >
150
- ) ;
151
- } ) ;
147
+ ) ;
148
+ }
149
+ ) ;
152
150
153
151
Header . displayName = 'Header' ;
154
152
0 commit comments