Skip to content

Commit 96bdb49

Browse files
Merge pull request #150 from yoution/issue-126
Issue #126 Issue #110
2 parents e6a38a1 + 9762005 commit 96bdb49

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

src/routers/challenge-list/index.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ const App = () => {
3636
return;
3737
}
3838

39-
const params = utils.url.parseUrlQuery(location.search);
39+
let search = location.href.split('?').length ? '?' + location.href.split('?')[1]: ''
40+
const params = utils.url.parseUrlQuery(search);
4041
const toUpdate = utils.challenge.createChallengeFilter(params);
4142

4243
if (!toUpdate.types) toUpdate.types = [];

src/services/challenges.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { getService as getSubmissionsService } from "./submissions";
1717
* @return {Array<Object>} challenges
1818
*/
1919
async function getChallenges(filter, cancellationSignal) {
20-
const challengeQuery = util.buildQueryString(filter);
20+
const challengeQuery = util.buildQueryString(filter, true);
2121
return api.get(
2222
`/challenges/${challengeQuery}`,
2323
undefined,

src/utils/url.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ import qs from "qs";
1515
* @params {Object<{[key: string]: any}>} params Query string parameters
1616
* @return {String}
1717
*/
18-
export function buildQueryString(params) {
18+
export function buildQueryString(params, disableEncode) {
1919
params = _.omitBy(params, (p) => p == null || p === "" || p.length === 0);
20-
20+
if (!disableEncode) {
21+
params.tags = _.map(params.tags, (t) => encodeURIComponent(t))
22+
}
2123
let queryString = qs.stringify(params, {
2224
encode: false,
2325
arrayFormat: "brackets",
@@ -28,7 +30,11 @@ export function buildQueryString(params) {
2830
}
2931

3032
export function parseUrlQuery(queryString) {
31-
return qs.parse(queryString, { ignoreQueryPrefix: true });
33+
let params = qs.parse(queryString, { ignoreQueryPrefix: true });
34+
if (params.tags) {
35+
params.tags = _.map(params.tags, (t) => decodeURIComponent(t))
36+
}
37+
return params
3238
}
3339

3440
export function updateQuery(params) {

0 commit comments

Comments
 (0)