라이브 티커 · 갤럭시 검색 색인 · 주간 랭킹 스냅샷 · 연속 ZAP 상한 · 가입 행성 Zap · 성운 목표 · 랭킹 갱신 안내 · 행성 터치 반응

This commit is contained in:
Sn-Kinos
2026-10-05 22:38:42 +09:00
parent 000c058097
commit 4bb92c2ee7
44 changed files with 727 additions and 78 deletions
+6 -4
View File
@@ -601,7 +601,7 @@ class _Map extends StatelessWidget {
),
),
if (data.mine case final mine?)
if (data.zapTargetFor(selected) case final mine?)
Positioned.fill(
child: IgnorePointer(
child: AnimatedBuilder(
@@ -610,6 +610,7 @@ class _Map extends StatelessWidget {
touchSerial: touchSerial,
pending: pending > 0 || sending,
result: zapResult,
fandomName: mine.name,
source: Offset(
viewport.width / 2,
viewport.height -
@@ -653,8 +654,8 @@ class _Map extends StatelessWidget {
// 하단의 GALAXY 라벨·돋보기(40) 위에 놓는다.
bottom: AppSpace.s4 + 40 + AppSpace.s3,
child: LiveStreamBuilder<PlanetVisualState>(
key: ValueKey(('zap-mode', data.mine?.id)),
create: () => watchPlanet(data.mine?.id ?? ''),
key: ValueKey(('zap-mode', data.zapTargetFor(selected)?.id)),
create: () => watchPlanet(data.zapTargetFor(selected)?.id ?? ''),
builder: (context, state) {
final hero =
state?.isHeroTime == true &&
@@ -679,7 +680,8 @@ class _Map extends StatelessWidget {
? context.l10n.zapNoPlanet
: null,
onZap: () {
if (data.mine case final mine?) {
// 고른 행성이 가입 팬덤이면 그 행성에, 아니면 대표 행성에(10/3 #10).
if (data.zapTargetFor(selected) case final mine?) {
if (hero) {
showModalBottomSheet<void>(
context: context,