目的・役割

自分のアカウント情報、作成したランキング、選択肢申請の処理(自分が作成者の場合)、下書き編集を行う中心画面。

UI 構成

要素種類説明
プロフィールヘッダVStack表示名・isPremiumバッジ・points・loginStreak
ポイント情報セクションNavigationLinkPointGuideView へ
無料作成枠表示TextfreeCreationRemaining
「動画で広告報酬」ButtonRewarded広告 → PointAction.adReward(実装確認)
作成ランキング一覧List(タブ切替) 「作成した」タブで自分が作成したランキングを表示。
並び順: 予約公開(scheduled)を最上部にクライアント側でソート、以降は通常順序
・draft / created / recentlyCancelled の3リストを並列再取得して整合させる
下書き編集ボタンNavigationLinkDraftListView へ
選択肢申請一覧NavigationLinkChoiceRequestsListView へ(pending有のみ)
バナー広告共通配置MainTabView の safeAreaInset(.bottom) でタブバー直上に共通配置(プレミアム時は非表示)

状態

状態表示内容
初期表示ProgressView
表示中各セクション表示
pending選択肢申請あり選択肢申請セルにバッジ表示

遷移

操作遷移先
「ProfileView」セルタップProfileView(自分の表示)
「下書き編集」DraftListView
「選択肢申請を確認」ChoiceRequestsListView
作成ランキングタップRankingDetailView

使用するデータモデル

AppUser(currentUser)
+ Ranking(自分のranking一覧)
+ ChoiceRequest(自分のranking宛のpending申請)

実装メモ

関連

変更履歴

バージョン日付変更内容
1.02026-05-09初版作成
1.12026-05-10「下書きに戻す」直後の予約公開バッジ残留バグ修正(draft/created/recentlyCancelled 3リスト並列再取得)/「作成した」タブで予約公開をクライアント側で最上部ソート/バナー広告を MainTabView 共通配置へ統一