diff --git a/src/short-urls/SearchBar.js b/src/short-urls/SearchBar.js index 71368571..3c75178a 100644 --- a/src/short-urls/SearchBar.js +++ b/src/short-urls/SearchBar.js @@ -7,19 +7,23 @@ import moment from 'moment'; import SearchField from '../utils/SearchField'; import Tag from '../tags/helpers/Tag'; import DateRangeRow from '../utils/DateRangeRow'; -import { formatDate } from '../utils/utils'; +import { compareVersions, formatDate } from '../utils/utils'; +import { serverType } from '../servers/prop-types'; import { shortUrlsListParamsType } from './reducers/shortUrlsListParams'; import './SearchBar.scss'; const propTypes = { listShortUrls: PropTypes.func, shortUrlsListParams: shortUrlsListParamsType, + selectedServer: serverType, }; const dateOrUndefined = (date) => date ? moment(date) : undefined; const SearchBar = (colorGenerator) => { - const SearchBar = ({ listShortUrls, shortUrlsListParams }) => { + const SearchBar = ({ listShortUrls, shortUrlsListParams, selectedServer }) => { + const currentServerVersion = selectedServer ? selectedServer.version : ''; + const enableDateFiltering = !isEmpty(currentServerVersion) && compareVersions(currentServerVersion, '>=', '1.21.0'); const selectedTags = shortUrlsListParams.tags || []; const setDate = (dateName) => pipe( formatDate(), @@ -34,14 +38,16 @@ const SearchBar = (colorGenerator) => { } /> -
- -
+ {enableDateFiltering && ( +
+ +
+ )} {!isEmpty(selectedTags) && (

diff --git a/src/short-urls/services/provideServices.js b/src/short-urls/services/provideServices.js index a46974c9..610d3e08 100644 --- a/src/short-urls/services/provideServices.js +++ b/src/short-urls/services/provideServices.js @@ -25,7 +25,7 @@ const provideServices = (bottle, connect) => { )); bottle.serviceFactory('SearchBar', SearchBar, 'ColorGenerator'); - bottle.decorator('SearchBar', connect([ 'shortUrlsListParams' ], [ 'listShortUrls' ])); + bottle.decorator('SearchBar', connect([ 'shortUrlsListParams', 'selectedServer' ], [ 'listShortUrls' ])); bottle.serviceFactory('ShortUrlsList', ShortUrlsList, 'ShortUrlsRow'); bottle.decorator('ShortUrlsList', connect( diff --git a/test/short-urls/SearchBar.test.js b/test/short-urls/SearchBar.test.js index 411e5665..172b8189 100644 --- a/test/short-urls/SearchBar.test.js +++ b/test/short-urls/SearchBar.test.js @@ -22,10 +22,15 @@ describe('', () => { expect(wrapper.find(SearchField)).toHaveLength(1); }); - it('renders a DateRangeRow', () => { - wrapper = shallow(); + each([ + [ '2.0.0', 1 ], + [ '1.21.2', 1 ], + [ '1.21.0', 1 ], + [ '1.20.0', 0 ], + ]).it('renders a DateRangeRow when proper version is run', (version, expectedLength) => { + wrapper = shallow(); - expect(wrapper.find(DateRangeRow)).toHaveLength(1); + expect(wrapper.find(DateRangeRow)).toHaveLength(expectedLength); }); it('renders no tags when the list of tags is empty', () => { @@ -63,7 +68,9 @@ describe('', () => { }); each([ 'startDateChange', 'endDateChange' ]).it('updates short URLs list when date range changes', (event) => { - wrapper = shallow(); + wrapper = shallow( + + ); const dateRange = wrapper.find(DateRangeRow); expect(listShortUrlsMock).not.toHaveBeenCalled();