Navbar
Navbar Components
Bao gồm các components:
- Navbar
 - NavLeft
 - NavRight
 - NavTitle
 - NavTitleLarge
 
Navbar Properties
<Navbar/> properties
| Prop | Type | Default | Description | 
|---|---|---|---|
| title | string | Navbar title | |
| subtitle | string | Navbar sub title | |
| backLink | boolean | string | Thêm back link với icon mặc định, với kiểu dữ liệu string sẽ thêm nội dung text đi kèm icon | |
| backLinkUrl | string | Tùy chỉnh back link URL | |
| backLinkForce | boolean | false | Buộc tải trang không quan tâm các trang trước trong lịch sử | 
| backLinkShowText | boolean | Cho phép hiển thị backLink đã khai báo với kiểu string cùng với back icon | |
| sliding | boolean | true | Kích hoạt hiệu ứng "sliding" | 
| hidden | boolean | false | Ẩn navbar | 
| innerClass | string | Thêm class cho navbar-inner element | |
| innerClassName | string | Alias cho innerClass prop | |
| large | boolean | Chuyển navbar sang dạng kích thước lớn | |
| transparent | boolean | Chuyển navbar sang dạng không có background (transparent). | |
| titleLarge | string | Thêm title cho large navbar. Nếu không xác định thì title prop sẽ được sử dụng để render title cho large navbar | 
<NavLeft/> properties
| Prop | Type | Default | Description | 
|---|---|---|---|
| backLink | boolean | string | Thêm back link với icon mặc định, với kiểu dữ liệu string sẽ thêm nội dung text đi kèm icon | |
| backLinkUrl | string | Tùy chỉnh back link URL | |
| backLinkForce | boolean | false | Buộc tải trang không quan tâm các trang trước trong lịch sử | 
| backLinkShowText | boolean | Kích hoạt hiệu ứng "sliding". Mặc định sẽ kế thừa sliding prop từ component Navbar cha | |
| sliding | boolean | true | Bỏ hiệu ứng "sliding" khi set giá trị bằng false (Hiệu ứng trên IOS) | 
<NavTitle/> properties
| Prop | Type | Default | Description | 
|---|---|---|---|
| title | string | Navbar title | |
| subtitle | string | Sub title text | |
| sliding | boolean | Kích hoạt hiệu ứng "sliding". Mặc định sẽ kế thừa sliding prop từ component Navbar cha | 
<NavRight/> properties
| Prop | Type | Default | Description | 
|---|---|---|---|
| sliding | boolean | Kích hoạt hiệu ứng "sliding". Mặc định sẽ kế thừa sliding prop từ component Navbar cha | 
Lưu ý: Để Navbar fixed trên trang, cần đặt <Navbar > component ngay trong <Page> component. Trường hợp tự xây dựng component render Navbar cần export component với CustomNavbar.displayName = 'zmp-navbar'. Ví dụ:
const CustomNavbar = (props) => ({
  /* ... */
});
CustomNavbar.displayName = 'zmp-navbar';
export default CustomNavbar;
<Page>
  <CustomNavbar />
</Page>
Navbar Methods
<Navbar/> methods | |
|---|---|
| .hide(animate) | Hide navbar | 
| .show(animate) | Show navbar | 
| .size() | Size navbar | 
Navbar Events
<Navbar/> events
| Event | Prop | Description | 
|---|---|---|
| backClick  clickBack  | onBackClick onClickBack  | Event sẽ được triggered sau khi người dùng click lên back link | 
| navbarHide | onNavbarHide | Event sẽ được triggered khi navbar ẩn đi | 
| navbarShow | onNavbarShow | Event sẽ được triggered khi navbar hiện lên | 
<NavLeft/> events
| Event | Prop | Description | 
|---|---|---|
| backClick  clickBack  | onBackClick | Event sẽ được triggered sau khi người dùng click lên back link | 
Navbar Slots
Component Navbar cung cấp các slots để nhà phát triển có thể đặt các đoạn UI để tuỳ biến vào:
- default - element sẽ được chèn dưới dạng children của 
<div className="navbar-inner"\>element - before-inner - element sẽ được chèn ngay trước 
<div className="navbar-inner"\>element - after-inner - element sẽ được chèn ngay sau 
<div className="navbar-inner"\>element - left - element sẽ được chèn trong 
<div className="left"\>element - right - element sẽ được chèn trong 
<div className="right"\>element - title - element sẽ được chèn trong 
<div className="title"\>element - title-large - element sẽ được chèn trong 
<div className="title-large"\>element 
<Navbar title='My App'>
  <a href='#' slot='left'>
    Left Link
  </a>
  <a href='#' slot='right'>
    Right Link
  </a>
  <div slot='before-inner'>Before Inner</div>
  <div slot='after-inner'>After Inner</div>
  <div>Default slot</div>
</Navbar>;
{
  /* render thành: */
}
<div className='navbar'>
  <div className='navbar-bg'></div>
  <div>Before Inner</div>
  <div className='navbar-inner'>
    <div className='left'>
      <a href='#'>Left Link</a>
    </div>
    <div className='title'>My App</div>
    <div className='right'>
      <a href='#'>Right Link</a>
    </div>
    <div>Default slot</div>
  </div>
  <div>After Inner</div>
</div>;
Ví dụ
Layout đơn giản nhất
<Navbar title='My App'></Navbar>
Layout đơn giản nhất với back link
<Navbar title='My App' backLink='Back'></Navbar>
Navabar không hiệu ứng "sliding" (hiệu ứng trên IOS theme)
<Navbar title='My App' backLink='Back' sliding='{false}'></Navbar>
Navbar với large title
<Navbar title='My App' backLink='Back' large></Navbar>;
{
  /* với tiêu đề*/
}
<Navbar title='My App' backLink='Back' large titleLarge='Large Title'></Navbar>;
Tùy chỉnh layout
<Navbar large>
  <NavLeft displayName='zmp-navleft'>
    <Link className='no-ripple' noLinkClass back>
      <Icon zmp='zi-arrow-left' />
    </Link>
  </NavLeft>
  <NavTitleLarge>{title}</NavTitleLarge>
  <NavRight>
    {/* Thêm các button tuỳ chỉnh */}
    <ActionButton />
  </NavRight>
</Navbar>