Skip to content

Commit 8152cfe

Browse files
committed
Add and read from default user settings, removes some magic variables.
1 parent 429831f commit 8152cfe

File tree

5 files changed

+27
-12
lines changed

5 files changed

+27
-12
lines changed

assets/js/Components/App.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import SettingsPage from './SettingsPage'
99
import Api from '../Services/Api'
1010
import MessageTray from './Widgets/MessageTray'
1111
import { analyzeReport } from '../Services/Report'
12-
import { ISSUE_STATE, WIDGET_STATE, ISSUE_FILTER, FILE_FILTER, FILE_TYPES, FILE_TYPE_MAP } from '../Services/Settings'
12+
import { ISSUE_STATE, WIDGET_STATE, ISSUE_FILTER, FILE_FILTER, FILE_TYPES, FILE_TYPE_MAP, DEFAULT_USER_SETTINGS } from '../Services/Settings'
1313

1414

1515
export default function App(initialData) {
@@ -24,7 +24,9 @@ export default function App(initialData) {
2424
{ ISSUE_FILTER },
2525
{ FILE_FILTER },
2626
{ FILE_TYPES },
27-
{ FILE_TYPE_MAP }))
27+
{ FILE_TYPE_MAP },
28+
{ DEFAULT_USER_SETTINGS }
29+
))
2830
const [sections, setSections] = useState([])
2931

3032
const [navigation, setNavigation] = useState('summary')
@@ -341,7 +343,10 @@ export default function App(initialData) {
341343

342344
return (
343345
<div id="app-container"
344-
className={`flex-column flex-grow-1 ${settings?.user?.roles?.font_size || 'font-medium'} ${settings?.user?.roles?.font_family || 'sans-serif'} ${settings?.user?.roles?.dark_mode ? 'dark-mode' : ''}`}>
346+
className={`flex-column flex-grow-1 `
347+
+ `${settings?.user?.roles?.font_size || settings.DEFAULT_USER_SETTINGS.FONT_SIZE} `
348+
+ `${settings?.user?.roles?.font_family || settings.DEFAULT_USER_SETTINGS.FONT_FAMILY} `
349+
+ `${settings?.user?.roles?.dark_mode ? 'dark-mode' : ''}`}>
345350
{ !welcomeClosed ?
346351
( <WelcomePage
347352
t={t}

assets/js/Components/SettingsPage.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default function SettingsPage({
1717

1818
useEffect(() => {
1919
// Set up alert options
20-
let currentAlertTimeout = settings?.user?.roles?.alert_timeout || 5000
20+
let currentAlertTimeout = settings?.user?.roles?.alert_timeout || settings.DEFAULT_USER_SETTINGS.ALERT_TIMEOUT
2121
setAlertOptions([
2222
{ value: '5000', name: t('settings.option.alert_timeout.5s'), selected: currentAlertTimeout === '5000' },
2323
{ value: '10000', name: t('settings.option.alert_timeout.10s'), selected: currentAlertTimeout === '10000' },
@@ -26,7 +26,7 @@ export default function SettingsPage({
2626
])
2727

2828
// Set up font size options
29-
let currentFontSize = settings?.user?.roles?.font_size || 'font-medium'
29+
let currentFontSize = settings?.user?.roles?.font_size || settings.DEFAULT_USER_SETTINGS.FONT_SIZE
3030
setFontSizeOptions([
3131
{ value: 'font-small', name: t('settings.label.font_size.small'), selected: currentFontSize === 'font-small' },
3232
{ value: 'font-medium', name: t('settings.label.font_size.medium'), selected: currentFontSize === 'font-medium' },
@@ -35,7 +35,7 @@ export default function SettingsPage({
3535
])
3636

3737
// Set up font family options
38-
let currentFontFamily = settings?.user?.roles?.font_family || 'sans-serif'
38+
let currentFontFamily = settings?.user?.roles?.font_family || settings.DEFAULT_USER_SETTINGS.FONT_FAMILY
3939
setFontFamilyOptions([
4040
{ value: 'sans-serif', name: t('settings.label.font_family.sans_serif'), selected: currentFontFamily === 'sans-serif' },
4141
{ value: 'serif', name: t('settings.label.font_family.serif'), selected: currentFontFamily === 'serif' },
@@ -44,20 +44,21 @@ export default function SettingsPage({
4444
])
4545

4646
// Set up language options
47-
let currentLanguage = settings?.user?.roles?.lang || 'en'
47+
let currentLanguage = settings?.user?.roles?.lang || settings.DEFAULT_USER_SETTINGS.LANGUAGE
4848
setLanguageOptions([
4949
{ value: 'en', name: 'English', selected: currentLanguage === 'en' },
5050
{ value: 'es', name: 'Español', selected: currentLanguage === 'es' }
5151
])
5252
}, [settings])
5353

5454
// For new users, the 'show_filters' attribute may not be set, so we need to check if it exists before using it
55-
const [showFilters, setShowFilters] = useState(settings?.user?.roles && ('show_filters' in settings.user.roles) ? settings.user.roles.show_filters : true)
56-
const [darkMode, setDarkMode] = useState(settings?.user?.roles && ('dark_mode' in settings.user.roles) ? settings.user.roles.dark_mode : false)
55+
// Because the values might be false, we need to differentiate between undefined and false
56+
const [showFilters, setShowFilters] = useState(settings?.user?.roles && ('show_filters' in settings.user.roles) ? settings.user.roles.show_filters : settings.DEFAULT_USER_SETTINGS.SHOW_FILTERS)
57+
const [darkMode, setDarkMode] = useState(settings?.user?.roles && ('dark_mode' in settings.user.roles) ? settings.user.roles.dark_mode : settings.DEFAULT_USER_SETTINGS.DARK_MODE)
5758

5859
const handleShowFiltersChange = (newValue) => {
5960
setShowFilters(newValue)
60-
updateUserSettings({ "show_filters": newValue})
61+
updateUserSettings({ "show_filters": newValue })
6162
}
6263

6364
const handleDarkModeChange = (newValue) => {

assets/js/Components/Widgets/FixIssuesFilters.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export default function FixIssuesFilters({
6363
const [usedFilters, setUsedFilters] = useState(null)
6464
const [detailedFilters, setDetailedFilters] = useState(null)
6565
// For new users, the 'show_filters' attribute may not be set, so we need to check if it exists before using it
66-
const [showFilters, setShowFilters] = useState(settings?.user?.roles && ('show_filters' in settings.user.roles) ? settings.user.roles.show_filters : true)
66+
const [showFilters, setShowFilters] = useState(settings?.user?.roles && ('show_filters' in settings.user.roles) ? settings.user.roles.show_filters : settings.DEFAULT_USER_SETTINGS.SHOW_FILTERS)
6767

6868
// When the page loads, only show the "Modules" filter is there are modules to filter by...
6969
useEffect(() => {

assets/js/Components/Widgets/ReviewFilesFilters.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default function ReviewFilesFilters({
5555
const [usedFilters, setUsedFilters] = useState(null)
5656
const [detailedFilters, setDetailedFilters] = useState(null)
5757
// For new users, the 'show_filters' attribute may not be set, so we need to check if it exists before using it
58-
const [showFilters, setShowFilters] = useState(settings?.user?.roles && ('show_filters' in settings.user.roles) ? settings.user.roles.show_filters : true)
58+
const [showFilters, setShowFilters] = useState(settings?.user?.roles && ('show_filters' in settings.user.roles) ? settings.user.roles.show_filters : settings.DEFAULT_USER_SETTINGS.SHOW_FILTERS)
5959

6060
// When the page loads, only show the "Modules" filter is there are modules to filter by...
6161
useEffect(() => {

assets/js/Services/Settings.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,15 @@ export const FILE_TYPE_MAP = {
9090
'video': FILE_FILTER.FILE_VIDEO,
9191
}
9292

93+
export const DEFAULT_USER_SETTINGS = {
94+
ALERT_TIMEOUT: '5000',
95+
FONT_SIZE: 'font-medium',
96+
FONT_FAMILY: 'sans-serif',
97+
DARK_MODE: false,
98+
SHOW_FILTERS: true,
99+
LANGUAGE: 'en',
100+
}
101+
93102
export function findEditURLWithIssue(issue, settings) {
94103
if (!issue || !settings || !settings.institution) {
95104
return ''

0 commit comments

Comments
 (0)