Skip to content

Phase 0-3: 旧UIのシフト申請モーダル(デッドコード)を削除 - #71

Merged
champierre merged 1 commit into
mainfrom
feature/phase0-deadcode
Jun 11, 2026
Merged

Phase 0-3: 旧UIのシフト申請モーダル(デッドコード)を削除#71
champierre merged 1 commit into
mainfrom
feature/phase0-deadcode

Conversation

@champierre

Copy link
Copy Markdown
Contributor

リファクタリング計画 Phase 0(リポジトリ衛生)の作業項目 0-3 です。純粋なデッドコード削除で、219 行の削除のみ・アプリの挙動には影響しません。

背景

シフト申請 UI は新 UI(日付詳細モーダル openDateDetailModal / submitDateDetailShiftRequest)に置き換え済みですが、旧 UI のシフト申請モーダル一式がコードに残っていました。旧モーダルを表示する唯一の関数 openShiftRequestModalどこからも呼ばれていないため、このモーダルは恒久的に表示されないデッドコードです。

削除対象(全ファイル grep で参照ゼロを確認)

ファイル 削除内容
index.html #shiftRequestModal モーダルブロック(18 行)
js/modules/shiftRequest.js openShiftRequestModal / updateTimeSlotCapacity / generateTimeSlots / closeShiftRequestModal / submitShiftRequest の旧 UI 5 関数(190 行)
js/modules/state.js 上記削除で孤立した currentShiftRequestDate のフィールド・getter・setter・reset(setter は元々呼び出し元なし)
test/setup.js 対応するグローバルモック 1 行

補足: 旧 4 関数(close/submit 等)は HTML の onclick から参照されていましたが、その HTML 自体が表示されないモーダルのものです。さらに closeShiftRequestModal/submitShiftRequest は HTML に存在しない #shiftRemarks 要素を参照しており、仮に実行されれば null 参照で落ちる状態でした。

検証

  • 全 366 テスト green
  • npm run build 成功
  • サーバーを起動し、index.htmlshiftRequest.jsstate.js が HTTP 200 で配信されることを確認
  • 配信 HTML から shiftRequestModal が消え(0 件)、稼働中の dateDetailModal(1 件)が残ることを確認

当初計画から外したもの(grep で実態確認した結果)

  • CalendarService.addShiftToCalendar / deleteShiftFromCalendar: コメントに「後方互換性のために残されています」とあり削除候補でしたが、routes/shifts.tsroutes/calendar.ts から実際に呼ばれておりデッドコードではありません。整理は Phase 2(CalendarService 分割)に回します。
  • display:none のタブボタン群: 全 9 タブが初期非表示で updateTabVisibility() によりロール別に表示される条件表示要素であり、デッドコードではないため対象外。
  • 旧 UI に紐づく CSS#timeSlotContainer, .time-slot*, .remarks-*): 今回の削除で孤立しましたが、埋め込み CSS の整理はスクリーンショット検証を伴う Phase 4 の担当範囲のため据え置きます(死んだ CSS はランタイムに影響しません)。

🤖 Generated with Claude Code

新UI(日付詳細モーダル/openDateDetailModal)に置き換え済みで、開く導線が
存在しない旧シフト申請モーダル一式を削除。

削除対象(全ファイルgrepで参照ゼロを確認):
- index.html: #shiftRequestModal モーダルブロック(表示する関数が呼ばれず
  恒久的に非表示)
- shiftRequest.js: openShiftRequestModal / updateTimeSlotCapacity /
  generateTimeSlots / closeShiftRequestModal / submitShiftRequest の旧UI5関数
  (openShiftRequestModal はどこからも呼ばれず、残り4関数もこのモーダル
  経由でのみ到達。さらに存在しない #shiftRemarks を参照していた)
- state.js: 上記削除で孤立した currentShiftRequestDate のフィールド/
  getter/setter/reset(setterは元々呼び出し元なし)
- test/setup.js: 対応するグローバルモック行

検証: 全366テスト green、ビルド成功、サーバー起動して index.html・
shiftRequest.js・state.js が200で配信されること、配信HTMLから
shiftRequestModal が消え dateDetailModal が残ることを確認。

注: 旧UIに紐づく CSS(#timeSlotContainer, .time-slot* 等)も孤立したが、
CSS整理はスクリーンショット検証を伴う Phase 4 の担当範囲のため本PRでは
据え置く。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@champierre
champierre merged commit 8069ba1 into main Jun 11, 2026
6 checks passed
@champierre
champierre deleted the feature/phase0-deadcode branch June 11, 2026 15:45
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.

1 participant