끝난 이클립스 합류 문구 · HOME 헤더 POP · 다국어 HOME 레이아웃 · 캠페인 표시 수정

This commit is contained in:
Sn-Kinos
2026-10-08 19:00:24 +09:00
parent a74edaef6b
commit 40b2c0e6f6
40 changed files with 1649 additions and 845 deletions
@@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import '../../core/ui/app_dialog.dart';
import 'package:flutter/services.dart';
import 'package:share_plus/share_plus.dart';
import '../../core/data/backend.dart' show BackendException;
@@ -23,6 +22,7 @@ import 'widgets/campaign_rank.dart';
import 'widgets/campaign_share_dialog.dart';
import 'widgets/campaign_style.dart';
import '../../core/ui/fx_intensity.dart';
import '../../core/ui/clipboard_copy.dart';
/// 캠페인 상세 — 화면 대조 원장 F5 · Figma `272:245738`.
///
@@ -448,6 +448,10 @@ class _CampaignDetailScreenState extends State<CampaignDetailScreen> {
),
)
: null)
// 모금 중이 아니면(달성 · 미달 환불 · 결과보고 · 취소) 기여할 수 없다 — Figma 는 종료 상태의
// 버튼을 정하지 않아(`523:18589` 「타인 캠페인에서만 표시」) 숨긴다(10/8 r11).
: card.status != CampaignStatus.funding
? null
: SafeArea(
child: Padding(
padding: const EdgeInsets.fromLTRB(20, 8, 20, 8),
@@ -1070,8 +1074,9 @@ class _CampaignDetailScreenState extends State<CampaignDetailScreen> {
}
Future<void> _copyText(CampaignCardData card) async {
await Clipboard.setData(ClipboardData(text: _shareBody(card)));
if (mounted) _toast(context.l10n.shareCopied);
await copyToClipboard(_shareBody(card), () {
if (mounted) _toast(context.l10n.shareCopied);
});
}
/// 캠페인 신고(`reports/campaign-{캠페인}-{신고자}`) · 개설자 차단.