0.1.0 • Published 6 years ago

@methodexists/ant-header v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

ant-header

Header component for projects based on antd library

Usage

Use <Header /> component in your app route to show app-wide tools and navigation menu button.

Minimal

<Header
  onSwitchSider={() => this.setState({ isSiderCollapsed: !isSiderCollapsed })}
  isSiderCollapsed={isSiderCollapsed}
  navMenu={<Sider />}
/>

Will render header with navigation menu button only.

Feedback button

<Header
  ...
  bugReporter={{
    apiUrl: 'myApi/bugs',
    supportEmail: 'support@example.com'
  }}
/>

Will render feedback button with name taken from App.header.techSupport ('Support' by default).
When clicked will show Bug Reporter form. You can define translations for Bug Reporter form using these ids:

id: 'BugReporter.placeholder', defaultMessage: 'Leave us a message',
id: 'BugReporter.success', defaultMessage: 'Your message has been sent',
id: 'BugReporter.send', defaultMessage: 'Send',
id: 'BugReporter.help', defaultMessage: 'Don’t forget to describe what you did, what you saw happened and what you expected to happen. Please mention how critical it is.',
id: 'BugReporter.requiredWarning', defaultMessage: 'Please leave us a message',
id: 'BugReporter.sendError', defaultMessage: 'Error sending the message',
id: 'BugReporter.contactUs', defaultMessage: 'If you have problems leaving a message you can contact us via email directly:'

Locale selector

<Header
  ...
  localeSelector={{
    onSwitchLocale: l => console.info('locale switch call', l),
    locales: { en: { name: 'English' }, es: { name: 'Espanol' } },
  }}
/>

Will render locale selector dropdown where user can select app locale.

Profile menu

<Header
  ...
  profileMenu={{
    onProfilePageClick: () => console.info('go to profile page'),
    onSignOutClick: () => console.info('sign out'),
    username: 'John Doe',
  }}
/>

Will render profile menu dropdown titled by username. The dropdown will have two items: 'My profile' and 'Sign out'. They could be translated by declaring these ids:

id: 'App.header.signOut', defaultMessage: 'Sign Out',
id: 'App.header.myProfile', defaultMessage: 'My Profile'

Custom content

<Header ...>
  <div>Custom content</div>
</Header>

Will render custom content in the center of the header.

Compact view

<Header
  bugReporter=...
  localeSelector=...
  profileMenu=...
  isCompact={true}
/>

Will render buttons in compact mode: no text, icons only.

Sider popover

<Header
  isSiderPopover={true}
/>

Will render navigation menu as a popover

API

props

PropTypeDefaultDescription
hasSiderboolfalseIf true show Sider button
navMenuelementundefinedContent to show in the navigation popover
onSwitchSiderfuncundefinedFired when the navigation button is clicked
isSiderCollapsedbooltrueAffects the navigation button icon
isSiderPopoverboolfalseIf true, the navMenu content will be presented in a popover when the navigation button is clicked
isCompactboolfalseIf true, will show tools buttons without text, icons only
extraelement or array of elementsundefinedShow extra components near the buttons
bugReporterobjectundefinedWhen defined will show Bug Reporter button
localeSelectorobjectundefinedWhen defined will show Locale Selector
profileMenuobjectundefinedWhen defined will show Profile Menu

bugReporter props

PropTypeDescription
*apiUrlstringThe URL where to post bug report message
*supportEmailstringEmail address to show in the bug reporter form

localeSelector props

PropTypeDescription
*localesobjectObject key should be lang name ('en', 'es', ...) and the value is { name } object. name will be displayed in the menu.
*onSwitchLocalefuncCalled when dropdown item is selected. Receives lang name as an argument.

profileMenu props

PropTypeDescription
*usernamestringUser name to show as a button title
*onProfilePageClickfuncCalled when 'My Profile' item is clicked
*onSignOutClickfuncCalled when 'Sign out' item is clicked

Contributing

See CONTRIBUTING.md for how to develop a component.

0.1.0

6 years ago

0.0.13

7 years ago

0.0.12

7 years ago

0.0.11

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago