Sha256: 647b3b72e44a6f4fe18e1bb7533227d202315ea5d00408b3ae02e8fc4ce19921

Contents?: true

Size: 1.93 KB

Versions: 165

Compression:

Stored size: 1.93 KB

Contents

/* @flow */

import React from 'react'
import { isEmpty, map, omitBy } from 'lodash'

import Body from '../../pb_body/_body'
import Caption from '../../pb_caption/_caption'
import Title from '../../pb_title/_title'

export type FilterDescription = {
  [key: string]: ?string | boolean,
}

export type CurrentFiltersProps = {
  dark: boolean,
  filters: FilterDescription,
}

const hiddenFilters = (value) => isEmpty(value) && value !== true

const CurrentFilters = ({ dark, filters }: CurrentFiltersProps) => {
  const displayableFilters = omitBy(filters, hiddenFilters)

  return (
    <div className="maskContainer">
      <If condition={isEmpty(filters)}>
        <div className="filters">
          <Body
              color="light"
              paddingLeft="xs"
              size={4}
              tag="h4"
              text="No Filter Selected"
          />
        </div>
      </If>
      <If condition={!isEmpty(filters)}>
        <div className="filters">
          <div className="left_gradient" />
          {map(displayableFilters, (value, name) => (
            <div
                className="filter"
                key={`filter-${name}`}
            >
              <Choose>
                <When condition={value === true}>
                  <Title
                      dark={dark}
                      size={4}
                      tag="h4"
                      text={name}
                  />
                </When>
                <Otherwise>
                  <Caption
                      dark={dark}
                      text={name}
                  />
                  <Title
                      dark={dark}
                      size={4}
                      tag="h4"
                      text={value}
                  />
                </Otherwise>
              </Choose>
            </div>
          ))}
          <div className="right_gradient" />
        </div>
      </If>
    </div>
  )
}

export default CurrentFilters

Version data entries

165 entries across 165 versions & 1 rubygems

Version Path
playbook_ui-12.5.0.pre.alpha.datepickerinput1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.5.0.pre.alpha.phonerails1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.5.0.pre.alpha.datepicker1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.5.0 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.4.0.pre.alpha.map1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.4.0.pre.alpha.devdocstest1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.4.0 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.3.1.pre.alpha.phone1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.3.1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.3.0.pre.alpha.patchtest1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.3.0 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.2.0 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.1.0 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-12.0.0 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-11.20.0.pre.alpha.passthrough1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-11.20.0.pre.alpha.railsdialog1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-11.20.0.pre.alpha.focus1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-11.20.0 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-11.19.0.pre.alpha.map1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx
playbook_ui-11.19.0.pre.alpha.pagpassthrough1 app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx