• Will Chen's avatar
    Add delightful streaming loading animation (#2425) · e991d732
    Will Chen 提交于
    ## Summary
    - Create new `StreamingLoadingAnimation` component with two variants for
    chat streaming states
    - **Initial variant**: Flowing wave animation with 5 glowing orbs,
    staggered bounce, and gradient fills
    - **Streaming variant**: Pulsing indicator with rotating ring and
    animated "generating..." text
    - Replace inline animations in ChatMessage with the new component for
    cleaner code
    
    ## Test plan
    - Start the app and send a message to trigger chat streaming
    - Verify the initial loading animation shows glowing bouncing orbs when
    waiting for first response
    - Verify the streaming indicator shows pulsing "generating..." text
    while content is being generated
    - Check animations work correctly in both light and dark modes
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2425">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    <!-- CURSOR_SUMMARY -->
    ---
    
    > [!NOTE]
    > **Low Risk**
    > UI-only changes that replace existing loading indicators; main risk is
    visual/regression or performance issues from the new animations.
    > 
    > **Overview**
    > Adds a new `StreamingLoadingAnimation` component with two variants
    (`initial` and `streaming`) using `framer-motion`, rotating verbs, and a
    scrambled text effect.
    > 
    > Updates `ChatMessage` to replace the previous inline loading/spinner
    animations with this shared component for both the pre-response and
    in-stream indicators.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    65fac50463768be2e56810c498ca5b4c694754bd. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Add a reusable StreamingLoadingAnimation component with “initial” and
    “streaming” variants to improve chat loading feedback. Replaces ad‑hoc
    animations in ChatMessage for a cleaner, consistent UI.
    
    - **New Features**
      - StreamingLoadingAnimation component:
        - initial: glowing orb wave
        - streaming: organic equalizer bars
      - Rotating verbs with scramble text reveal; theme-aware colors
    
    - **Refactors**
    - ChatMessage now uses the new component instead of inline framer-motion
    blocks
      - Centralizes animation styles; no changes to streaming logic
    
    <sup>Written for commit 65fac50463768be2e56810c498ca5b4c694754bd.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    ---------
    Co-authored-by: 's avatarClaude Opus 4.5 <noreply@anthropic.com>
    e991d732
名称
最后提交
最后更新
.claude 正在载入提交数据...
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
makers 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxfmtrc.json 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
AGENTS.md 正在载入提交数据...
CLA.md 正在载入提交数据...
CLAUDE.md 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
lint-staged.config.js 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...
windowsSign.ts 正在载入提交数据...