diff --git a/packages/web/src/javascripts/Components/ContentListView/ContentListView.tsx b/packages/web/src/javascripts/Components/ContentListView/ContentListView.tsx index c554cb6cd..db572a092 100644 --- a/packages/web/src/javascripts/Components/ContentListView/ContentListView.tsx +++ b/packages/web/src/javascripts/Components/ContentListView/ContentListView.tsx @@ -373,6 +373,7 @@ const ContentListView = forwardRef( navigationController={navigationController} notesController={notesController} historyModalController={historyModalController} + itemListController={itemListController} /> ) : ( { +const ItemNameCell = ({ item, hideIcon }: { item: DecryptedItemInterface; hideIcon: boolean }) => { const application = useApplication() const [backupInfo, setBackupInfo] = useState(undefined) const isItemFile = item instanceof FileItem @@ -196,11 +196,13 @@ const ItemNameCell = ({ item }: { item: DecryptedItemInterface }) => { return (
- {isItemFile ? ( - getFileIconComponent(getIconForFileType(item.mimeType), 'w-6 h-6 flex-shrink-0') - ) : ( - - )} + {!hideIcon ? ( + isItemFile ? ( + getFileIconComponent(getIconForFileType(item.mimeType), 'w-6 h-6 flex-shrink-0') + ) : ( + + ) + ) : null} {backupInfo && (
{ const listHasFiles = items.some((item) => item instanceof FileItem) - const getSortByPreference = useCallback(() => { - const globalPrefValue = application.getPreference(PrefKey.SortNotesBy, PrefDefaults[PrefKey.SortNotesBy]) - const filesViewPrefValue = application.getPreference(PrefKey.SystemViewPreferences)?.[SystemViewId.Files]?.sortBy - - 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(() => getSortByPreference()) - const [sortReversed, setSortReversed] = useState(() => getSortReversedPreference()) - - useEffect(() => { - return application.addEventObserver(async (event) => { - if (event === ApplicationEvent.PreferencesChanged) { - setSortBy(getSortByPreference()) - setSortReversed(getSortReversedPreference()) - } - }) - }, [application, getSortByPreference, getSortReversedPreference]) + const { sortBy, sortDirection } = itemListController.displayOptions + const sortReversed = sortDirection === 'asc' + const { hideDate, hideEditorIcon: hideIcon, hideTags } = itemListController.webDisplayOptions const onSortChange = useCallback( async (sortBy: keyof SortableItem, sortReversed: boolean) => { - const systemViewPreferences = application.getPreference(PrefKey.SystemViewPreferences) || {} - const filesViewPreferences = systemViewPreferences[SystemViewId.Files] || {} + const selectedTag = navigationController.selected - await application.setPreference(PrefKey.SystemViewPreferences, { - ...systemViewPreferences, - [SystemViewId.Files]: { - ...filesViewPreferences, + if (!selectedTag) { + return + } + + if (selectedTag.uuid === SystemViewId.Files) { + const systemViewPreferences = application.getPreference(PrefKey.SystemViewPreferences) || {} + const filesViewPreferences = systemViewPreferences[SystemViewId.Files] || {} + + await application.setPreference(PrefKey.SystemViewPreferences, { + ...systemViewPreferences, + [SystemViewId.Files]: { + ...filesViewPreferences, + sortBy, + sortReverse: sortReversed, + }, + }) + } + + await application.mutator.changeAndSaveItem(selectedTag, (mutator) => { + mutator.preferences = { + ...mutator.preferences, sortBy, sortReverse: sortReversed, - }, + } }) }, - [application], + [application, navigationController.selected], ) const [contextMenuItem, setContextMenuItem] = useState(undefined) @@ -331,7 +328,7 @@ const ContentTableView = ({ { name: 'Name', sortBy: 'title', - cell: (item) => , + cell: (item) => , }, { name: 'Upload date', @@ -339,7 +336,7 @@ const ContentTableView = ({ cell: (item) => { return formatDateForContextMenu(item.created_at) }, - hidden: isSmallBreakpoint, + hidden: isSmallBreakpoint || hideDate, }, { name: 'Size', @@ -351,11 +348,11 @@ const ContentTableView = ({ }, { name: 'Attached to', - hidden: isSmallBreakpoint || isMediumBreakpoint || isLargeBreakpoint, + hidden: isSmallBreakpoint || isMediumBreakpoint || isLargeBreakpoint || hideTags, cell: (item) => , }, ], - [isLargeBreakpoint, isMediumBreakpoint, isSmallBreakpoint, listHasFiles], + [hideDate, hideIcon, hideTags, isLargeBreakpoint, isMediumBreakpoint, isSmallBreakpoint, listHasFiles], ) const getRowId = useCallback((item: DecryptedItemInterface) => item.uuid, [])