Skip to content

Commit 3d5fb83

Browse files
committed
fix(knowledge): keep select-all actions consistent
1 parent 9699505 commit 3d5fb83

3 files changed

Lines changed: 22 additions & 5 deletions

File tree

apps/sim/app/workspace/[workspaceId]/components/resource/selection-label.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,17 @@ describe('selection labels', () => {
3333
).toBe('Enable 3 items')
3434
})
3535

36+
it('keeps a singular affected count visible within a larger selection', () => {
37+
expect(
38+
selectionToggleActionLabel({
39+
selectedCount: 5,
40+
enabledCount: 4,
41+
disabledCount: 1,
42+
isSelectedItemEnabled: true,
43+
})
44+
).toBe('Enable 1 item')
45+
})
46+
3647
it('counts enabled items when a selection can only be disabled', () => {
3748
expect(
3849
selectionToggleActionLabel({

apps/sim/app/workspace/[workspaceId]/components/resource/selection-label.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ export function selectionActionLabel(
1414
singleItemLabel = action
1515
): string {
1616
if (selectedCount <= 1) return singleItemLabel
17-
return `${action} ${selectedCount} items`
17+
return countedSelectionActionLabel(action, selectedCount)
18+
}
19+
20+
function countedSelectionActionLabel(action: string, count: number): string {
21+
return `${action} ${count} ${count === 1 ? 'item' : 'items'}`
1822
}
1923

2024
interface SelectionToggleActionLabelOptions {
@@ -35,5 +39,5 @@ export function selectionToggleActionLabel({
3539
if (selectedCount <= 1) return isSelectedItemEnabled ? 'Disable' : 'Enable'
3640
const action = disabledCount > 0 ? 'Enable' : 'Disable'
3741
if (!hasExactAffectedCount) return `${action} selected items`
38-
return selectionActionLabel(action, disabledCount > 0 ? disabledCount : enabledCount)
42+
return countedSelectionActionLabel(action, disabledCount > 0 ? disabledCount : enabledCount)
3943
}

apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -687,6 +687,7 @@ export function KnowledgeBase({
687687
* Handles selecting/deselecting a document
688688
*/
689689
const handleSelectDocument = (docId: string, checked: boolean) => {
690+
setIsSelectAllMode(false)
690691
setSelectedDocuments((prev) => {
691692
const newSet = new Set(prev)
692693
if (checked) {
@@ -918,6 +919,7 @@ export function KnowledgeBase({
918919
const isCurrentlySelected = selectedDocuments.has(doc.id)
919920

920921
if (!isCurrentlySelected) {
922+
setIsSelectAllMode(false)
921923
setSelectedDocuments(new Set([doc.id]))
922924
}
923925

@@ -1423,15 +1425,15 @@ export function KnowledgeBase({
14231425
srTitle='Delete Documents'
14241426
title='Delete Documents'
14251427
text={[
1426-
`Are you sure you want to delete ${selectedDocuments.size} document${selectedDocuments.size === 1 ? '' : 's'}? `,
1428+
`Are you sure you want to delete ${selectedDocumentCount} document${selectedDocumentCount === 1 ? '' : 's'}? `,
14271429
{
1428-
text: `This will permanently delete the selected document${selectedDocuments.size === 1 ? '' : 's'}.`,
1430+
text: `This will permanently delete the selected document${selectedDocumentCount === 1 ? '' : 's'}.`,
14291431
error: true,
14301432
},
14311433
' This action cannot be undone.',
14321434
]}
14331435
confirm={{
1434-
label: `Delete ${selectedDocuments.size} Document${selectedDocuments.size === 1 ? '' : 's'}`,
1436+
label: `Delete ${selectedDocumentCount} Document${selectedDocumentCount === 1 ? '' : 's'}`,
14351437
onClick: confirmBulkDelete,
14361438
pending: isBulkOperating,
14371439
pendingLabel: 'Deleting...',

0 commit comments

Comments
 (0)