feat: task trash, triage trash and retention settings for every area; admin can forbid keeping things for good
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m39s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m39s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a927a94a95
commit
5a9c5bac37
36 files changed
+1356
-175
No files matched your search
@@ -20,6 +20,7 @@ import {
|
||||
ArrowLeft,
|
||||
ArrowRight,
|
||||
ChevronDown,
|
||||
Trash2,
|
||||
} from 'lucide-react';
|
||||
import { SharedList, Thought } from '../../lib/types';
|
||||
import { addDays, formatDue } from '../../lib/due';
|
||||
@@ -32,6 +33,9 @@ interface TriageDeckProps {
|
||||
onDeckChange: () => void;
|
||||
onOpenDocument: (docId: string) => void;
|
||||
onFocusCapture: () => void;
|
||||
// The triage's own trash (TriageTrash): thoughts thrown away while sorting
|
||||
discardedCount: number;
|
||||
onOpenTrash: () => void;
|
||||
}
|
||||
|
||||
interface SwipeableQueueItemProps {
|
||||
@@ -219,6 +223,8 @@ export const TriageDeck: React.FC<TriageDeckProps> = ({
|
||||
lists,
|
||||
onDeckChange,
|
||||
onFocusCapture,
|
||||
discardedCount,
|
||||
onOpenTrash,
|
||||
}) => {
|
||||
const writableLists = lists.filter((l) => l.isOwner || l.role !== 'viewer');
|
||||
const singleWritableList = writableLists.length === 1 ? writableLists[0] : null;
|
||||
@@ -469,6 +475,13 @@ export const TriageDeck: React.FC<TriageDeckProps> = ({
|
||||
Letzte Aktion rückgängig
|
||||
</button>
|
||||
)}
|
||||
|
||||
{discardedCount > 0 && (
|
||||
<button onClick={onOpenTrash} className="btn-action h-10 px-4 text-sm">
|
||||
<Trash2 className="w-4 h-4" />
|
||||
Papierkorb ({discardedCount})
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@@ -488,15 +501,24 @@ export const TriageDeck: React.FC<TriageDeckProps> = ({
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{lastTriaged && (
|
||||
<button
|
||||
onClick={handleUndo}
|
||||
className="btn-action h-8 px-3 text-xs"
|
||||
>
|
||||
<RotateCcw className="w-3.5 h-3.5 text-accent" />
|
||||
Rückgängig
|
||||
</button>
|
||||
)}
|
||||
<div className="flex items-center gap-2">
|
||||
{lastTriaged && (
|
||||
<button
|
||||
onClick={handleUndo}
|
||||
className="btn-action h-8 px-3 text-xs"
|
||||
>
|
||||
<RotateCcw className="w-3.5 h-3.5 text-accent" />
|
||||
Rückgängig
|
||||
</button>
|
||||
)}
|
||||
{/* Phones reach the trash through the menu */}
|
||||
{discardedCount > 0 && (
|
||||
<button onClick={onOpenTrash} className="hidden sm:inline-flex btn-action h-8 px-3 text-xs" title="Papierkorb der Triage">
|
||||
<Trash2 className="w-3.5 h-3.5" />
|
||||
{discardedCount}
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Card Stack Container */}
|
||||
|
||||
Reference in new issue
Block a user