diff --git a/src/func/sessionStorageFunctions.js b/src/func/sessionStorageFunctions.js index dcde9a4..85d4cac 100644 --- a/src/func/sessionStorageFunctions.js +++ b/src/func/sessionStorageFunctions.js @@ -1,7 +1,9 @@ /** - * Keys used for localStorage. + * Keys used for sessionStorage. */ export const storageKeys = { + userFilter: "user-filter", + userFilters: "user-filters", challengeFilters: "challenge-filters", challengeSearch: "challenge-search", pointsOnly: "points-only", @@ -44,4 +46,4 @@ export function removeStorage(key) { */ export function clearStorage() { sessionStorage.clear(); -} \ No newline at end of file +} diff --git a/src/module/user/UserChallenges.js b/src/module/user/UserChallenges.js index 25ffe8d..a393aec 100644 --- a/src/module/user/UserChallenges.js +++ b/src/module/user/UserChallenges.js @@ -47,12 +47,12 @@ class UserChallenges extends Component { orderByPoints: getStorage(storageKeys.pointsOnly, false), capstones: getStorage(storageKeys.capstones, false), placeholder: window.compactMode, - filter: "level", - filters: { + filter: getStorage(storageKeys.userFilter, "level"), + filters: getStorage(storageKeys.userFilters, { "category": [], "type": [], - "gamemode": [] - }, + "gamemode": [], + }), translation: props.t, search: "" } @@ -122,6 +122,7 @@ class UserChallenges extends Component { } this.setState({ filter: tempFilter, alphabet: alphabetVar }) + setStorage(storageKeys.userFilter, tempFilter); } } @@ -149,6 +150,7 @@ class UserChallenges extends Component { } this.setState({ filters: filters }) + setStorage(storageKeys.userFilters, filters); } } @@ -163,6 +165,16 @@ class UserChallenges extends Component { this.setState({ search: e.currentTarget.value }) } + componentDidUpdate() { + const filters = [this.state.filter, ...Object.values(this.state.filters).flat()]; + + for (const id of filters) { + if (document.getElementById(id)) { + document.getElementById(id).classList.add(filterCSS["selected"]); + } + } + } + render() { @@ -333,7 +345,7 @@ class UserChallenges extends Component {

{t("Order by")}

- @@ -448,4 +460,4 @@ class UserChallenges extends Component { } } -export default withTranslation()(UserChallenges) \ No newline at end of file +export default withTranslation()(UserChallenges)