Skip to content

feat(seer): Redesign IconSeer loading animation for ThinkingBlock - #124300

Merged
natemoo-re merged 6 commits into
masterfrom
nm/seer/thinking-icon-v2
Sep 14, 2026
Merged

natemoo-re merged 6 commits into
masterfrom
nm/seer/thinking-icon-v2

Conversation

@natemoo-re

@natemoo-re natemoo-re commented Sep 14, 2026

Copy link
Copy Markdown
Member

Re-land of #123256 (reverted in 92499d2) with a fix for the black fill regression on non-animated <IconSeer /> instances.

The original PR called useId(), useTheme(), and useIconDefaults() unconditionally at the top of IconSeer — even for static/idle renders that didn't need them. This caused the eye region of non-animated Seer icons to fill black.

Fix: the pyramid spin loading animation is now extracted into a private SeerLoadingSpinner sub-component, so those hooks only mount when animation="loading" is active. Static and idle icons have the exact same code path as master.

Changes:

  • Renames IconSeer animation props from 'loading' | 'waiting' to 'idle' | 'loading'
  • idle is the rolling-eye, used by background callers (checkout upsell, AI setup, Seer Explorer, investigations)
  • loading is the faux-3D pyramid spin for ThinkingBlock's active thinking state
pyramid with an eye spinning

@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Sep 14, 2026
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Story previews

Preview the stories changed in this PR on the Vercel deployment:

Preview deployment: https://sentry-crzmfqbox.sentry.dev

Comment thread static/app/icons/iconSeer.tsx
- Renames IconSeer animation props from `'loading' | 'waiting'` to
  `'idle' | 'loading'`
- `idle` is the rolling-eye design, used by background callers
- `loading` is a faux-3D pyramid spin for ThinkingBlock's active
  thinking state
- Extracts loading spinner into SeerLoadingSpinner sub-component so
  useId/useTheme/useIconDefaults hooks only run when loading is active,
  fixing black fill on non-animated IconSeer instances

Co-authored-by: Claude <noreply@anthropic.com>
@natemoo-re
natemoo-re force-pushed the nm/seer/thinking-icon-v2 branch from d9a5dca to fdb2451 Compare September 14, 2026 21:20
@ryan953

ryan953 commented Sep 14, 2026

Copy link
Copy Markdown
Member

i still see waiting in the icons stories. no animation on it, idk if TS will like it or not once it's done
but the animated loading looks good there.

Comment thread static/app/views/seerExplorer/components/askSeerButton.tsx Outdated
Safari claims CSS `d` property support but can't interpolate it in
@Keyframes, breaking the loading sweep lines. Fall back to the idle
eye-roll animation when CSS d animation isn't supported.
Comment thread static/app/icons/iconSeer.tsx Outdated
Address review feedback: AskSeerButton now uses 'loading' animation
when thinking instead of 'idle'. Update stories from stale 'waiting'
to 'idle'.
@natemoo-re
natemoo-re enabled auto-merge (squash) September 14, 2026 21:46
@natemoo-re
natemoo-re merged commit 6309660 into master Sep 14, 2026
79 checks passed
@natemoo-re
natemoo-re deleted the nm/seer/thinking-icon-v2 branch September 14, 2026 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants