Skip to content

feat(ios): split hosts take a portrait split behavior and display mode (t3.44) - #6

Merged
juliusmarminge merged 1 commit into
t3/mainfrom
t3/split-rotation-display-mode
Oct 25, 2026
Merged

juliusmarminge merged 1 commit into
t3/mainfrom
t3/split-rotation-display-mode

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

A split that floats its sidebar in portrait (T3 Code on the unfolded iPhone Duo) only learned about a rotation after JS saw the new size. UIKit rotated with the landscape configuration, then JS switched to the overlay and the sidebar slid out in a second animation.

Change

Split.Host takes portraitPreferredSplitBehavior and portraitPreferredDisplayMode. While the split is taller than it is wide, they override preferredSplitBehavior and preferredDisplayMode; automatic (the default) keeps the base value. RNSSplitHostController applies the configuration for the incoming size in viewWillTransitionToSize: before calling super, so UIKit lays the columns out for the new size inside the rotation animation. Regular prop updates pick the value for the current bounds.

Released as 5.0.0-t3.44 (tag t3-v5.0.0-t3.44, branch t3/release-t3.44).

Claude Opus 5.5 in Claude Code, running in T3 Code.

🤖 Generated with Claude Code

Note

Add portrait-specific split behavior and display mode to iOS SplitHost

  • Adds new optional props preferredSplitBehavior and preferredDisplayMode (portrait variants) that apply only when the SplitHost is taller than it is wide; both default to automatic, which falls back to the general preferences.
  • RNSSplitHostController.viewWillTransitionToSize now applies the destination size's split behavior and display mode before UIKit lays out the transition.
  • General appearance and display-mode updates in RNSSplitAppearanceApplicator.mm now select values from the loaded controller's current bounds instead of always using the general provider values.
  • Behavioral Change: updateAppearanceIfNeeded and updateSplitViewDisplayModeFor use size-dependent selectors, so existing SplitHosts may see different behavior/display mode in portrait if portrait values were previously unconfigured.

Macroscope summarized 110d8cd.

A split that floats its sidebar in portrait used to learn about a rotation
only after JS saw the new size, so the sidebar changed in a second animation
after the rotation. The host now picks the portrait or default configuration
in viewWillTransitionToSize, so the column change animates with the rotation.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@coderabbitai

coderabbitai Bot commented Oct 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Team
  • Run ID: b4894e5a-ad47-48d2-b6d1-42e33ff630e1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@juliusmarminge
juliusmarminge merged commit 17ec4fd into t3/main Oct 25, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant