Skip to content

Conversation

@yash-rajpal
Copy link
Member

@yash-rajpal yash-rajpal commented Sep 22, 2025

Proposed changes (including videos or screenshots)

Move resizable contextualbar outside feature preview

Issue(s)

Steps to test or reproduce

Further comments

CORE-1350

Summary by CodeRabbit

  • New Features
    • Resizable contextual sidebars are now generally available across the app (graduated from preview).
  • Refactor
    • Removed the Feature Preview toggle for contextual sidebar resizing and related UI text, simplifying settings.
    • Unified contextual sidebar behavior in dialogs for a more consistent experience.
  • Chores
    • Upgraded key application packages to new major versions for improved stability and compatibility.

@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Sep 22, 2025

Looks like this PR is ready to merge! 🎉
If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link

changeset-bot bot commented Sep 22, 2025

🦋 Changeset detected

Latest commit: 56bd04e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 39 packages
Name Type
@rocket.chat/ui-client Major
@rocket.chat/i18n Major
@rocket.chat/meteor Major
@rocket.chat/gazzodown Major
@rocket.chat/ui-voip Major
@rocket.chat/web-ui-registration Major
@rocket.chat/mock-providers Patch
@rocket.chat/ui-contexts Major
@rocket.chat/omnichannel-transcript Patch
@rocket.chat/omnichannel-services Patch
@rocket.chat/fuselage-ui-kit Major
@rocket.chat/livechat Patch
@rocket.chat/uikit-playground Patch
@rocket.chat/ui-avatar Major
@rocket.chat/ui-video-conf Major
@rocket.chat/queue-worker Patch
@rocket.chat/core-typings Major
@rocket.chat/rest-typings Major
@rocket.chat/api-client Patch
@rocket.chat/apps Patch
@rocket.chat/core-services Patch
@rocket.chat/cron Patch
@rocket.chat/ddp-client Patch
@rocket.chat/freeswitch Patch
@rocket.chat/http-router Patch
@rocket.chat/model-typings Patch
@rocket.chat/account-service Patch
@rocket.chat/authorization-service Patch
@rocket.chat/ddp-streamer Patch
@rocket.chat/presence-service Patch
@rocket.chat/license Patch
@rocket.chat/pdf-worker Patch
@rocket.chat/presence Patch
rocketchat-services Patch
@rocket.chat/models Patch
@rocket.chat/network-broker Patch
@rocket.chat/omni-core-ee Patch
@rocket.chat/instance-status Patch
@rocket.chat/omni-core Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai
Copy link

coderabbitai bot commented Sep 22, 2025

Walkthrough

Promotes Contextualbar resizable from preview to stable by removing feature-flag branches, deleting related i18n keys, and updating feature preview lists. Adjusts Storybook decorators to use Box instead of Contextualbar. Updates e2e tests to align with UI changes. Bumps @rocket.chat/ui-client, @rocket.chat/i18n, and @rocket.chat/meteor major versions.

Changes

Cohort / File(s) Summary
Feature preview deprecation & stabilization
apps/meteor/client/components/Contextualbar/ContextualbarDialog.tsx, packages/ui-client/src/hooks/useFeaturePreviewList.ts, packages/i18n/src/locales/*.i18n.json, .changeset/happy-carpets-draw.md
Removes FeaturePreview wrappers; always renders Contextualbar within ContextualbarResizable. Drops contextualbarResizable from FeaturesAvailable and defaultFeaturesPreview. Deletes related i18n keys in en, nb, nn, pt-BR, sv. Adds changeset bumping three packages and noting promotion.
Storybook decorator adjustments
apps/meteor/client/omnichannel/.../CannedResponseList.stories.tsx, apps/meteor/client/views/marketplace/.../AppLogsFilterContextualBar.stories.tsx, apps/meteor/client/views/room/.../InviteUsers.stories.tsx
Replaces Contextualbar wrappers with Box height='100vh' in story decorators; updates imports accordingly.
E2E test flow updates
apps/meteor/tests/e2e/feature-preview.spec.ts, apps/meteor/tests/e2e/page-objects/omnichannel-units.ts
Removes accordion expansion step before toggling “Enhanced navigation” checkbox; changes post-selection click target from contextual bar to the original input fields to finalize selection.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant UI as ContextualbarDialog
  participant Resizer as ContextualbarResizable
  participant Bar as Contextualbar

  Note over UI: New stabilized flow (feature preview removed)
  User->>UI: Open contextual dialog
  UI->>Resizer: Render with defaultWidth from contextualBar
  Resizer->>Bar: Render width='100%'
  User-->>Resizer: Drag to resize (optional)
  Resizer-->>Bar: Apply new width
  Note over UI,Bar: No FeaturePreview gating path
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • yash-rajpal

Poem

I nibbled flags till none remained,
The bar now grows, unchained, unfeigned.
No switches, checks, or hidden lore—
Just grab the edge and make some more.
Thump-thump! I ship with tidy cheer,
A roomy warren, crystal-clear. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning The PR includes unrelated modifications in apps/meteor/tests/e2e/feature-preview.spec.ts targeting the “Enhanced navigation” feature and changes to the omnichannel-units page object, neither of which address the resizable contextualbar objectives defined in CORE-1350. Please remove or isolate the unrelated test adjustments into a separate PR so that this branch remains focused solely on the CORE-1350 contextualbar changes.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title clearly and succinctly describes the main change of moving resizable contextualbars out of feature preview and matches the PR contents that remove feature-flagged branches and promote the stable implementation.
Linked Issues Check ✅ Passed The pull request removes the FeaturePreview wrappers in ContextualbarDialog, drops contextualbarResizable from the feature preview list in useFeaturePreviewList, and cleans up all related duplicated code, thereby fulfilling the CORE-1350 requirements for stable availability without a preview toggle and removal from preview lists.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch resizeable-contextualbars

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 05b485a and 56bd04e.

📒 Files selected for processing (1)
  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: 📦 Build Packages
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dougfabris dougfabris added this to the 8.0.0 milestone Sep 22, 2025
@yash-rajpal yash-rajpal added the stat: QA assured Means it has been tested and approved by a company insider label Sep 22, 2025
@dionisio-bot dionisio-bot bot added the stat: ready to merge PR tested and approved waiting for merge label Sep 22, 2025
@codecov
Copy link

codecov bot commented Sep 22, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.39%. Comparing base (3c42f0d) to head (56bd04e).
⚠️ Report is 101 commits behind head on release-8.0.0.

Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                @@
##           release-8.0.0   #37022      +/-   ##
=================================================
- Coverage          66.43%   66.39%   -0.05%     
=================================================
  Files               3276     3312      +36     
  Lines             109596   111646    +2050     
  Branches           20860    20935      +75     
=================================================
+ Hits               72814    74123    +1309     
- Misses             34116    34846     +730     
- Partials            2666     2677      +11     
Flag Coverage Δ
e2e 58.24% <ø> (+0.40%) ⬆️
unit 70.89% <100.00%> (-0.68%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@yash-rajpal yash-rajpal marked this pull request as ready for review September 24, 2025 12:27
@yash-rajpal yash-rajpal requested review from a team as code owners September 24, 2025 12:27
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (5)
apps/meteor/tests/e2e/page-objects/omnichannel-units.ts (2)

54-54: Avoid coordinate-based click; close dropdown semantically

Coordinate clicks are flaky across DPI/layouts. Prefer closing the listbox via keyboard and wait for it to detach.

-		await this.contextualBar.click({ position: { x: 3, y: 3 } });
+		await this.page.keyboard.press('Escape');
+		await this.page.locator('#position-container').waitFor({ state: 'detached' });

60-60: Repeat: replace coordinate click with deterministic close

Same rationale as above: use Escape + explicit wait.

-		await this.contextualBar.click({ position: { x: 3, y: 3 } });
+		await this.page.keyboard.press('Escape');
+		await this.page.locator('#position-container').waitFor({ state: 'detached' });
.changeset/happy-carpets-draw.md (1)

7-7: Copy tweak for clarity and consistency

Minor grammar/terminology improvement.

-Promotes Resizable Contextualbars from preview state to stable.
+Promote contextual bar resizing from feature preview to stable.
packages/ui-client/src/hooks/useFeaturePreviewList.ts (1)

3-3: Guard against legacy entries in stored settings

After narrowing FeaturesAvailable, persisted entries like contextualbarResizable may still exist. Filter unknown features at runtime to keep unseenFeatures and merging stable.

Add a guard before computing unseen/merged:

const validFeatures = featuresList?.filter((f) => enabledDefaultFeatures.some((df) => df.name === f.name)) ?? [];
// then use validFeatures instead of featuresList below
apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts (1)

87-87: Prefer role-based, web-first assertion

Use an accessible role locator to reduce flakiness and align with guidelines.

-			await expect(page.locator('h3 >> text="No results found"')).toBeVisible();
+			await expect(page.getByRole('heading', { name: 'No results found' })).toBeVisible();
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 7f5e92b and 51712fe.

⛔ Files ignored due to path filters (4)
  • apps/meteor/client/omnichannel/cannedResponses/contextualBar/CannedResponse/__snapshots__/CannedResponseList.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/Filters/__snapshots__/AppLogsFilterContextualBar.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/room/contextualBar/RoomMembers/InviteUsers/__snapshots__/InviteUsers.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/public/images/featurePreview/resizable-contextual-bar.png is excluded by !**/*.png
📒 Files selected for processing (11)
  • .changeset/happy-carpets-draw.md (1 hunks)
  • apps/meteor/client/components/Contextualbar/ContextualbarDialog.tsx (1 hunks)
  • apps/meteor/tests/e2e/feature-preview.spec.ts (0 hunks)
  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts (1 hunks)
  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts (1 hunks)
  • packages/i18n/src/locales/en.i18n.json (0 hunks)
  • packages/i18n/src/locales/nb.i18n.json (0 hunks)
  • packages/i18n/src/locales/nn.i18n.json (0 hunks)
  • packages/i18n/src/locales/pt-BR.i18n.json (0 hunks)
  • packages/i18n/src/locales/sv.i18n.json (0 hunks)
  • packages/ui-client/src/hooks/useFeaturePreviewList.ts (1 hunks)
💤 Files with no reviewable changes (6)
  • packages/i18n/src/locales/en.i18n.json
  • apps/meteor/tests/e2e/feature-preview.spec.ts
  • packages/i18n/src/locales/nb.i18n.json
  • packages/i18n/src/locales/sv.i18n.json
  • packages/i18n/src/locales/nn.i18n.json
  • packages/i18n/src/locales/pt-BR.i18n.json
🧰 Additional context used
📓 Path-based instructions (4)
apps/meteor/tests/e2e/page-objects/**/*.ts

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

Utilize and place Page Object implementations under apps/meteor/tests/e2e/page-objects/

Files:

  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts
apps/meteor/tests/e2e/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

apps/meteor/tests/e2e/**/*.{ts,tsx,js,jsx}: Write concise, technical TypeScript/JavaScript with accurate typing
Follow DRY by extracting reusable logic into helper functions or page objects
Avoid code comments in the implementation

Files:

  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
apps/meteor/tests/e2e/**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

apps/meteor/tests/e2e/**/*.{ts,tsx}: Avoid using page.locator(); prefer semantic locators like page.getByRole, page.getByLabel, page.getByText, and page.getByTitle
Store commonly used locators in variables/constants for reuse
Use page.waitFor() with specific conditions and avoid hardcoded timeouts
Implement proper wait strategies for dynamic content
Follow the Page Object Model pattern consistently

Files:

  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts
  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
apps/meteor/tests/e2e/**/*.spec.ts

📄 CodeRabbit inference engine (.cursor/rules/playwright.mdc)

apps/meteor/tests/e2e/**/*.spec.ts: All Playwright test files must be located under apps/meteor/tests/e2e/ and use the .spec.ts extension (e.g., login.spec.ts)
Use descriptive test names that clearly communicate expected behavior
Use test.beforeAll() and test.afterAll() for setup and teardown
Use test.step() to organize complex test scenarios
Group related tests in the same file
Utilize Playwright fixtures (test, page, expect) consistently
Prefer web-first assertions (e.g., toBeVisible, toHaveText)
Use expect matchers (toEqual, toContain, toBeTruthy, toHaveLength, etc.) instead of assert statements
Maintain test isolation between test cases
Ensure a clean state for each test execution
Ensure tests run reliably in parallel without shared state conflicts

Files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
🧠 Learnings (11)
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/page-objects/**/*.ts : Utilize and place Page Object implementations under apps/meteor/tests/e2e/page-objects/

Applied to files:

  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx} : Follow the Page Object Model pattern consistently

Applied to files:

  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx} : Avoid using page.locator(); prefer semantic locators like page.getByRole, page.getByLabel, page.getByText, and page.getByTitle

Applied to files:

  • apps/meteor/tests/e2e/page-objects/omnichannel-units.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use descriptive test names that clearly communicate expected behavior

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Ensure a clean state for each test execution

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Prefer web-first assertions (e.g., toBeVisible, toHaveText)

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Use expect matchers (toEqual, toContain, toBeTruthy, toHaveLength, etc.) instead of assert statements

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Ensure tests run reliably in parallel without shared state conflicts

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Utilize Playwright fixtures (test, page, expect) consistently

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.spec.ts : Maintain test isolation between test cases

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
📚 Learning: 2025-09-16T22:08:51.490Z
Learnt from: CR
PR: RocketChat/Rocket.Chat#0
File: .cursor/rules/playwright.mdc:0-0
Timestamp: 2025-09-16T22:08:51.490Z
Learning: Applies to apps/meteor/tests/e2e/**/*.{ts,tsx,js,jsx} : Avoid code comments in the implementation

Applied to files:

  • apps/meteor/tests/e2e/omnichannel/omnichannel-units.spec.ts
🧬 Code graph analysis (1)
apps/meteor/client/components/Contextualbar/ContextualbarDialog.tsx (1)
apps/meteor/tests/e2e/page-objects/omnichannel-units.ts (1)
  • contextualBar (72-74)
🔇 Additional comments (1)
apps/meteor/client/components/Contextualbar/ContextualbarDialog.tsx (1)

42-44: Confirm resizer handle orientation; pass position if supported

If ContextualbarResizable uses bar position (left/right) to place the handle, consider passing it through. Otherwise, ignore.

Example (only if the component supports it):

<ContextualbarResizable defaultWidth={contextualBar} position={position}>
  <Contextualbar ref={callbackRef} width='100%' position={position} {...dialogProps} {...props} />
</ContextualbarResizable>

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/Filters/AppLogsFilterContextualBar.stories.tsx (1)

37-37: Story container fidelity: optionally constrain width to mirror a contextual bar

To better simulate the contextual bar environment in Storybook, consider constraining width and hiding overflow.

Apply this diff:

-					<Box height='100vh'> {fn()}</Box>
+					<Box height='100vh' width='380px' minWidth='320px' maxWidth='600px' overflow='hidden'>
+						{fn()}
+					</Box>
apps/meteor/client/views/room/contextualBar/RoomMembers/InviteUsers/InviteUsers.stories.tsx (1)

18-28: Decorator order: place mockAppRoot first; also consider width constraints

Keeping mockAppRoot as the outermost decorator aligns with other stories and ensures providers wrap the container. While here, optionally constrain Box width for realism.

Apply this diff:

 export default {
@@
-  decorators: [
-    (fn) => <Box height='100vh'>{fn()}</Box>,
-    mockAppRoot()
-      .withTranslations('en', 'core', {
+  decorators: [
+    mockAppRoot()
+      .withTranslations('en', 'core', {
         'Edit_Invite': 'Edit invite',
         'Invite_Users': 'Invite users',
         'Invite_Link': 'Invite link',
         'Expiration_(Days)': 'Expiration (Days)',
         'Max_number_of_uses': 'Max number of uses',
       })
       .buildStoryDecorator(),
+    (fn) => <Box height='100vh' width='380px' minWidth='320px' maxWidth='600px' overflow='hidden'>{fn()}</Box>,
   ],
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 51712fe and 05b485a.

⛔ Files ignored due to path filters (3)
  • apps/meteor/client/omnichannel/cannedResponses/contextualBar/CannedResponse/__snapshots__/CannedResponseList.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/Filters/__snapshots__/AppLogsFilterContextualBar.spec.tsx.snap is excluded by !**/*.snap
  • apps/meteor/client/views/room/contextualBar/RoomMembers/InviteUsers/__snapshots__/InviteUsers.spec.tsx.snap is excluded by !**/*.snap
📒 Files selected for processing (3)
  • apps/meteor/client/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.stories.tsx (1 hunks)
  • apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/Filters/AppLogsFilterContextualBar.stories.tsx (2 hunks)
  • apps/meteor/client/views/room/contextualBar/RoomMembers/InviteUsers/InviteUsers.stories.tsx (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: 🔨 Test Storybook / Test Storybook
  • GitHub Check: 🔎 Code Check / TypeScript
  • GitHub Check: 🔎 Code Check / Code Lint
  • GitHub Check: 🔨 Test Unit / Unit Tests
  • GitHub Check: 📦 Meteor Build - coverage
  • GitHub Check: CodeQL-Build
  • GitHub Check: CodeQL-Build
🔇 Additional comments (3)
apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/Filters/AppLogsFilterContextualBar.stories.tsx (1)

1-1: Box import swap looks good

Consistent with the PR’s direction of decoupling stories from Contextualbar.

apps/meteor/client/views/room/contextualBar/RoomMembers/InviteUsers/InviteUsers.stories.tsx (1)

1-1: Box import addition — OK

Matches the move away from Contextualbar wrappers in stories.

apps/meteor/client/omnichannel/cannedResponses/contextualBar/CannedResponse/CannedResponseList.stories.tsx (1)

78-78: Replace all Contextualbar decorators in Storybook stories
All stories importing Contextualbar and wrapping content in <Contextualbar height='100vh'>…</Contextualbar> must use the Box-based decorator with width constraints instead:

-decorators: [(fn) => <Contextualbar height='100vh'>{fn()}</Contextualbar>];
+decorators: [(fn) => (
+  <Box height='100vh' width='380px' minWidth='320px' maxWidth='600px' overflow='hidden'>
+    {fn()}
+  </Box>
+)];

Apply this change across all affected .stories.tsx files.

Likely an incorrect or invalid review comment.

Copy link
Member

@dougfabris dougfabris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@kodiakhq kodiakhq bot merged commit f6eaabb into release-8.0.0 Sep 25, 2025
38 of 40 checks passed
@kodiakhq kodiakhq bot deleted the resizeable-contextualbars branch September 25, 2025 15:55
ggazzo pushed a commit that referenced this pull request Sep 30, 2025
ggazzo pushed a commit that referenced this pull request Oct 3, 2025
ggazzo pushed a commit that referenced this pull request Oct 31, 2025
ggazzo pushed a commit that referenced this pull request Oct 31, 2025
ggazzo pushed a commit that referenced this pull request Oct 31, 2025
ggazzo pushed a commit that referenced this pull request Oct 31, 2025
ggazzo pushed a commit that referenced this pull request Oct 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stat: QA assured Means it has been tested and approved by a company insider stat: ready to merge PR tested and approved waiting for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants