1. 17 Aug, 2025 8 commits
    • feat: unify skeleton loading behavior for Midjourney logs actions · 519c26d5
      • Introduced `useMinimumLoadingTime` to `MjLogsActions.jsx`, guaranteeing a minimum skeleton display duration for smoother UX
      • Refactored loading state UI to use wrapped `Skeleton` with placeholder, matching the implementation in `UsageLogsActions.jsx`
      • Kept existing banner, admin checks, and compact-mode toggle intact while streamlining the code
      • Ensures consistent loading indicators across usage- and MJ-log tables
      t0ng7u committed
    • 🎨 refactor: Setup Wizard UI & Clean Up Redundant Code · ed3b11a3
      Summary of changes
      1. SetupWizard.jsx
         • Center card (`min-h-screen flex items-center justify-center`) and remove top margin.
         • Merge step indicator/content into single card; added `Divider` separator.
         • Added sweep-shine animation to current step title via existing `shine-text` class.
         • Simplified imports (removed Avatar / Typography) and deleted unused modal state.
      
      2. Step components
         • Stripped outer `Card` and header sections from `DatabaseStep.jsx`, `AdminStep.jsx`, `UsageModeStep.jsx`, `CompleteStep.jsx` to fit single-card layout.
         • Removed unused imports and props.
      
      3. Components cleanup
         • Deleted obsolete files:
           - `components/setup/components/SetupSteps.jsx`
           - `components/setup/components/modals/UsageModeInfoModal.jsx`
         • Updated `setup/index.jsx` exports accordingly.
      
      4. Styling
         • Ensured global sweep-shine effect already present in `index.css` is reused for step titles.
      
      5. i18n
         • Pruned unused translation keys related to removed components from `i18n/locales/en.json`.
      
      6. Miscellaneous
         • Removed redundant Avatar/Icon imports from multiple files.
         • All linter checks pass with no new warnings.
      
      This commit consolidates the initialization flow into a cleaner, centered single-card wizard, adds visual polish, and reduces dead code for easier maintenance.
      t0ng7u committed
    • style(Account UX): resilient binding layout, copyable popovers, pastel header,… · 7411c249
       style(Account UX): resilient binding layout, copyable popovers, pastel header, and custom pay colors
      
      - AccountManagement.js
        - Prevent action button from shifting when account IDs are long by adding gap, min-w-0, and flex-shrink-0; keep buttons in a fixed position.
        - Add copyable Popover for account identifiers (email/GitHub/OIDC/Telegram/LinuxDO) using Typography.Paragraph with copyable; reveal full text on hover.
        - Ensure ellipsis works by rendering the popover trigger as `block max-w-full truncate`.
        - Import Popover and wire up `renderAccountInfo` across all binding rows.
      
      - UserInfoHeader.js
        - Apply unified `with-pastel-balls` background to match PricingVendorIntro.
        - Remove legacy absolute-positioned circles and top gradient bar to avoid visual overlap.
      
      - RechargeCard.jsx
        - Colorize non-Alipay/WeChat/Stripe payment icons using backend `pay_methods[].color`; fallback to `var(--semi-color-text-2)`.
        - Add `showClear` to the redemption code input for quicker clearing.
      
      Notes:
      - No linter errors introduced.
      - i18n strings and behavior remain unchanged except for improved UX and visual consistency.
      t0ng7u committed
  2. 16 Aug, 2025 23 commits
  3. 15 Aug, 2025 9 commits