Release/7.0.2 - #346
Conversation
Updated `elasticKeywords` logic to include the `Equals` operator alongside `Substring` in the identifier search. This ensures better matching capabilities for both `case-string-id` and `case-visual-id` categories.
Introduce a mechanism to prevent race conditions during tab switching by adding a `_switching` flag and `_pendingIndex`. This ensures seamless handling of concurrent user actions and avoids inconsistencies in the selected tab state.
|
Warning Review limit reached
Next review available in: 52 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
WalkthroughThe PR updates case search index selection, queues tab-switch processing, and changes package versions from ChangesCore behavior and release alignment
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
actor Caller
participant TabView
participant SelectionNotifications
Caller->>TabView: tabChange(index)
TabView->>TabView: _processSwitch(index)
TabView->>SelectionNotifications: notify selection change
TabView->>TabView: wait 150 ms
TabView->>TabView: process newer pending index
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts`:
- Around line 37-39: Replace the queued position state in TabView with the
pending tab’s uniqueId, update the queueing and _processSwitch flow to resolve
that ID against the current openedTabs immediately before selecting, and discard
the request when no matching tab remains. Ensure selectedIndex is only assigned
the resolved current index, including after closeTabIndex changes the array.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 87e49f96-cf4f-4741-afc5-228100f9e834
📒 Files selected for processing (6)
package.jsonprojects/netgrif-components-core/package.jsonprojects/netgrif-components-core/src/lib/search/models/category/case/case-string-id.tsprojects/netgrif-components-core/src/lib/search/models/category/case/case-visual-id.tsprojects/netgrif-components-core/src/lib/tabs/classes/tab-view.tsprojects/netgrif-components/package.json
Replaced index-based tracking with unique ID-based tracking for tab switching logic. This ensures more reliable identification of tabs and avoids potential issues with index mismatches. Adjusted all relevant methods to accommodate the use of unique IDs.
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts (1)
297-306: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winUpdate
selectedIndexbefore notifying the new tab.
TabView._processSwitch()emitstruefor the target tab beforeselectedIndexis updated, whilesetTabIndexWithNotification()updates it first. Keep the selection callback consistent by movingthis.selectedIndex.setValue(index)beforetab.tabSelected$.next(true).🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts` around lines 297 - 306, Update TabView._processSwitch() so this.selectedIndex.setValue(index) executes before notifying the newly selected tab via tab.tabSelected$.next(true), matching setTabIndexWithNotification() callback ordering while preserving the deselection notification flow.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts`:
- Around line 282-285: The tabChange method unconditionally assigns to
this._pendingTabUniqueId before checking validity, which overwrites any
previously queued tab switch when an invalid event arrives. Extract the value
from this.openedTabs[event.index]?.uniqueId into a local variable first,
validate that the local variable is not undefined, and only assign it to
this._pendingTabUniqueId when valid. This preserves the pending tab ID if a
queued _processSwitch call is already scheduled, preventing a later invalid
event from canceling the earlier valid switch.
---
Outside diff comments:
In `@projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts`:
- Around line 297-306: Update TabView._processSwitch() so
this.selectedIndex.setValue(index) executes before notifying the newly selected
tab via tab.tabSelected$.next(true), matching setTabIndexWithNotification()
callback ordering while preserving the deselection notification flow.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: aadf0bd7-41f4-4027-9582-b80d70930a62
📒 Files selected for processing (1)
projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts
Replaced direct assignment to the class property with a local variable for better readability and maintainability. Ensured functionality remains unchanged while improving code clarity.
|


Release 7.0.2
Summary by CodeRabbit
Bug Fixes
Chores