Sha256: 2336578aaae55d5b36a92b29399a2e9e56eaab343b7cd494e62a7bbc3f78c76d

Contents?: true

Size: 1.7 KB

Versions: 60

Compression:

Stored size: 1.7 KB

Contents

/* @flow */

import React from 'react'
import { isEmpty } from 'lodash'

import Flex from '../../pb_flex/_flex'

import CurrentFilters, { FilterDescription } from './CurrentFilters'
import FilterBackground, { FilterBackgroundProps } from './FilterBackground'
import FiltersPopover from './FiltersPopover'
import ResultsCount from './ResultsCount'
import SortMenu, {
  SortingChangeCallback,
  SortOptions,
  SortValue,
} from './SortMenu'

export type FilterSingleProps = {
  children?: Node,
  filters?: FilterDescription,
  onSortChange?: SortingChangeCallback,
  results?: number,
  sortOptions?: SortOptions,
  sortValue?: SortValue,
} & FilterBackgroundProps

const FilterSingle = ({
  onSortChange,
  sortOptions,
  sortValue,
  filters,
  results,
  children,
  dark,
  minWidth,
  placement,
  ...bgProps
}: FilterSingleProps) => {
  return (
    <FilterBackground
        dark={dark}
        {...bgProps}
    >
      <Flex
          orientation="row"
          paddingRight="lg"
          vertical="center"
      >
        <If condition={children}>
          <FiltersPopover
              dark={dark}
              minWidth={minWidth}
              placement={placement}
          >
            {children}
          </FiltersPopover>
          <CurrentFilters
              dark={dark}
              filters={filters}
          />
        </If>
        <ResultsCount
            dark={dark}
            results={results}
        />
        <If condition={!isEmpty(sortOptions)}>
          <SortMenu
              dark={dark}
              onChange={onSortChange}
              options={sortOptions}
              value={sortValue}
          />
        </If>
      </Flex>
    </FilterBackground>
  )
}

export default FilterSingle

Version data entries

60 entries across 60 versions & 1 rubygems

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