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();