Yuki Takei 7 месяцев назад
Родитель
Сommit
da31fa47ec

BIN
.serena/cache/typescript/document_symbols_cache_v23-06-25.pkl


+ 26 - 30
.serena/memories/apps-app-jotai-migration-progress.md

@@ -1,4 +1,4 @@
-# Jotai 移行進捗(更新済み
+# Jotai 移行進捗(2025-09-05 更新)
 
 ## 実装状況
 
@@ -34,6 +34,17 @@
 - ✅ `useHydratePageAtoms`: ページ用
 - ✅ `useHydrateGlobalAtoms`: グローバル用
 
+#### 新規移行完了(2025-09-05)
+- ✅ **`usePageControlsX`**: ページコントロールのX座標状態(states/ui/page.ts)
+  - 実装場所: `states/ui/page.ts`
+  - 読み取り専用hook: `usePageControlsX()`
+  - 書き込み専用hook: `useSetPageControlsX()`
+  - 使用箇所を完全移行(PageControls、PageHeader、PagePathNavSticky)
+- ✅ **`useSelectedGrant`**: エディターでの選択中grant状態(states/ui/editor/)
+  - 実装場所: `states/ui/editor/atoms.ts`, `hooks.ts`
+  - 使用箇所を完全移行(GrantSelector、SavePageControls、PageEditor)
+  - デフォルト値: `{ grant: PageGrant.GRANT_PUBLIC }`
+
 ### ✅ 型チェック修正(完了済み)
 - ✅ 全てのTS2488エラー(配列分割代入の誤用)を修正済み
 - ✅ `pnpm run lint:typecheck` が成功することを確認済み
@@ -42,10 +53,16 @@
   - `ShareLink.tsx`: `const currentPageId = useCurrentPageId()`
   - `LinkEditModal.tsx`: `const currentPath = useCurrentPagePath()`
 
+### ✅ 品質確認(2025-09-05)
+- ✅ TypeScript型チェック通過
+- ✅ アプリケーションビルド成功
+- ✅ Socket.IO型注釈の修正対応済み
+
 **実装済みファイル:**
 - `states/ui/sidebar/`: サイドバー状態の完全実装
 - `states/ui/device.ts`: デバイス状態
-- `states/ui/editor/`: エディター状態
+- `states/ui/editor/`: エディター状態(useSelectedGrant追加)
+- `states/ui/page.ts`: ページUI状態(usePageControlsX新規追加) ← **NEW**
 - `states/page/`: ページ関連状態の完全実装
 - `states/server-configurations/`: サーバー設定状態
 - `states/global/`: グローバル状態
@@ -53,29 +70,7 @@
 
 ## 🚧 次の実装ステップ(優先度順)
 
-### **優先度 1: 残りのUI状態(stores/ui.tsx内)**
-
-#### 1. `usePageControlsX` の移行 ← **次の優先タスク**
-- **ファイル**: `/workspace/growi/apps/app/src/stores/ui.tsx:149`
-- **実装先**: `states/ui/page.ts`(新規作成)
-- **使用箇所**: 
-  - `PagePathNavSticky.tsx`
-  - `PageControls.tsx`
-  - `PageHeader.tsx`
-- **特徴**: 一時的な状態(永続化不要)
-- **実装方針**: シンプルな number atom として実装
-
-#### 2. `useSelectedGrant` の移行
-- **ファイル**: `/workspace/growi/apps/app/src/stores/ui.tsx:153`
-- **実装先**: `states/ui/editor.ts`(既存ファイルに追加)
-- **使用箇所**: 
-  - `SavePageControls.tsx`
-  - `GrantSelector.tsx`
-  - `PageEditor.tsx`
-- **特徴**: エディター内の一時的な状態
-- **型**: `IPageSelectedGrant`
-
-### **優先度 2: 他のUI関連フック(判定・検討が必要)**
+### **優先度 1: 他のUI関連フック(判定・検討が必要)**
 
 以下のフックはSWR継続使用を検討(データフェッチングやcomputed値のため):
 - `useCurrentPageTocNode`: ページ固有の目次データ
@@ -85,9 +80,9 @@
 - `useCommentEditorDirtyMap`: 複雑なMap操作
 - `useIsAbleToShow*`: computed boolean値群
 
-### **優先度 3: モーダル状態の一括移行**
+### **優先度 2: モーダル状態の一括移行**
 
-#### 3. 全モーダル状態の移行
+#### 全モーダル状態の移行 ← **次の主要タスク**
 - **新規ファイル**: `states/ui/modal.ts`
 - **対象モーダル(全18種類)**:
   - `usePageCreateModal`, `useGrantedGroupsInheritanceSelectModal`
@@ -103,7 +98,7 @@
 
 ### **最終フェーズ: クリーンアップ**
 
-#### 4. 不要ファイルの削除とリファクタリング
+#### 不要ファイルの削除とリファクタリング
 - `stores/ui.tsx` の段階的縮小・最終削除
 - `stores/modal.tsx` の完全削除
 - 残存する SWR ベースの状態の最終判定
@@ -111,13 +106,14 @@
 
 ## 📊 進捗サマリー
 
-- **完了**: 主要なUI状態 + ページ関連状態 + SSRハイドレーション + 型チェック修正
-- **次のタスク**: `usePageControlsX`と`useSelectedGrant`の移行
+- **完了**: 主要なUI状態 + ページ関連状態 + SSRハイドレーション + 型チェック修正 + **新規2状態(usePageControlsX, useSelectedGrant)**
+- **次のタスク**: モーダル状態の一括移行
 - **残り**: UI関連フック数個(判定必要) + モーダル18個 + クリーンアップ
 - **推定残工数**: 1-2週間
 
 ## 🔄 更新履歴
 
+- **2025-09-05**: `usePageControlsX`と`useSelectedGrant`の移行完了、ビルド確認済み
 - **2025-09-05**: 型チェック修正完了、ページ関連状態移行済みを確認、進捗状況を実態に合わせて更新
 - **2025-07-30**: ドキュメント統合、進捗の実装状況反映
 - **2025-07-XX**: サイドバー関連の移行完了