성운 상세 실시간 기여 랭킹에 실제 기여자 표시

This commit is contained in:
Sn-Kinos
2026-10-05 18:07:44 +09:00
parent 96a95a12d1
commit be623d2e46
9 changed files with 514 additions and 229 deletions
+44 -24
View File
@@ -51,11 +51,7 @@ class ModerationTarget {
/// 신고하기 화면.
class ReportScreen extends StatefulWidget {
const ReportScreen({
super.key,
required this.target,
this.reasons,
});
const ReportScreen({super.key, required this.target, this.reasons});
final ModerationTarget target;
final List<String>? reasons;
@@ -67,15 +63,18 @@ class ReportScreen extends StatefulWidget {
class _ReportScreenState extends State<ReportScreen> {
String? _reason;
static TextStyle _t(double size, Color color, {FontWeight w = FontWeight.w600}) =>
TextStyle(
fontFamily: AppFonts.body,
fontSize: size,
fontWeight: w,
height: 1,
letterSpacing: size * -0.025,
color: color,
);
static TextStyle _t(
double size,
Color color, {
FontWeight w = FontWeight.w600,
}) => TextStyle(
fontFamily: AppFonts.body,
fontSize: size,
fontWeight: w,
height: 1,
letterSpacing: size * -0.025,
color: color,
);
// 시안 `373:442007` — 닫기 X · 「신고하기」 · 오른쪽 「신고」(미선택 #474747),
// 작성자(#ee0c2c)/제목 줄, 「신고 사유」 띠 #232325, 사유 줄 48(라디오 20 · 16/600 · 밑줄 #313131).
@@ -105,18 +104,29 @@ class _ReportScreenState extends State<ReportScreen> {
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10),
child: Column(
children: [
_info(context.l10n.reportAuthor, widget.target.authorName, const Color(0xFFEE0C2C)),
_info(
context.l10n.reportAuthor,
widget.target.authorName,
const Color(0xFFEE0C2C),
),
const SizedBox(height: 16),
const Divider(height: 1, thickness: 1, color: Color(0xFF313131)),
const SizedBox(height: 16),
_info(context.l10n.commonTitle, widget.target.title, const Color(0xFFD1D1D2)),
_info(
context.l10n.commonTitle,
widget.target.title,
const Color(0xFFD1D1D2),
),
],
),
),
Container(
color: const Color(0xFF232325),
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10),
child: Text(context.l10n.reportReasonLabel, style: _t(12, const Color(0xFF909091))),
child: Text(
context.l10n.reportReasonLabel,
style: _t(12, const Color(0xFF909091)),
),
),
// 디폴트 미선택 · 단수 선택.
for (final r in widget.reasons ?? defaultReportReasons)
@@ -145,20 +155,26 @@ class _ReportScreenState extends State<ReportScreen> {
children: [
SizedBox(
width: 36,
child: Text(label, textAlign: TextAlign.center, style: _t(14, const Color(0xFF59595B))),
child: Text(
label,
textAlign: TextAlign.center,
style: _t(14, const Color(0xFF59595B)),
),
),
const SizedBox(width: 20),
Expanded(
child: Text(value, maxLines: 1, overflow: TextOverflow.ellipsis, style: _t(14, color)),
child: Text(
value,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: _t(14, color),
),
),
],
);
Future<void> _submit() async {
final ok = await confirmOverlay(
context,
context.l10n.reportConfirm,
);
final ok = await confirmOverlay(context, context.l10n.reportConfirm);
if (!ok || !mounted) return;
Navigator.pop(context, _reason);
}
@@ -226,7 +242,11 @@ Future<bool> confirmOverlay(BuildContext context, String message) async {
child: Row(
children: [
button(c, c.l10n.commonCancel, false),
Container(width: 0.5, height: 42, color: const Color(0xFF636463)),
Container(
width: 0.5,
height: 42,
color: const Color(0xFF636463),
),
button(c, c.l10n.commonConfirm, true),
],
),