Advertisement
Guest User

Untitled

a guest
May 21st, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. import * as React from 'react';
  2. import { Component, ReactNode } from 'react';
  3. import { observer } from 'mobx-react';
  4. import { resolve } from 'inversify-react';
  5. import { translate } from 'react-i18next';
  6.  
  7. import { SvgIcon } from 'common/svg-icon';
  8. import { TranslationProps } from 'common/i18n';
  9.  
  10. import { LobbyStore } from '../lobby.store';
  11. import { LobbyEntitiesCriteriaStore } from '../lobby-entities-criteria-panel/lobby-entities-criteria.store';
  12.  
  13. const icon = require('../lobby-entities-criteria-panel/images/settings-button.svg');
  14.  
  15. const MIN_ENTITIES_TO_SHOWN = 8;
  16.  
  17. @translate()
  18. @observer
  19. export class LobbyEntitiesCriteriaBadge extends Component<TranslationProps> {
  20.  
  21. @resolve
  22. private readonly _lobbyStore: LobbyStore;
  23.  
  24. @resolve
  25. private readonly _lobbyEntitiesCriteriaStore: LobbyEntitiesCriteriaStore;
  26.  
  27. render() {
  28. const { filteredEntities } = this._lobbyStore;
  29. const { t } = this.props;
  30.  
  31. if (filteredEntities.length < MIN_ENTITIES_TO_SHOWN) {
  32. return null;
  33. }
  34.  
  35. return (
  36. <div className="lobby-entities-criteria-badge" onClick={this._lobbyEntitiesCriteriaStore.toggle}>
  37. {this.renderBadge()}
  38. <div className="lobby-entities-criteria-badge__text-label">{t('lobby-settings-sort-filter-label')}</div>
  39. <SvgIcon icon={icon} iconClassName="lobby-entities-criteria-badge__icon"/>
  40. </div>
  41. );
  42. }
  43.  
  44. private renderBadge(): ReactNode {
  45. const { filteredEntities, allEntities } = this._lobbyStore;
  46. const { isFilterApplied } = this._lobbyEntitiesCriteriaStore;
  47. return (
  48. <div className="lobby-entities-criteria-badge__tables-counter">
  49. {isFilterApplied
  50. ? `${filteredEntities.length}/${allEntities.length}`
  51. : allEntities.length}
  52. </div>
  53. );
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement