1
0
Fork 0
mirror of https://github.com/Alamantus/Lexiconga.git synced 2025-07-08 16:44:16 +02:00

Improve validation when using LexicongaUserData localstorage item

This commit is contained in:
Robbie Antenesse 2018-06-17 15:24:18 -06:00
parent 5ff01b735f
commit e21316ff36
4 changed files with 10 additions and 9 deletions

View file

@ -57,7 +57,7 @@ export class MainDisplay extends Component {
render () {
const userData = store.get('LexicongaUserData');
const itemsPerPage = userData ? userData.itemsPerPage : DEFAULT_USER_DATA.itemsPerPage;
const itemsPerPage = userData && userData.hasOwnProperty('itemsPerPage') ? userData.itemsPerPage : DEFAULT_USER_DATA.itemsPerPage;
const {
dictionaryInfo,
isLoadingWords,

View file

@ -24,12 +24,12 @@ export class AccountManager extends Component {
this.state = {
isLoggedIn: false,
userData: {
email: userData ? userData.email : DEFAULT_USER_DATA.email,
username: userData ? userData.username : DEFAULT_USER_DATA.username,
publicName: userData ? userData.publicName : DEFAULT_USER_DATA.publicName,
allowEmails: userData ? userData.allowEmails : DEFAULT_USER_DATA.allowEmails,
useIPAPronunciation: userData ? userData.useIPAPronunciation : DEFAULT_USER_DATA.useIPAPronunciation,
itemsPerPage: userData ? userData.itemsPerPage : DEFAULT_USER_DATA.itemsPerPage,
email: userData && userData.hasOwnProperty('email') ? userData.email : DEFAULT_USER_DATA.email,
username: userData && userData.hasOwnProperty('username') ? userData.username : DEFAULT_USER_DATA.username,
publicName: userData && userData.hasOwnProperty('publicName') ? userData.publicName : DEFAULT_USER_DATA.publicName,
allowEmails: userData && userData.hasOwnProperty('allowEmails') ? userData.allowEmails : DEFAULT_USER_DATA.allowEmails,
useIPAPronunciation: userData && userData.hasOwnProperty('useIPAPronunciation') ? userData.useIPAPronunciation : DEFAULT_USER_DATA.useIPAPronunciation,
itemsPerPage: userData && userData.hasOwnProperty('itemsPerPage') ? userData.itemsPerPage : DEFAULT_USER_DATA.itemsPerPage,
},
userDictionaries: [],
};

View file

@ -104,7 +104,8 @@ export class WordForm extends Component {
render () {
const userData = store.get('LexicongaUserData');
const useIpaField = userData ? userData.useIPAPronunciation : DEFAULT_USER_DATA.useIPAPronunciation;
const useIpaField = userData && userData.hasOwnProperty('useIPAPronunciation')
? userData.useIPAPronunciation : DEFAULT_USER_DATA.useIPAPronunciation;
return (
<div className='box'>
<div className='field'>

View file

@ -96,7 +96,7 @@ class App extends Component {
updateDisplayedWords (callback = () => {}) {
dictionary.wordsPromise.then(words => {
const userData = store.get('LexicongaUserData');
const itemsPerPage = userData ? userData.itemsPerPage : DEFAULT_USER_DATA.itemsPerPage;
const itemsPerPage = userData && userData.hasOwnProperty('itemsPerPage') ? userData.itemsPerPage : DEFAULT_USER_DATA.itemsPerPage;
const { searchConfig, partsOfSpeech, currentPage } = this.state;
const partsOfSpeechForFilter = [...partsOfSpeech, 'Uncategorized'];
const pageStart = currentPage * itemsPerPage;