File tree Expand file tree Collapse file tree 4 files changed +51
-28
lines changed
builder/src/components/Common Expand file tree Collapse file tree 4 files changed +51
-28
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ ' @openzeppelin/ui-builder-ui ' : minor
3+ ---
4+
5+ Move Header component to UI package
Original file line number Diff line number Diff line change 1- import { Menu } from 'lucide-react' ;
2-
31import { WalletConnectionHeader } from '@openzeppelin/ui-builder-react-core' ;
2+ import { Header as UIHeader } from '@openzeppelin/ui-builder-ui' ;
43
54interface HeaderProps {
65 title ?: string ;
@@ -13,31 +12,10 @@ interface HeaderProps {
1312 */
1413export const Header = ( { title, onOpenSidebar } : HeaderProps ) => {
1514 return (
16- < header className = "border-b border-[#F5F5F5] bg-background" >
17- < div className = "flex h-16 items-center px-3 sm:px-4 md:px-5 min-w-0" >
18- { /* Mobile menu button */ }
19- < button
20- type = "button"
21- aria-label = "Open menu"
22- onClick = { onOpenSidebar }
23- className = "mr-2 sm:mr-3 inline-flex items-center justify-center rounded-md p-2 text-primary hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary xl:hidden"
24- >
25- < Menu className = "size-5" />
26- </ button >
27- { /* Left side - Title (conditional) */ }
28- { title && (
29- < div className = "flex items-center min-w-0" >
30- < h1 className = "truncate max-w-[50vw] text-base font-semibold text-foreground" >
31- { title }
32- </ h1 >
33- </ div >
34- ) }
35-
36- { /* Right side - Wallet Connection */ }
37- < div className = "ml-auto flex items-center" >
38- < WalletConnectionHeader />
39- </ div >
40- </ div >
41- </ header >
15+ < UIHeader
16+ title = { title }
17+ onOpenSidebar = { onOpenSidebar }
18+ rightContent = { < WalletConnectionHeader /> }
19+ />
4220 ) ;
4321} ;
Original file line number Diff line number Diff line change 1+ import { Menu } from 'lucide-react' ;
2+ import React from 'react' ;
3+
4+ export interface HeaderProps {
5+ title ?: string ;
6+ /** Open the mobile sidebar */
7+ onOpenSidebar ?: ( ) => void ;
8+ /** Content to display on the right side of the header */
9+ rightContent ?: React . ReactNode ;
10+ }
11+
12+ export const Header = ( { title, onOpenSidebar, rightContent } : HeaderProps ) : React . ReactElement => {
13+ return (
14+ < header className = "border-b border-[#F5F5F5] bg-background" >
15+ < div className = "flex h-16 items-center px-3 sm:px-4 md:px-5 min-w-0" >
16+ { /* Mobile menu button */ }
17+ < button
18+ type = "button"
19+ aria-label = "Open menu"
20+ onClick = { onOpenSidebar }
21+ className = "mr-2 sm:mr-3 inline-flex items-center justify-center rounded-md p-2 text-primary hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary xl:hidden"
22+ >
23+ < Menu className = "size-5" />
24+ </ button >
25+ { /* Left side - Title (conditional) */ }
26+ { title && (
27+ < div className = "flex items-center min-w-0" >
28+ < h1 className = "truncate max-w-[50vw] text-base font-semibold text-foreground" >
29+ { title }
30+ </ h1 >
31+ </ div >
32+ ) }
33+
34+ { /* Right side - Wallet Connection or other content */ }
35+ < div className = "ml-auto flex items-center" > { rightContent } </ div >
36+ </ div >
37+ </ header >
38+ ) ;
39+ } ;
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ export * from './empty-state';
1111export * from './external-link' ;
1212export * from './footer' ;
1313export * from './form' ;
14+ export * from './header' ;
1415export * from './input' ;
1516export * from './label' ;
1617export * from './loading-button' ;
You can’t perform that action at this time.
0 commit comments