CCExtractor / CCExtractor/taskwarrior-flutter

[Refactor] Complete GetX Migration — Remove All Remaining `setState` and `GetBuilder` Usage

オープン
#615 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Dart
スター
244
フォーク
179
平均マージ
12時間 42分
マージ済み PR(30日)
2

説明

### Summary

Several files in the codebase still use Flutter's native `setState` / `StatefulBuilder` for local UI state, and one instance of `GetBuilder` remains in the app. These are inconsistent with the project's GetX-first architecture already established in `HomeController`, `DetailRouteController`, etc.

### Problem

| File | Issue |
|------|-------|
| `tags_widget.dart` | `TagsRoute` is a `StatefulWidget` with 3 `setState` calls — no corresponding GetX controller exists |
| `date_picker_input.dart` | 3 `setState` calls managing `currentIndex` and `_selectedDates` list |
| `profile_view.dart` | `StatefulBuilder` wrapping dialog content with 2 `setState` calls for `selectedMode` |
| `manage_task_server_page_body.dart` | 1 `setState` inside modal + 1 `GetBuilder` |
| `add_task_bottom_sheet_new.dart` | 4 orphaned `homeController.update()` calls — NOPs since no `GetBuilder` listens |
| `tasks_builder.dart` | Calls private `storageWidget._refreshTasks()` — brittle and bypasses the public API |

### Expected Behavior

All UI state should be managed via `.obs` reactive variables and `Obx` widgets, consistent with the existing GetX architecture. No `setState`, `StatefulBuilder`, or orphaned `update()` calls should remain in the app code.

### Steps to Reproduce

Run `grep -r "setState" lib/app/` — returns active hits in the files above.

### Labels

`refactor` `getx` `state-management` `good first issue`

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Issue に記載されているファイルから始めます: tags_widget.dart、date_picker_input.dart、profile_view.dart、manage_task_server_page_body.dart、add_task_bottom_sheet_new.dart、tasks_builder.dart。grep -r "setState" lib/app/ を実行し、HomeController と DetailRouteController にある既存の GetX パターンを確認します。記載されたネイティブな状態管理呼び出し、孤立した update() 呼び出し、非公開の _refreshTasks() の使用が削除され、アクティブなヒットが残っていなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
dart, flutter
領域
mobile
issue の種類
リファクタリング
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。