diff --git a/packages/api/src/services/users/preferences.ts b/packages/api/src/services/users/preferences.ts index e172fa16..4a772d8b 100644 --- a/packages/api/src/services/users/preferences.ts +++ b/packages/api/src/services/users/preferences.ts @@ -16,7 +16,7 @@ export const updatePreferences = async ( .set({ preferences: JSON.stringify({ ...(prevPreferences?.preferences ?? {}), - ...preferences, + ...(preferences ?? {}), }), }) .where('id', '=', userId) diff --git a/packages/web/src/features/ranking/components/RankingList.jsx b/packages/web/src/features/ranking/components/RankingList.jsx index 62e41497..87ef73af 100644 --- a/packages/web/src/features/ranking/components/RankingList.jsx +++ b/packages/web/src/features/ranking/components/RankingList.jsx @@ -69,8 +69,8 @@ export default function RankingList({ ranking, isLoading, preferences }) { {ranking.map((player, playerIndex) => { - const isHidden = preferences.playersHiddenStatus[player.id]; - if (isHidden && !preferences.showHiddenPlayersInRanking) { + const isHidden = preferences?.playersHiddenStatus[player.id]; + if (isHidden && !preferences?.showHiddenPlayersInRanking) { return null; } diff --git a/packages/web/src/legacy-code/components/Profile/MostPlayed.jsx b/packages/web/src/legacy-code/components/Profile/MostPlayed.jsx index 73d7e41a..0de1a67a 100644 --- a/packages/web/src/legacy-code/components/Profile/MostPlayed.jsx +++ b/packages/web/src/legacy-code/components/Profile/MostPlayed.jsx @@ -1,21 +1,20 @@ -import React, { useState, useEffect } from 'react'; -import { connect } from 'react-redux'; -import { NavLink } from 'react-router-dom'; import classNames from 'classnames'; import _ from 'lodash/fp'; +import React, { useEffect, useState } from 'react'; import { FaPlay } from 'react-icons/fa'; import { MdExpandMore } from 'react-icons/md'; +import { connect } from 'react-redux'; +import { NavLink } from 'react-router-dom'; -import { fetchJson } from 'legacy-code/utils/fetch'; -import { getTimeAgo } from 'legacy-code/utils/leaderboards'; -import { parseDate } from 'legacy-code/utils/date'; +import './most-played.scss'; import Loader from 'legacy-code/components/Shared/Loader'; - -import { routes } from 'legacy-code/constants/routes'; import { HOST } from 'legacy-code/constants/backend'; +import { routes } from 'legacy-code/constants/routes'; +import { parseDate } from 'legacy-code/utils/date'; +import { fetchJson } from 'legacy-code/utils/fetch'; +import { getTimeAgo } from 'legacy-code/utils/leaderboards'; -import './most-played.scss'; import { useLanguage } from 'utils/context/translation'; export default connect((state) => ({ charts: state.results.sharedCharts }), { fetchJson })( @@ -47,6 +46,9 @@ export default connect((state) => ({ charts: state.results.sharedCharts }), { fe {isLoading && } {data.map((item) => { const chart = charts[item.shared_chart]; + if (!chart) { + return null; + } return (