Skip to content

Commit

Permalink
Unselect hidden items and connections
Browse files Browse the repository at this point in the history
  • Loading branch information
raimohanska committed Mar 16, 2024
1 parent 401a7ea commit 816b83c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 10 deletions.
19 changes: 12 additions & 7 deletions frontend/src/board/board-focus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,18 @@ export function removeFromSelection(
}
}

export function removeNonExistingFromSelection(
selection: BoardFocus,
existingItemIds: Set<Id>,
existingConnectionIds: Set<Id>,
): BoardFocus {
const toRemoveItems = difference(getSelectedItemIds(selection), existingItemIds)
const toRemoveConnections = difference(getSelectedConnectionIds(selection), existingConnectionIds)
export function removeNonExistingFromSelection(selection: BoardFocus, board: Board): BoardFocus {
const toRemoveItems = new Set(
[...getSelectedItemIds(selection)].filter((id) => {
if (!board.items[id]) return true
if (board.items[id].hidden) return true
}),
)
const selectedConnectionIds = getSelectedConnectionIds(selection)
const toRemoveConnections =
selectedConnectionIds.size > 0
? difference(selectedConnectionIds, new Set(board.connections.filter((c) => !c.hidden).map((c) => c.id)))
: emptySet<Id>()
return removeFromSelection(selection, toRemoveItems, toRemoveConnections)
}

Expand Down
4 changes: 1 addition & 3 deletions frontend/src/board/synchronize-focus-with-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,7 @@ export function synchronizeFocusWithServer(
// TODO consider selected connection in locking as well maybe
const itemsWhereSomeoneElseHasLock = new Set(Object.keys(locks).filter((itemId) => locks[itemId] !== sessionId))
const nonLocked = removeFromSelection(focus, itemsWhereSomeoneElseHasLock, emptySet())
const existingItemIds = new Set(Object.keys(board.items))
const existingConnectionIds = new Set(board.connections.map((c) => c.id))
return removeNonExistingFromSelection(nonLocked, existingItemIds, existingConnectionIds)
return removeNonExistingFromSelection(nonLocked, board)
}

resolvedFocus.forEach(unlockUnselectedItems)
Expand Down

0 comments on commit 816b83c

Please sign in to comment.