POP 내역 총 보유 · 예약 · 사용 가능 3구분 · 온보딩 추천인 코드

This commit is contained in:
Sn-Kinos
2026-10-06 20:05:18 +09:00
parent 363c74736c
commit a04626b003
20 changed files with 235 additions and 29 deletions
+27 -5
View File
@@ -109,7 +109,7 @@ class _PopHistoryScreenState extends State<PopHistoryScreen> {
itemCount:
1 + (_entries.isEmpty ? 1 : _entries.length) + (_hasMore ? 1 : 0),
itemBuilder: (context, i) {
if (i == 0) return _Balance(pop: profile.balancePop);
if (i == 0) return _Balance(profile: profile);
i -= 1;
if (_entries.isEmpty && i == 0) {
return ColoredBox(
@@ -148,11 +148,14 @@ class _PopHistoryScreenState extends State<PopHistoryScreen> {
}
}
/// 보유 POP — 번개 20 + 「POP」 18/500 민트 · 값 36/900.
/// 보유 POP — 번개 20 + 「POP」 18/500 민트 · 값 36/900(명세 `554:23714` 현재 보유 POP = 총 보유).
///
/// 그 아래 「총 보유 · 예약 · 사용 가능」 세 값(정책 설계서 잔액 구분 · G-05 · QA 2-29).
/// Figma 에는 이 줄이 없어 배치는 해석 확인 대상이다.
class _Balance extends StatelessWidget {
const _Balance({required this.pop});
const _Balance({required this.profile});
final int pop;
final MyProfile profile;
@override
Widget build(BuildContext context) => Container(
@@ -182,7 +185,7 @@ class _Balance extends StatelessWidget {
child: OverflowBox(
maxHeight: 48,
child: Text(
formatPop(pop),
formatPop(profile.balancePop),
style: const TextStyle(
fontFamily: AppFonts.body,
fontSize: 36,
@@ -193,6 +196,25 @@ class _Balance extends StatelessWidget {
),
),
),
const SizedBox(height: 24),
Row(
children: [
for (final (label, value) in [
(context.l10n.popTotal, profile.balancePop),
(context.l10n.popReserved, profile.reservedPop),
(context.l10n.popAvailable, profile.availablePop),
])
Expanded(
child: Column(
children: [
Text(label, style: myText(12, FontWeight.w500, color: MyColors.muted)),
const SizedBox(height: 4),
Text(formatPop(value), style: myText(14, FontWeight.w700)),
],
),
),
],
),
],
),
);