성운 상세 실시간 기여 랭킹에 실제 기여자 표시
This commit is contained in:
@@ -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),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user