Use urlencode for search queries (fixes #10)

This commit is contained in:
Felix Ableitner 2020-10-07 12:39:07 +02:00
parent 5e6f613e16
commit 3cd200469f
2 changed files with 5 additions and 3 deletions

View file

@ -137,8 +137,9 @@ export class Navbar extends Component<NavbarProps, NavbarState> {
if (searchParam === '') { if (searchParam === '') {
this.context.router.history.push(`/search/`); this.context.router.history.push(`/search/`);
} else { } else {
const searchParamEncoded = encodeURIComponent(searchParam);
this.context.router.history.push( this.context.router.history.push(
`/search/q/${searchParam}/type/All/sort/TopAll/page/1` `/search/q/${searchParamEncoded}/type/All/sort/TopAll/page/1`
); );
} }
} }

View file

@ -84,7 +84,7 @@ export class Search extends Component<any, SearchState> {
}; };
static getSearchQueryFromProps(q: string): string { static getSearchQueryFromProps(q: string): string {
return q || ''; return decodeURIComponent(q) || '';
} }
static getSearchTypeFromProps(type_: string): SearchType { static getSearchTypeFromProps(type_: string): SearchType {
@ -504,11 +504,12 @@ export class Search extends Component<any, SearchState> {
updateUrl(paramUpdates: UrlParams) { updateUrl(paramUpdates: UrlParams) {
const qStr = paramUpdates.q || this.state.q; const qStr = paramUpdates.q || this.state.q;
const qStrEncoded = encodeURIComponent(qStr);
const typeStr = paramUpdates.type_ || this.state.type_; const typeStr = paramUpdates.type_ || this.state.type_;
const sortStr = paramUpdates.sort || this.state.sort; const sortStr = paramUpdates.sort || this.state.sort;
const page = paramUpdates.page || this.state.page; const page = paramUpdates.page || this.state.page;
this.props.history.push( this.props.history.push(
`/search/q/${qStr}/type/${typeStr}/sort/${sortStr}/page/${page}` `/search/q/${qStrEncoded}/type/${typeStr}/sort/${sortStr}/page/${page}`
); );
} }