Remove the per-row delete button from Explore's cards
Matches KanbanCard, which never had one -- deleting a card lives on its own view now (CardManageMenu's "Delete card"), reachable by clicking through from either list. Cleaned up what that leaves unused: the cards store's remove() (its only caller), and .card-row__delete's styling. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
import type { Card } from '../types'
|
import type { Card } from '../types'
|
||||||
|
|
||||||
defineProps<{ card: Card }>()
|
defineProps<{ card: Card }>()
|
||||||
const emit = defineEmits<{ delete: [] }>()
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -13,9 +12,5 @@ const emit = defineEmits<{ delete: [] }>()
|
|||||||
{{ card.status?.name ?? 'No status' }}
|
{{ card.status?.name ?? 'No status' }}
|
||||||
</span>
|
</span>
|
||||||
</RouterLink>
|
</RouterLink>
|
||||||
|
|
||||||
<button type="button" class="card-row__delete" aria-label="Delete card" @click="emit('delete')">
|
|
||||||
✕
|
|
||||||
</button>
|
|
||||||
</li>
|
</li>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -56,11 +56,6 @@ export const useCardsStore = defineStore('cards', () => {
|
|||||||
|
|
||||||
const setComplete = (card: Card, complete: boolean) => patch(card, { complete })
|
const setComplete = (card: Card, complete: boolean) => patch(card, { complete })
|
||||||
|
|
||||||
async function remove(card: Card): Promise<void> {
|
|
||||||
await apiRequest(`/cards/${card.id}`, { method: 'DELETE', auth: true })
|
|
||||||
cards.value = cards.value.filter((c) => c.id !== card.id)
|
|
||||||
}
|
|
||||||
|
|
||||||
function reset(): void {
|
function reset(): void {
|
||||||
cards.value = []
|
cards.value = []
|
||||||
projectId.value = null
|
projectId.value = null
|
||||||
@@ -76,7 +71,6 @@ export const useCardsStore = defineStore('cards', () => {
|
|||||||
load,
|
load,
|
||||||
add,
|
add,
|
||||||
setComplete,
|
setComplete,
|
||||||
remove,
|
|
||||||
reset,
|
reset,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -594,22 +594,6 @@ h1 {
|
|||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-row__delete {
|
|
||||||
flex: none;
|
|
||||||
border: none;
|
|
||||||
background: none;
|
|
||||||
color: var(--muted);
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: 1rem;
|
|
||||||
padding: 0.2rem 0.4rem;
|
|
||||||
border-radius: var(--radius-sm);
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-row__delete:hover {
|
|
||||||
color: var(--error);
|
|
||||||
background: var(--bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* --- project detail: header, inline title, manage menu ----------------- */
|
/* --- project detail: header, inline title, manage menu ----------------- */
|
||||||
|
|
||||||
/* Grid, not flex, so the mobile reflow below is one explicit statement of
|
/* Grid, not flex, so the mobile reflow below is one explicit statement of
|
||||||
|
|||||||
@@ -24,17 +24,6 @@ const sortedCards = computed(() =>
|
|||||||
[...cards.cards].sort((a, b) => a.text.localeCompare(b.text, undefined, { sensitivity: 'base' })),
|
[...cards.cards].sort((a, b) => a.text.localeCompare(b.text, undefined, { sensitivity: 'base' })),
|
||||||
)
|
)
|
||||||
|
|
||||||
/** Run a store mutation, surfacing failures and resyncing from the server. */
|
|
||||||
async function run(op: Promise<unknown>) {
|
|
||||||
actionError.value = null
|
|
||||||
try {
|
|
||||||
await op
|
|
||||||
} catch (e) {
|
|
||||||
actionError.value = e instanceof ApiError ? e.message : 'Something went wrong.'
|
|
||||||
if (cards.projectId !== null) await cards.load(cards.projectId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function onCreate() {
|
async function onCreate() {
|
||||||
submitting.value = true
|
submitting.value = true
|
||||||
actionError.value = null
|
actionError.value = null
|
||||||
@@ -58,12 +47,7 @@ async function onCreate() {
|
|||||||
<p v-if="cards.loading && !cards.loaded" class="muted">Loading…</p>
|
<p v-if="cards.loading && !cards.loaded" class="muted">Loading…</p>
|
||||||
|
|
||||||
<ul v-else-if="sortedCards.length" class="cards">
|
<ul v-else-if="sortedCards.length" class="cards">
|
||||||
<CardRow
|
<CardRow v-for="card in sortedCards" :key="card.id" :card="card" />
|
||||||
v-for="card in sortedCards"
|
|
||||||
:key="card.id"
|
|
||||||
:card="card"
|
|
||||||
@delete="run(cards.remove(card))"
|
|
||||||
/>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<form class="kanban__new form--new-card" @submit.prevent="onCreate">
|
<form class="kanban__new form--new-card" @submit.prevent="onCreate">
|
||||||
|
|||||||
Reference in New Issue
Block a user