club home redesign; deal multi-select delete; anchored card menus

This commit is contained in:
2026-10-12 17:59:07 +03:30
parent a2b01f787e
commit faac26d07d
6 changed files with 373 additions and 50 deletions
@@ -15,8 +15,10 @@ const props = withDefaults(
isFirst?: boolean;
isLast?: boolean;
copy?: PipelineUiCopy;
selectMode?: boolean;
selectedIds?: Set<string>;
}>(),
{ copy: () => DEAL_BOARD_COPY },
{ copy: () => DEAL_BOARD_COPY, selectedIds: () => new Set() },
);
const emit = defineEmits<{
@@ -27,6 +29,8 @@ const emit = defineEmits<{
addDeal: [stageId: string];
openDeal: [dealId: string];
menuDeal: [dealId: string];
toggleSelect: [dealId: string];
bulkDelete: [];
rename: [stageId: string, title: string];
delete: [stageId: string];
move: [stageId: string, dir: -1 | 1];
@@ -220,10 +224,14 @@ onBeforeUnmount(() => {
:accent="stage.color"
:dragging="draggingId === deal.id"
:copy="copy"
:select-mode="selectMode"
:selected="selectedIds.has(deal.id)"
@drag-start="(d, e) => emit('dragStart', d, e)"
@drag-end="emit('dragEnd')"
@open="emit('openDeal', $event)"
@menu="emit('menuDeal', $event)"
@toggle-select="emit('toggleSelect', $event)"
@bulk-delete="emit('bulkDelete')"
/>
</div>
<p v-if="!stage.deals.length" class="empty">{{ copy.empty }}</p>