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

feat: multi-select entries with bulk delete, tag, and collection actions (#28)

* feat: multi-select entry rows (shift/ctrl+click, mobile checkbox)
* feat: bulk-action panel for multi-selected entries
This commit is contained in:
TheGeneralist 2026-07-15 16:50:37 +02:00 committed by GitHub
parent 278dc928df
commit cd463d2810
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 418 additions and 73 deletions

View file

@ -1,10 +1,11 @@
import EntryRow from './EntryRow';
export default function EntriesView({ entries, selectedEntryUid, onSelectEntry, archiveId }) {
export default function EntriesView({ entries, selectedUids, onRowClick, archiveId }) {
return (
<section id="archive-view" className="view is-active">
<div className="entry-table">
<div className="entry-header-row">
<div className="col-check" aria-hidden="true" />
<div className="col-added">Added</div>
<div className="col-title">Title</div>
<div className="col-type">Type</div>
@ -17,8 +18,9 @@ export default function EntriesView({ entries, selectedEntryUid, onSelectEntry,
key={entry.entry_uid}
entry={entry}
archiveId={archiveId}
isSelected={entry.entry_uid === selectedEntryUid}
onSelect={() => onSelectEntry(entry)}
isSelected={selectedUids.size === 1 && selectedUids.has(entry.entry_uid)}
isMultiSelected={selectedUids.size >= 2 && selectedUids.has(entry.entry_uid)}
onRowClick={onRowClick}
/>
))}
</div>