Improve bulk mode card display handling

This commit is contained in:
Will Miao
2025-03-07 17:34:54 +08:00
parent 7bb6a470b7
commit 2186b7ee26
2 changed files with 29 additions and 6 deletions

View File

@@ -159,11 +159,26 @@ export function updateCardsForBulkMode(isBulkMode) {
document.body.classList.toggle('bulk-mode', isBulkMode); document.body.classList.toggle('bulk-mode', isBulkMode);
document.querySelectorAll('.lora-card').forEach(card => { // Get all lora cards
const loraCards = document.querySelectorAll('.lora-card');
loraCards.forEach(card => {
// Get all action containers for this card
const actions = card.querySelectorAll('.card-actions'); const actions = card.querySelectorAll('.card-actions');
// Handle display property based on mode
if (isBulkMode) {
// Hide actions when entering bulk mode
actions.forEach(actionGroup => { actions.forEach(actionGroup => {
actionGroup.style.display = isBulkMode ? 'none' : 'flex'; actionGroup.style.display = 'none';
}); });
} else {
// Ensure actions are visible when exiting bulk mode
actions.forEach(actionGroup => {
// We need to reset to default display style which is flex
actionGroup.style.display = 'flex';
});
}
}); });
// Apply selection state to cards if entering bulk mode // Apply selection state to cards if entering bulk mode

View File

@@ -56,12 +56,20 @@ export class BulkManager {
this.hideThumbnailStrip(); this.hideThumbnailStrip();
} }
// Update all cards // First update all cards' visual state before clearing selection
updateCardsForBulkMode(state.bulkMode); updateCardsForBulkMode(state.bulkMode);
// Clear selection if exiting bulk mode // Clear selection if exiting bulk mode - do this after updating cards
if (!state.bulkMode) { if (!state.bulkMode) {
this.clearSelection(); this.clearSelection();
// Force a lightweight refresh of the cards to ensure proper display
// This is less disruptive than a full resetAndReload()
document.querySelectorAll('.lora-card').forEach(card => {
// Re-apply normal display mode to all card actions
const actions = card.querySelectorAll('.card-actions, .card-button');
actions.forEach(action => action.style.display = 'flex');
});
} }
} }