export default()

in src/components/DateRange.js [70:125]


export default ({name, onChange, className, criteria}) => {
  const [range, setRange] = useState(criteria);
  const id = useMemo(generate, []);
  const [focusedClassName, setFocusedClassName] = useState('');

  return (
    <div css={styles} className={classNames(focusedClassName, className)}>
      {name && (
        <label htmlFor={id}>
          <Text className='filter-heading' children={name} />
        </label>
      )}
      <div>
        <Flatpickr
          {...{id}}
          placeholder='Select range'
          value={range}
          onOpen={() => setFocusedClassName('focused')}
          onClose={() => setFocusedClassName('')}
          onChange={v => {
            setRange(v);
            onChange(v);
          }}
          options={{
            mode: 'range',
            dateFormat: 'F j, Y',
          }}
        />
        {range && (
          <>
            <div className='separation' />
            <div
              aria-hidden='true'
              className='clear css-16pqwjk-indicatorContainer'
              onClick={() => {
                setRange(null);
                onChange(null);
              }}
            >
              <svg
                height='20'
                width='20'
                viewBox='0 0 20 20'
                aria-hidden='true'
                focusable='false'
                className='css-19bqh2r'
              >
                <path d='M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z' />
              </svg>
            </div>
          </>
        )}
      </div>
    </div>
  );
};