Skip to content

New Features and Optimizations#55

Merged
RafaUC merged 22 commits into
masterfrom
ux-improvements
Jul 28, 2025
Merged

New Features and Optimizations#55
RafaUC merged 22 commits into
masterfrom
ux-improvements

Conversation

@RafaUC

@RafaUC RafaUC commented Jul 28, 2025

Copy link
Copy Markdown
Owner

Features

  • The gallery scroll now remembers the selected/focused file after switching between view modes and scrolls to its position.
  • Scroll to top/bottom of the gallery with Home and End keys.
  • Sort selected tags (without modifying hierarchy) Feature request: sort tags in sidebar #45
  • Recursive expand/collapse using Ctrl+Click on the tags tree.
  • Added configuration in appearance settings to show hierarchy connector lines in trees to improve hierarchy readability.
  • Move tags into another tag's sub-tags.
    • Added "Move To" option to the tags context menu.
  • Indicate when a tag is partially applied across selected files in the file tags editor, showing the tag checkbox in a muted tone.
    • Clicking a partially applied tag will apply it to all selected files.

Optimizations

  • Optimized tags tree performance using virtualization. Now the app doesn't get slow because of the number of expanded elements.
  • Cache computed tags tree structure.
  • Reworked the merge tags and tags imply dialogs to improve performance in their actions.
  • Optimized initial scan time for Windows users.
  • Optimized new files addition at startup.

Bug fixes

  • Fixed a bug where the suggestion flyout in the tag selector in the tag implication dialog was not positioned correctly.
  • Fixed a bug where some files did not update correctly in the frontend while handling moved/renamed/missing files at startup.
  • UI fixes and tweaks.

RafaUC added 22 commits July 13, 2025 19:03
* Add "sortSelectedTagItems" action to "UiStore"

* Add sort by "name", "number of tagged files", "color", and "date added" options to the tag contextual menu.
…mponent on each update, and instead just update the necessary props and subcomponents.

* Converted Tree, TreeBranch, and TreeLeaf components to use React.memo.

* Changed most props sent to the Tree component to have stable references when possible.

* Added a cache of ITreeItem tag nodes: created the hook useStableMappedTagTreeNodes and a new mapTag function, which are used to track the MobX observable tag hierarchy dependencies and tag selection in order to update outdated prop references.

* Modified the TagsTree state: updated the action, factory, and reducer definitions to track the source of an action when updating the state using dispatch and to trigger only the necessary updates.
- Created VirtualizedTree and related subcomponents.

- TODO:
  * Auto-detect item height
  * Auto-size to container
  * Implement TreeItemRevealer compatibility
  * (Optional) Add collapse/expand animation
* Auto-detect item height

* Add collapse/expand animation
* Auto size virtualized tree when parent container changes height

* Fix animation bugs
…ply dialog did not place correctly: now we can define the placements and strategy for the suggestions flyout when using the tag selector in a component.
Finished all features remaining

Implement TreeItemRevealer compatibility with virtualizedTree
* Add "Move To" option to tags context menu.
* Refactor the TagsImply component and the tag's related methods for efficiency and maintainability.

* The tag selector can be set to not delete the input query upon select/deselect.

* Remove refetch after each implied tag modification.

* UI adjustments.
…ng between view modes and scrolls to its position
…cationStore.watchLocations moved/renamed/missing files handling.

Add extra properties merging during missing files duplicates merge in watchLocations.
…aiting for chokidar.watch, significantly improving initial sync time in some scenarios.
…when adding files to large existing locations
…es in the file tags editor, showing the tag checkbox in a muted tone.

* When a tag is partially applied, clicking it will add the tag to all selected files.
…ys() instead of filtering by absolute path
@RafaUC RafaUC merged commit e794158 into master Jul 28, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant