Skip to content

Commit 292d055

Browse files
committed
✨ StockCards 추가
1 parent 423db4a commit 292d055

File tree

2 files changed

+78
-2
lines changed

2 files changed

+78
-2
lines changed

lib/presentation/my_capital/screens/maincapital_screen.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
33
import 'package:intl/intl.dart';
44
import 'package:jusicool_design_system/jusicool_design_system.dart';
55
import 'package:go_router/go_router.dart';
6+
import 'package:jusicool_ios/presentation/my_capital/screens/widget/stock_cards.dart';
67

78
class MainCapitalScreen extends StatelessWidget {
89
const MainCapitalScreen({super.key});
@@ -309,8 +310,7 @@ class MainCapitalScreen extends StatelessWidget {
309310
);
310311
final priceChange =
311312
"$sign$changeValueStr원 (${(item['changePercentage'] as double).toStringAsFixed(1)}%)";
312-
313-
return StockCard(
313+
return StockCards(
314314
companyName: item['companyName'] as String,
315315
logoUrl: item['imagePath'] as String,
316316
price: item['amount'] as String,
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:flutter_screenutil/flutter_screenutil.dart';
3+
import 'package:jusicool_design_system/jusicool_design_system.dart';
4+
5+
class StockCards extends StatelessWidget {
6+
final String companyName;
7+
final String logoUrl;
8+
final String price;
9+
final String priceChange;
10+
final String share;
11+
final bool isPositive;
12+
13+
const StockCards({
14+
super.key,
15+
required this.companyName,
16+
required this.logoUrl,
17+
required this.price,
18+
required this.priceChange,
19+
required this.share,
20+
this.isPositive = true,
21+
});
22+
23+
@override
24+
Widget build(BuildContext context) {
25+
return Container(
26+
decoration: BoxDecoration(
27+
color: JusicoolColor.white,
28+
borderRadius: BorderRadius.circular(12.r),
29+
),
30+
child: Row(
31+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
32+
children: [
33+
Row(
34+
spacing: 14.w,
35+
children: [
36+
SizedBox(
37+
width: 40.w,
38+
height: 40.h,
39+
child: ClipRRect(
40+
borderRadius: BorderRadius.circular(20.r),
41+
child: Image.network(logoUrl, fit: BoxFit.cover),
42+
),
43+
),
44+
Column(
45+
spacing: 2.h,
46+
crossAxisAlignment: CrossAxisAlignment.start,
47+
children: [
48+
Text(companyName, style: JusicoolTypography.bodyMedium),
49+
Text(
50+
share,
51+
style: JusicoolTypography.label.copyWith(
52+
color: JusicoolColor.gray500,
53+
),
54+
),
55+
],
56+
),
57+
],
58+
),
59+
Column(
60+
spacing: 2.h,
61+
crossAxisAlignment: CrossAxisAlignment.end,
62+
children: [
63+
Text(price, style: JusicoolTypography.bodyMedium),
64+
Text(
65+
priceChange,
66+
style: JusicoolTypography.label.copyWith(
67+
color: isPositive ? JusicoolColor.main : JusicoolColor.error,
68+
),
69+
),
70+
],
71+
),
72+
],
73+
),
74+
);
75+
}
76+
}

0 commit comments

Comments
 (0)