Skip to content

Polish iOS git progress overlay with glass effects#4387

Merged
juliusmarminge merged 2 commits into
mainfrom
t3code/fix-ios-git-toast-glass
Jul 23, 2026
Merged

Polish iOS git progress overlay with glass effects#4387
juliusmarminge merged 2 commits into
mainfrom
t3code/fix-ios-git-toast-glass

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Jul 23, 2026

Copy link
Copy Markdown
Member

Summary

  • Add ref forwarding to GlassSurface for animated glass overlays.
  • Use iOS glass effects and layout transitions for the git action progress overlay.
  • Preserve the existing bordered fallback styling on unsupported platforms and APIs.

Testing

  • Not run (not provided).

Note

Low Risk
Presentation-only changes to a progress toast; no git, auth, or data-path changes.

Overview
Git action progress overlay gets an iOS liquid-glass treatment when @callstack/liquid-glass is supported, while other platforms keep the existing card/error styling.

On supported devices, OverlayContent wraps shared label/icon UI in an animated LiquidGlassView with theme-driven tint and border (--color-glass-tint, --color-header-border), ~26px continuous corners, and a short inner fade-in. The outer overlay skips its fade-in on glass so the effect reads cleanly.

Both glass and fallback paths use a 220ms LinearTransition on layout so the banner resizes smoothly as phase text changes. The non-glass branch still uses phase-based red/card classes but matches the updated corner radius.

Reviewed by Cursor Bugbot for commit cb8041b. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Polish iOS git progress overlay with LiquidGlass effects

  • On devices supporting LiquidGlass (iOS 26+), OverlayContent in GitActionProgressOverlay.tsx renders with an interactive glass effect, theme-derived tint/border, and a short delayed FadeIn on content.
  • On non-supporting devices, the overlay uses a 26px continuous border radius and switches from a static View to an Animated.View.
  • Layout changes within the overlay now animate over 220ms using LinearTransition.
  • The outer container skips FadeIn on entry when LiquidGlass is supported; otherwise retains the 200ms fade.

Macroscope summarized cb8041b.

- Forward refs through GlassSurface for animated glass overlays
- Add iOS glass styling with an animated fallback for unsupported platforms
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. 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

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 781a01f3-bbe5-4e44-af13-2d1ce22d99f7

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/fix-ios-git-toast-glass

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

@github-actions github-actions Bot added size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Jul 23, 2026
>
<View className="flex-row items-center gap-2.5 px-3.5 py-3">{content}</View>
</AnimatedGlassSurface>
);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Error chrome missing on glass path

Medium Severity

After the glass branch was added, progress.phase === "error" no longer affects the overlay shell on iOS when the glass API is available. The red background and border from bgClass apply only on the fallback Animated.View, so failed git actions on that path lose the full-card error treatment they had before this change.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit faf65cb. Configure here.

@macroscopeapp

macroscopeapp Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

An unresolved review comment identifies a bug where error state styling (red background/border) is missing on the iOS glass effect path, causing error feedback to be lost for those users. This should be addressed before merging.

You can customize Macroscope's approvability policy. Learn more.

- Use Liquid Glass for the git action progress overlay
- Avoid forwarding refs through GlassSurface on unsupported glass APIs
@juliusmarminge
juliusmarminge merged commit ce467da into main Jul 23, 2026
16 checks passed
@juliusmarminge
juliusmarminge deleted the t3code/fix-ios-git-toast-glass branch July 23, 2026 22:39

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.

There are 3 total unresolved issues (including 1 from previous review).

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit cb8041b. Configure here.

{content}
</Animated.View>
</AnimatedLiquidGlassView>
</Animated.View>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Expo glass fallback removed

Medium Severity

The overlay now branches only on isLiquidGlassSupported, so iOS devices where expo-glass-effect is available but liquid glass is not always get the bordered fallback instead of native glass. The prior AnimatedGlassSurface path used the same expo gate as GlassSurface and could still show glass above the thread header.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cb8041b. Configure here.

colorScheme={isDarkMode ? "dark" : "light"}
effect="regular"
interactive
layout={OVERLAY_LAYOUT_TRANSITION}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Duplicate layout on liquid glass

Medium Severity

This overlay is the only callsite that wraps LiquidGlassView in Animated.createAnimatedComponent and applies layout={OVERLAY_LAYOUT_TRANSITION} on both the outer Animated.View and AnimatedLiquidGlassView. ComposerSurface animates only the wrapper and keeps LiquidGlassView non-animated.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cb8041b. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant