UserListComponent.selectedUsers is a plain Set. In-place mutations (add/delete) do not create a new reference, so OnPush does not re-render @if (selectedUsers.size) / bulk-selection chrome even after detectChanges(). The checkbox event path that replaces or otherwise triggers CD works; programmatic/in-place Set updates can leave the toolbar stale.
Found by
Wave 6 coverage tick 9 a1 — characterized in user-list render suite (3a5d96cc / ledger).
Expected
Use a signal, immutable Set replacement (selectedUsers = new Set(...)), or markForCheck after mutations so bulk-selection UI stays in sync.
## Summary
`UserListComponent.selectedUsers` is a plain `Set`. In-place mutations (add/delete) do not create a new reference, so OnPush does not re-render `@if (selectedUsers.size)` / bulk-selection chrome even after `detectChanges()`. The checkbox event path that replaces or otherwise triggers CD works; programmatic/in-place Set updates can leave the toolbar stale.
## Found by
Wave 6 coverage tick 9 a1 — characterized in user-list render suite (`3a5d96cc` / ledger).
## Expected
Use a signal, immutable Set replacement (`selectedUsers = new Set(...)`), or markForCheck after mutations so bulk-selection UI stays in sync.
Resolved in spikersoft-angular PR #819 (merged to master). UserList selectedUsers is a signal so OnPush bulk-selection updates. Closing.
Resolved in spikersoft-angular [PR #819](https://git.spikersoft.com/spikerj/spikersoft-angular/pulls/819) (merged to `master`). UserList selectedUsers is a signal so OnPush bulk-selection updates. Closing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
UserListComponent.selectedUsersis a plainSet. In-place mutations (add/delete) do not create a new reference, so OnPush does not re-render@if (selectedUsers.size)/ bulk-selection chrome even afterdetectChanges(). The checkbox event path that replaces or otherwise triggers CD works; programmatic/in-place Set updates can leave the toolbar stale.Found by
Wave 6 coverage tick 9 a1 — characterized in user-list render suite (
3a5d96cc/ ledger).Expected
Use a signal, immutable Set replacement (
selectedUsers = new Set(...)), or markForCheck after mutations so bulk-selection UI stays in sync.Resolved in spikersoft-angular PR #819 (merged to
master). UserList selectedUsers is a signal so OnPush bulk-selection updates. Closing.