Skip to content

feat: improve mobile UI primitives - #373

Closed
cahangeorge wants to merge 1 commit into
AmintaCCCP:mainfrom
cahangeorge:feat/mobile-ui-primitives
Closed

cahangeorge wants to merge 1 commit into
AmintaCCCP:mainfrom
cahangeorge:feat/mobile-ui-primitives

Conversation

@cahangeorge

Copy link
Copy Markdown

Summary

  • make shared buttons, menu items, selects, and steppers touch-safe on narrow screens
  • keep form controls at mobile-safe text sizing while preserving compact desktop styles
  • constrain dialogs, alert dialogs, sheets, dropdowns, and selects to dynamic viewports and safe areas
  • add focused regression coverage for the shared mobile primitives

Verification

  • npm run check:boundaries
  • npm run lint
  • npm run typecheck
  • npm run test:run (103 Vitest files / 1023 tests; Electron MCP 24; Electron plugins 91; versioning 10)
  • npm run build (legacy entry 998.58 KiB, limit 3000 KiB)
  • git diff --check

Scope checklist

  • Runtime/persistence/UI changes described. If this PR changes runtime behavior,
    persisted data (Store keys, version, partialize, migrate, merge — see
    src/store/persistence/options.ts and ADR 0001), or user-visible UI, describe the
    change and its migration impact below. Architecture-enforcement PRs should have none.
  • No new import of a business service directly into src/components/**
    (the ESLint no-restricted-imports / no-restricted-syntax rules and
    check:boundaries enforce this, including dynamic import(); if a component
    genuinely needs a service, add a hook in src/features/*/hooks/**).
  • No new import of React/JSX/the Store/any service into src/features/*/application/**
    (static or dynamic).
  • No inline eslint-disable to bypass the boundary rules — fix the layering instead.

Runtime / persistence / UI changes (if any)

Shared controls now use 44-pixel mobile targets and 16-pixel form text below the sm
breakpoint, then return to the existing compact desktop dimensions. Overlay primitives
use dynamic viewport bounds, scrolling, and safe-area-aware spacing. There are no data,
Store, or persistence changes and no migration is required.

Notes for reviewers / CodeRabbit

This PR intentionally stays at the shared primitive layer; view-specific responsive
changes are kept out of scope so the behavior can be reviewed independently.

@coderabbitai

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@AmintaCCCP

Copy link
Copy Markdown
Owner

Hi @cahangeorge,

感谢这次贡献。这个 PR 和同一批的 #372–#379 先关闭,暂不继续审。

原因:

  1. 这是未征求的移动端大改。本项目主战场是 Electron 桌面端,不是手机 App。没有对应 issue,也没有事先对齐方向。
  2. 约两小时内连开 9 个 Draft,评审成本过高。请一次只提一个、已对齐的改动。
  3. 多数 PR 基线停在 38714a0(i18n feat: i18n 多语言支持——扩展至 10 种界面语言 #368 之前),feat: add responsive category navigation #372 / feat: improve mobile repository browsing #375–feat: improve mobile settings and QA #379 已与 main 冲突。请基于最新 main(当前 217c134)开分支。

#371 里 defaultCategoryOverrides 的同步缺口如果以后要修,请单独、很小地基于最新 main 再提;mobile 这条线目前不接。

谢谢。

@AmintaCCCP AmintaCCCP closed this Sep 20, 2026
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.

2 participants