Repository navigation
feat: 編み図で使っている色の一覧から色を選べるようにする - #115
Conversation
「色」を押すと記号の色のダイアログを開き、今の編み図で使っている色を 記号の多い順に最大24色並べる。押すとその色で描画モードに戻る。 一覧にない色はダイアログ内の色選択で選ぶ。色はダイアログを開いている 間だけ、盤面が変わったときに数え直す。 Closes #90 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
K0mork
left a comment
There was a problem hiding this comment.
レビュー結果(マージ保留)
CI
ci-gate を含め、PRのチェックはすべて成功しました(web、ios_web、ios(iPhone 17・iPad (A16))、app_update(両機種)、release_archive、app_store_docs、CodeQL)。main は #114 の分だけ進んでいますが、触っているファイルは別で、コンフリクトはありません(mergeStateStatus は CLEAN)。
コード
問題は見つかりませんでした。
collectUsedColorsは、セル配列を1回なめるだけです。空のマス(0)を飛ばし、同じ色が続く区間ではMapを引きません。セルの値は記号の起点にだけ入る(記号IDは1から始まる)ので、2目・3目の記号を1個と数えるのも盤面モデルと合っています。同数の色は、Mapに入れた順と安定ソートによって、見つかった順に並びます。- 色を数え直すのはダイアログを開いている間だけで、
revisionが変わったときに限ります。Undo/Redoや貼り付けで盤面が変わってもrevision経由で数え直されます。盤面モデルはReact/DOMから独立したままで、セルをDOMにもしていません。 selectColorはselectStitchと同じく、描画モードへ戻して選択範囲を解除します。従来のaria-label="記号の色"の入力を参照していたテストやSwiftのコードは、ほかにありません。- Vitest(空の盤面・色が多い盤面・1000×1000)、EditorViewのテスト、Playwright(スマホ幅・デスクトップ幅で、一覧から選んで描き、保存されたセルの色まで確かめる)がそろっています。
docs/dev-log/2026-10-06-used-color-palette.mdは書式どおりで、PR本文の検証内容と合っています。 - 差分、PR本文、コミットメッセージに機密情報はありません。
Closes #90とenhancementラベルもあります。
マージを保留した理由
Issue #90 の完了条件に「iPhoneとiPadで表示を確かめ、スクリーンショットをPRに付ける」があります。PR本文にあるとおり、まだ添付されていません。このPRは Closes #90 でIssueを閉じます。AGENTS.md には、一部しか終わっていないIssueを閉じないとあります。そのため、このままではマージしません。
手元で撮ってあるiPhone 16・iPad(第10世代)のSimulatorとブラウザ各幅の画像は、レビュー担当も見ました。表示に問題はありません。これらをこのPRに貼れば、マージできる状態です(コードの修正は不要です)。
軽微な点(対応は任意)
ColorPickerのuseMemoは、本体で使っていないrevisionを依存配列に入れています。数え直しのきっかけとして意図したもので、コメントもあるので、このままで構いません。
デプロイ確認
途中の 本番(https://knittingeditor.com/)での確認Playwright で、Android Chrome 相当(Pixel 7)、iPhone Safari 相当(iPhone 14、WebKit)、デスクトップ幅(1440×900)の Chromium と WebKit の4通りで確かめました。どれも成功し、ページのエラーは出ませんでした。
|
変更内容
aria-pressed)。<input type="color">)で選びます。collectUsedColorsをpackages/editor-core/model/usedColors.tsに置き、Web版とiOS版で共有します。/guide/)の「編み目記号と色を選ぶ」に一覧の説明を1文足し、ios/docs/WEB_SYNC.mdの共通ファイル表にui/ColorPicker.tsxを足しました。決めたこと
Issueで細かく決まっていなかった点です。レビューで直せます。
useMemoで数え、盤面が変わったとき(revision)だけ数え直します。なぞり描き中は数えません。1000×1000の全面でもセル配列を1回なめるだけで、同じ色が続く区間はMapを引きません。実行した確認
npm run typecheck: 成功npm test: 成功(25ファイル160件)npm run build: 成功npm run check:dist: 成功。dist/CNAMEがknittingeditor.comであること、dist/guide/index.htmlに追記が入ることも確認npm run test:e2e: 成功(97件成功、iPhone Safari専用の2件は設定どおりスキップ)。追加したテストはchromium-mobile・webkit-mobile・chromium-desktopの3プロジェクトで実行ios/Webでtsc -p tsconfig.app.json --noEmitとvitest run --config vite.config.ts(3ファイル8件)が成功xcodegen generateとSimulator向けDebugビルドが成功。iPhone 16(iOS 18.2)とiPad(第10世代、iOS 18.2)のSimulatorで、ダイアログの表示と、色見本を押すと閉じて色が選ばれることを目で確認スクリーンショット
スマホ幅(iPhone 14・Pixel 7相当)、iPad、デスクトップ幅のブラウザと、iPhone 16・iPad(第10世代)のSimulatorで撮って手元で確認済みです。CLIから画像を添付する手段が無いため、添付は未了です。必要なら手元のファイルをこのPRへ貼ります。
関連
Closes #90
🤖 Generated with Claude Code