feat: Phase 3 - filter bar, keyboard navigation, notifications, comments
- FilterBar component with text search, label chips, due date and priority dropdowns - "/" keyboard shortcut and toolbar button to toggle filter bar - Keyboard card navigation with J/K/H/L keys, Enter to open, Escape to clear - Focus ring on keyboard-selected cards with auto-scroll - Desktop notifications for due/overdue cards via tauri-plugin-notification - CommentsSection component with add/delete and relative timestamps - Filtered card count display in column headers
This commit is contained in:
@@ -20,6 +20,7 @@ import type { Column, ColumnWidth } from "@/types/board";
|
||||
interface ColumnHeaderProps {
|
||||
column: Column;
|
||||
cardCount: number;
|
||||
filteredCount?: number;
|
||||
}
|
||||
|
||||
const COLOR_PRESETS = [
|
||||
@@ -35,7 +36,7 @@ const COLOR_PRESETS = [
|
||||
{ hue: "0", label: "Slate" },
|
||||
];
|
||||
|
||||
export function ColumnHeader({ column, cardCount }: ColumnHeaderProps) {
|
||||
export function ColumnHeader({ column, cardCount, filteredCount }: ColumnHeaderProps) {
|
||||
const [editing, setEditing] = useState(false);
|
||||
const [editValue, setEditValue] = useState(column.title);
|
||||
const inputRef = useRef<HTMLInputElement>(null);
|
||||
@@ -107,7 +108,7 @@ export function ColumnHeader({ column, cardCount }: ColumnHeaderProps) {
|
||||
? "text-[oklch(65%_0.15_70)]"
|
||||
: "text-pylon-text-secondary"
|
||||
}`}>
|
||||
{cardCount}{column.wipLimit != null ? `/${column.wipLimit}` : ""}
|
||||
{filteredCount != null ? `${filteredCount} of ` : ""}{cardCount}{column.wipLimit != null ? `/${column.wipLimit}` : ""}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user