Skip to content

Commit dad8bfd

Browse files
author
任庆伟
committed
update issue 212's fix logic as suggested
1 parent f1aa8b7 commit dad8bfd

File tree

3 files changed

+15
-23
lines changed

3 files changed

+15
-23
lines changed

src/shared/components/challenge-listing/index.jsx

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,14 @@ import Listing from './Listing';
1616
import ChallengeCardPlaceholder from './placeholders/ChallengeCard';
1717
import SRMCard from './SRMCard';
1818

19+
import { updateQuery } from 'utils/url';
1920
import './style.scss';
2021

2122
// Number of challenge placeholder card to display
2223
const CHALLENGE_PLACEHOLDER_COUNT = 8;
2324

2425
export default function ChallengeListing(props) {
25-
function CheckDateTime(str) {
26-
const reg = /^(\d{4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{3})Z$/;
27-
const r = str.match(reg);
28-
if (r == null) return false;
29-
r[2] -= 1;
30-
const d = new Date(r[1], r[2], r[3], r[4], r[5], r[6]);
31-
if (d.getFullYear() !== r[1]) return false;
32-
if (d.getMonth() !== r[2]) return false;
33-
if (d.getDate() !== r[3]) return false;
34-
if (d.getHours() !== r[4]) return false;
35-
if (d.getMinutes() !== r[5]) return false;
36-
if (d.getSeconds() !== r[6]) return false;
37-
return true;
38-
}
39-
const filterState = props.filterState;
40-
if (filterState) {
41-
if (!!filterState.startDate && CheckDateTime(filterState.startDate) === false) {
42-
delete filterState.startDate;
43-
}
44-
if (!!filterState.endDate && CheckDateTime(filterState.endDate) === false) {
45-
delete filterState.endDate;
46-
}
47-
}
26+
updateQuery({ });
4827
let challenges = props.challenges;
4928

5029
if (props.communityFilter) {

src/shared/reducers/challenge-listing/index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import logger from 'utils/logger';
88
import { handleActions } from 'redux-actions';
99
import { combine, resolveReducers } from 'utils/redux';
1010
import { updateQuery } from 'utils/url';
11+
import moment from 'moment';
1112

1213
import filterPanel from '../challenge-listing/filter-panel';
1314
import sidebar, { factory as sidebarFactory } from '../challenge-listing/sidebar';
@@ -270,6 +271,12 @@ export function factory(req) {
270271

271272
if (req) {
272273
state.filter = req.query.filter;
274+
if (!!state.filter.startDate && moment(state.filter.startDate).isValid() === false) {
275+
delete state.filter.startDate;
276+
}
277+
if (!!state.filter.endDate && moment(state.filter.endDate).isValid() === false) {
278+
delete state.filter.endDate;
279+
}
273280
state.selectedCommunityId = req.query.communityId;
274281
}
275282

src/shared/utils/url.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import _ from 'lodash';
88
import qs from 'qs';
9+
import moment from 'moment';
910

1011
/**
1112
* If executed client-side (determined in this case by the presence of global
@@ -28,6 +29,11 @@ export function updateQuery(update) {
2829
if (_.isUndefined(value)) delete query[key];
2930
else query[key] = value;
3031
});
32+
if (!!query.filter.startDate && moment(query.filter.startDate).isValid() === false) {
33+
delete query.filter.startDate; console.log('delete start date');
34+
} else if (query.filter.endDate && moment(query.filter.endDate).isValid() === false) {
35+
delete query.filter.endDate; console.log('delete end date');
36+
}
3137

3238
query = `?${qs.stringify(query, { encode: false })}`;
3339
window.history.replaceState(window.history.state, '', query);

0 commit comments

Comments
 (0)