refactor(dev-only): use file view display prefs for files table
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
|||||||
ApplicationEvent,
|
ApplicationEvent,
|
||||||
naturalSort,
|
naturalSort,
|
||||||
FileBackupRecord,
|
FileBackupRecord,
|
||||||
|
SystemViewId,
|
||||||
} from '@standardnotes/snjs'
|
} from '@standardnotes/snjs'
|
||||||
import { useState, useEffect, useCallback, useMemo, useRef } from 'react'
|
import { useState, useEffect, useCallback, useMemo, useRef } from 'react'
|
||||||
import { FileItemActionType } from '../AttachedFilesPopover/PopoverFileItemAction'
|
import { FileItemActionType } from '../AttachedFilesPopover/PopoverFileItemAction'
|
||||||
@@ -166,26 +167,46 @@ const FilesTableView = ({ application, filesController, featuresController, link
|
|||||||
.getDisplayableNotesAndFiles()
|
.getDisplayableNotesAndFiles()
|
||||||
.filter((item) => item.content_type === ContentType.File) as FileItem[]
|
.filter((item) => item.content_type === ContentType.File) as FileItem[]
|
||||||
|
|
||||||
const [sortBy, setSortBy] = useState<keyof SortableItem>(
|
const getSortByPreference = useCallback(() => {
|
||||||
application.getPreference(PrefKey.SortNotesBy, PrefDefaults[PrefKey.SortNotesBy]),
|
const globalPrefValue = application.getPreference(PrefKey.SortNotesBy, PrefDefaults[PrefKey.SortNotesBy])
|
||||||
)
|
const filesViewPrefValue = application.getPreference(PrefKey.SystemViewPreferences)?.[SystemViewId.Files]?.sortBy
|
||||||
const [sortReversed, setSortReversed] = useState(
|
|
||||||
application.getPreference(PrefKey.SortNotesReverse, PrefDefaults[PrefKey.SortNotesReverse]),
|
return filesViewPrefValue ?? globalPrefValue
|
||||||
)
|
}, [application])
|
||||||
|
|
||||||
|
const getSortReversedPreference = useCallback(() => {
|
||||||
|
const globalPrefValue = application.getPreference(PrefKey.SortNotesReverse, PrefDefaults[PrefKey.SortNotesReverse])
|
||||||
|
const filesViewPrefValue = application.getPreference(PrefKey.SystemViewPreferences)?.[SystemViewId.Files]
|
||||||
|
?.sortReverse
|
||||||
|
|
||||||
|
return filesViewPrefValue ?? globalPrefValue
|
||||||
|
}, [application])
|
||||||
|
|
||||||
|
const [sortBy, setSortBy] = useState<keyof SortableItem>(() => getSortByPreference())
|
||||||
|
const [sortReversed, setSortReversed] = useState(() => getSortReversedPreference())
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
return application.addEventObserver(async (event) => {
|
return application.addEventObserver(async (event) => {
|
||||||
if (event === ApplicationEvent.PreferencesChanged) {
|
if (event === ApplicationEvent.PreferencesChanged) {
|
||||||
setSortBy(application.getPreference(PrefKey.SortNotesBy, PrefDefaults[PrefKey.SortNotesBy]))
|
setSortBy(getSortByPreference())
|
||||||
setSortReversed(application.getPreference(PrefKey.SortNotesReverse, PrefDefaults[PrefKey.SortNotesReverse]))
|
setSortReversed(getSortReversedPreference())
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, [application])
|
}, [application, getSortByPreference, getSortReversedPreference])
|
||||||
|
|
||||||
const onSortChange = useCallback(
|
const onSortChange = useCallback(
|
||||||
async (sortBy: keyof SortableItem, sortReversed: boolean) => {
|
async (sortBy: keyof SortableItem, sortReversed: boolean) => {
|
||||||
await application.setPreference(PrefKey.SortNotesBy, sortBy)
|
const systemViewPreferences = application.getPreference(PrefKey.SystemViewPreferences) || {}
|
||||||
await application.setPreference(PrefKey.SortNotesReverse, sortReversed)
|
const filesViewPreferences = systemViewPreferences[SystemViewId.Files] || {}
|
||||||
|
|
||||||
|
await application.setPreference(PrefKey.SystemViewPreferences, {
|
||||||
|
...systemViewPreferences,
|
||||||
|
[SystemViewId.Files]: {
|
||||||
|
...filesViewPreferences,
|
||||||
|
sortBy,
|
||||||
|
sortReverse: sortReversed,
|
||||||
|
},
|
||||||
|
})
|
||||||
},
|
},
|
||||||
[application],
|
[application],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user