@@ -15,9 +15,9 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
15
15
import androidx.lifecycle.viewmodel.compose.viewModel
16
16
import nextstep.payments.data.BcCard
17
17
import nextstep.payments.data.Card
18
+ import nextstep.payments.data.PaymentCardsRepository
18
19
import nextstep.payments.data.RegisteredCreditCards
19
20
import nextstep.payments.ui.card.CreditCardUiState
20
- import nextstep.payments.data.PaymentCardsRepository
21
21
import nextstep.payments.ui.card.list.component.card.CardLazyColumn
22
22
import nextstep.payments.ui.card.list.component.card.CardListTopBar
23
23
import nextstep.payments.ui.card.list.component.card.CardListTopBarWithAdd
@@ -31,7 +31,19 @@ fun CardListScreen(
31
31
) {
32
32
val cards by viewModel.registeredCreditCards.collectAsStateWithLifecycle()
33
33
34
- when (cards.getState()) {
34
+ CardListScreen (
35
+ registeredCreditCards = cards,
36
+ onAddCard = onAddCard,
37
+ )
38
+ }
39
+
40
+ @Composable
41
+ fun CardListScreen (
42
+ registeredCreditCards : RegisteredCreditCards = RegisteredCreditCards (mutableListOf()),
43
+ onAddCard : () -> Unit = {}
44
+ ) {
45
+
46
+ when (registeredCreditCards.getState()) {
35
47
is CreditCardUiState .Empty -> {
36
48
CardListScreenEmpty (
37
49
onAddCard = onAddCard,
@@ -40,14 +52,14 @@ fun CardListScreen(
40
52
41
53
is CreditCardUiState .One -> {
42
54
CardListScreenOne (
43
- cards = cards ,
55
+ cards = registeredCreditCards.cardList ,
44
56
onAddCard = onAddCard,
45
57
)
46
58
}
47
59
48
60
is CreditCardUiState .Many -> {
49
61
CardListScreenMany (
50
- cards = cards ,
62
+ cards = registeredCreditCards.cardList ,
51
63
onAddCard = onAddCard,
52
64
)
53
65
}
@@ -58,9 +70,7 @@ fun CardListScreen(
58
70
fun CardListScreenEmpty (
59
71
onAddCard : () -> Unit = {}
60
72
) {
61
- Scaffold (
62
- topBar = { CardListTopBar () }
63
- ) { paddingValues ->
73
+ Scaffold (topBar = { CardListTopBar () }) { paddingValues ->
64
74
Column (
65
75
modifier = Modifier .padding(paddingValues)
66
76
) {
@@ -77,10 +87,7 @@ fun CardListScreenEmpty(
77
87
modifier = Modifier
78
88
.fillMaxWidth()
79
89
.padding(
80
- start = 73 .dp,
81
- end = 73 .dp,
82
- top = 12 .dp,
83
- bottom = 24 .dp
90
+ start = 73 .dp, end = 73 .dp, top = 12 .dp, bottom = 24 .dp
84
91
)
85
92
.size(width = 208 .dp, height = 124 .dp)
86
93
)
@@ -90,12 +97,10 @@ fun CardListScreenEmpty(
90
97
91
98
@Composable
92
99
fun CardListScreenOne (
93
- cards : RegisteredCreditCards ,
100
+ cards : List < Card > ,
94
101
onAddCard : () -> Unit = {}
95
102
) {
96
- Scaffold (
97
- topBar = { CardListTopBar () }
98
- ) { paddingValues ->
103
+ Scaffold (topBar = { CardListTopBar () }) { paddingValues ->
99
104
Column (
100
105
modifier = Modifier .padding(paddingValues)
101
106
) {
@@ -107,10 +112,7 @@ fun CardListScreenOne(
107
112
modifier = Modifier
108
113
.fillMaxWidth()
109
114
.padding(
110
- start = 73 .dp,
111
- end = 73 .dp,
112
- top = 12 .dp,
113
- bottom = 24 .dp
115
+ start = 73 .dp, end = 73 .dp, top = 12 .dp, bottom = 24 .dp
114
116
)
115
117
.size(width = 208 .dp, height = 124 .dp)
116
118
)
@@ -120,16 +122,14 @@ fun CardListScreenOne(
120
122
121
123
@Composable
122
124
fun CardListScreenMany (
123
- cards : RegisteredCreditCards ,
125
+ cards : List < Card > ,
124
126
onAddCard : () -> Unit = {}
125
127
) {
126
- Scaffold (
127
- topBar = {
128
- CardListTopBarWithAdd (
129
- onClickAdd = onAddCard
130
- )
131
- }
132
- ) { paddingValues ->
128
+ Scaffold (topBar = {
129
+ CardListTopBarWithAdd (
130
+ onClickAdd = onAddCard
131
+ )
132
+ }) { paddingValues ->
133
133
Column (
134
134
modifier = Modifier .padding(paddingValues)
135
135
) {
@@ -144,66 +144,57 @@ private fun CardListScreenEmptyPreview() {
144
144
PaymentCardsRepository .removeAllCard()
145
145
PaymentsTheme {
146
146
CardListScreen (
147
+ registeredCreditCards = RegisteredCreditCards (mutableListOf ()),
147
148
onAddCard = {}
148
149
)
149
150
}
150
151
}
151
152
152
-
153
153
@Preview
154
154
@Composable
155
155
private fun CardListScreenOnePreview () {
156
- PaymentCardsRepository .addCard(
157
- Card (
158
- cardNumber = " 1234-5678-1234-5678" ,
159
- ownerName = " 홍길동" ,
160
- expiredDate = " 12/24" ,
161
- password = " 123" ,
162
- cardCompany = BcCard
163
- )
164
- )
165
-
166
- val viewModel = CardListViewModel ()
167
-
168
156
PaymentsTheme {
169
157
CardListScreen (
170
- viewModel = viewModel,
158
+ registeredCreditCards = RegisteredCreditCards (
159
+ cardList = listOf (
160
+ Card (
161
+ cardNumber = " 1234-5678-1234-6654" ,
162
+ ownerName = " 홍길동" ,
163
+ expiredDate = " 12/24" ,
164
+ password = " 123" ,
165
+ cardCompany = BcCard
166
+ )
167
+ )
168
+ ),
171
169
onAddCard = {}
172
170
)
173
171
}
174
172
}
175
173
176
-
177
174
@Preview
178
175
@Composable
179
176
private fun CardListScreenManyPreview () {
180
- PaymentCardsRepository .addCard(
181
- Card (
182
- cardNumber = " 1234-5678-1234-6654" ,
183
- ownerName = " 홍길동" ,
184
- expiredDate = " 12/24" ,
185
- password = " 123" ,
186
- cardCompany = BcCard
187
- )
188
- )
189
-
190
- PaymentCardsRepository .addCard(
191
- Card (
192
- cardNumber = " 1234-5678-1234-1234" ,
193
- ownerName = " 홍길동" ,
194
- expiredDate = " 12/24" ,
195
- password = " 123" ,
196
- cardCompany = BcCard
177
+ val registeredCreditCards = RegisteredCreditCards (
178
+ cardList = listOf (
179
+ Card (
180
+ cardNumber = " 1234-5678-1234-6654" ,
181
+ ownerName = " 홍길동" ,
182
+ expiredDate = " 12/24" ,
183
+ password = " 123" ,
184
+ cardCompany = BcCard
185
+ ),
186
+ Card (
187
+ cardNumber = " 1234-5678-1234-1234" ,
188
+ ownerName = " 홍길동" ,
189
+ expiredDate = " 12/24" ,
190
+ password = " 123" ,
191
+ cardCompany = BcCard
192
+ )
197
193
)
198
194
)
199
195
200
- val viewModel = CardListViewModel ()
201
-
202
196
PaymentsTheme {
203
- CardListScreen (
204
- viewModel = viewModel,
205
- onAddCard = {}
206
- )
197
+ CardListScreen (registeredCreditCards = registeredCreditCards, onAddCard = {})
207
198
}
208
199
}
209
200
0 commit comments