OrgActionBar.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import React, { PureComponent } from 'react';
  2. import LayoutSelector, { LayoutMode } from '../LayoutSelector/LayoutSelector';
  3. export interface Props {
  4. searchQuery: string;
  5. layoutMode?: LayoutMode;
  6. setLayoutMode?: (mode: LayoutMode) => {};
  7. setSearchQuery: (value: string) => {};
  8. linkButton: { href: string; title: string };
  9. }
  10. export default class OrgActionBar extends PureComponent<Props> {
  11. render() {
  12. const { searchQuery, layoutMode, setLayoutMode, linkButton, setSearchQuery } = this.props;
  13. return (
  14. <div className="page-action-bar">
  15. <div className="gf-form gf-form--grow">
  16. <label className="gf-form--has-input-icon">
  17. <input
  18. type="text"
  19. className="gf-form-input width-20"
  20. value={searchQuery}
  21. onChange={event => setSearchQuery(event.target.value)}
  22. placeholder="Filter by name or type"
  23. />
  24. <i className="gf-form-input-icon fa fa-search" />
  25. </label>
  26. <LayoutSelector mode={layoutMode} onLayoutModeChanged={(mode: LayoutMode) => setLayoutMode(mode)} />
  27. </div>
  28. <div className="page-action-bar__spacer" />
  29. <a className="btn btn-success" href={linkButton.href} target="_blank">
  30. {linkButton.title}
  31. </a>
  32. </div>
  33. );
  34. }
  35. }