1
Fork 0
mirror of https://github.com/thegeneralist01/archivr synced 2026-07-22 11:15:41 +02:00

feat(ui/tags): tooltips, entry counts (direct + N Total), Create/Move flows, Esc handling

- Tooltips on all action buttons (pencil, ×, + New, Move, picker close/nodes)
- Tag rows show 'Name (own) (N Total)': own = direct assignments,
  Total = unique entries on this tag or any descendant (COUNT DISTINCT)
- + New flow: header button → TagPickerModal → inline CreateInput at chosen
  level; Enter saves, Escape cancels; identical UX to rename
- Move flow (2-step): Move button → source-select mode → click source →
  TagPickerModal minus the moving subtree → pick destination or root;
  onTagRenamed(oldPath, updated.full_path) keeps tag filter coherent
- Esc: document keydown in TagPickerModal + separate useEffect in TagsView
  for source-select mode only; both preventDefault+stopPropagation so
  App's window-level handler does not also clear selected entries
- TagsView.stories.jsx: 6 stories, fetch stub scoped to useEffect
- Rebuilt static assets
This commit is contained in:
TheGeneralist 2026-07-19 10:56:59 +02:00
parent af9db0e50d
commit 506d23f05f
Signed by: thegeneralist01
SSH key fingerprint: SHA256:pp9qddbCNmVNoSjevdvQvM5z0DHN7LTa8qBMbcMq/R4
8 changed files with 712 additions and 106 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -4,8 +4,8 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Archivr</title>
<script type="module" crossorigin src="/assets/index-Db35_tmT.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-C0COQCCD.css">
<script type="module" crossorigin src="/assets/index-BpGwC-YY.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DLdY9nrw.css">
</head>
<body>
<div id="root"></div>