0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2025-12-30 11:02:38 +00:00

Expand updateUrl function

This commit is contained in:
G.Ambatte
2022-09-01 23:03:33 +12:00
parent 98e2d57691
commit 80428fc412

View File

@@ -22,9 +22,9 @@ const ListPage = createClass({
},
getInitialState : function() {
return {
sortType : 'alpha',
sortDir : 'asc',
filterString : this.props.query?.filter || '',
sortType : this.props.query?.sort || 'alpha',
sortDir : this.props.query?.dir || 'asc',
query : this.props.query
};
},
@@ -50,14 +50,18 @@ const ListPage = createClass({
},
handleSortOptionChange : function(event){
this.updateUrl(this.state.filterString, event.target.value, this.state.sortDir);
this.setState({
sortType : event.target.value
});
},
handleSortDirChange : function(event){
const newDir = this.state.sortDir == 'asc' ? 'desc' : 'asc';
this.updateUrl(this.state.filterString, this.state.sortType, newDir);
this.setState({
sortDir : `${(this.state.sortDir == 'asc' ? 'desc' : 'asc')}`
sortDir : newDir
});
},
@@ -77,19 +81,22 @@ const ListPage = createClass({
this.setState({
filterString : e.target.value,
});
this.updateUrl(e.target.value);
this.updateUrl(e.target.value, this.state.sortType, this.state.sortDir);
return;
},
updateUrl : function(filterTerm){
updateUrl : function(filterTerm, sortType, sortDir){
const url = new URL(window.location.href);
const urlParams = new URLSearchParams(url.search);
if(urlParams.get('filter') == filterTerm)
return;
urlParams.set('sort', sortType);
urlParams.set('dir', sortDir);
if(!filterTerm)
urlParams.delete('filter');
else
urlParams.set('filter', filterTerm);
url.search = urlParams;
window.history.replaceState(null, null, url);
},