@@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.Arrangement
1010import androidx.compose.foundation.layout.Box
1111import androidx.compose.foundation.layout.Column
1212import androidx.compose.foundation.layout.Row
13+ import androidx.compose.foundation.layout.RowScope
1314import androidx.compose.foundation.layout.aspectRatio
1415import androidx.compose.foundation.layout.fillMaxSize
1516import androidx.compose.foundation.layout.fillMaxWidth
@@ -102,7 +103,7 @@ fun HistoryList(
102103 missionId = history.missionId,
103104 imageUrls = history.imageUrls,
104105 characters = history.missionMembers.distinctCharacters,
105- extraNumbers = history.missionMembers.extraNumbers ,
106+ membersCount = history.missionMembers.size ,
106107 title = history.description,
107108 startDate = history.missionFormattedStartDate,
108109 endDate = history.missionFormattedEndDate,
@@ -132,7 +133,7 @@ fun HistoryListItem(
132133 missionId : Long ,
133134 imageUrls : List <String >,
134135 characters : List <CharacterType >,
135- extraNumbers : Int ,
136+ membersCount : Int ,
136137 title : String ,
137138 startDate : String ,
138139 endDate : String ,
@@ -190,7 +191,7 @@ fun HistoryListItem(
190191
191192 HistoryListItemInfo (
192193 characters = characters,
193- extraNumbers = extraNumbers ,
194+ membersCount = membersCount ,
194195 title = title,
195196 startDate = startDate,
196197 endDate = endDate,
@@ -209,7 +210,8 @@ fun HistoryListItemImage(
209210) {
210211 HorizontalPager (
211212 state = state,
212- userScrollEnabled = false
213+ userScrollEnabled = false ,
214+ beyondViewportPageCount = 2
213215 ) { index ->
214216 AsyncImage (
215217 modifier = modifier
@@ -235,7 +237,7 @@ fun HistoryListItemImageEmpty(
235237@Composable
236238fun HistoryListItemInfo (
237239 characters : List <CharacterType >,
238- extraNumbers : Int ,
240+ membersCount : Int ,
239241 title : String ,
240242 startDate : String ,
241243 endDate : String ,
@@ -245,36 +247,29 @@ fun HistoryListItemInfo(
245247 modifier : Modifier = Modifier
246248) {
247249 Column (
248- modifier = modifier.padding(20 .dp),
249- verticalArrangement = Arrangement .spacedBy(24 .dp)
250+ modifier = modifier.padding(horizontal = 20 .dp, vertical = 16 .dp),
251+ verticalArrangement = Arrangement .spacedBy(8 .dp)
250252 ) {
251253 Row (
252254 horizontalArrangement = Arrangement .spacedBy(12 .dp),
253255 ) {
254256 HistoryListItemInfoDetail (
255257 modifier = Modifier .weight(1f ),
256258 characters = characters,
257- extraNumbers = extraNumbers ,
259+ membersCount = membersCount ,
258260 title = title,
259- startDate = startDate,
260- endDate = endDate
261+ boardProgressed = boardProgressed,
262+ boardTotal = boardTotal,
263+ rank = rank
264+ )
265+ HistoryListItemInfoTrophy (
266+ rank = rank,
267+ boardProgressed = boardProgressed
261268 )
262- if (rank == 1 ) {
263- StableImage (
264- modifier = Modifier
265- .width(85 .dp)
266- .height(80 .dp)
267- .align(
268- Alignment .Bottom
269- ),
270- drawableResId = com.goalpanzi.mission_mate.core.designsystem.R .drawable.img_normal_trophy_gold
271- )
272- }
273269 }
274- HistoryListItemInfoResult (
275- boardProgressed = boardProgressed,
276- boardTotal = boardTotal,
277- rank = rank
270+ HistoryListItemInfoDetailPeriod (
271+ startDate = startDate,
272+ endDate = endDate
278273 )
279274 }
280275
@@ -283,35 +278,37 @@ fun HistoryListItemInfo(
283278@Composable
284279fun HistoryListItemInfoDetail (
285280 characters : List <CharacterType >,
286- extraNumbers : Int ,
281+ membersCount : Int ,
287282 title : String ,
288- startDate : String ,
289- endDate : String ,
283+ boardProgressed : Int ,
284+ boardTotal : Int ,
285+ rank : Int ,
290286 modifier : Modifier = Modifier
291287) {
292288 Column (
293289 modifier = modifier,
294- verticalArrangement = Arrangement .spacedBy(8 .dp)
290+ verticalArrangement = Arrangement .spacedBy(2 .dp)
295291 ) {
296292 HistoryListItemInfoDetailMembers (
297- modifier = Modifier .padding(bottom = 4 .dp),
293+ modifier = Modifier .padding(bottom = 2 .dp),
298294 characters = characters,
299- extraNumbers = extraNumbers
295+ membersCount = membersCount
300296 )
301297 HistoryListItemInfoDetailTitle (
302298 title = title
303299 )
304- HistoryListItemInfoDetailPeriod (
305- startDate = startDate,
306- endDate = endDate
300+ HistoryListItemInfoResult (
301+ boardProgressed = boardProgressed,
302+ boardTotal = boardTotal,
303+ rank = rank
307304 )
308305 }
309306}
310307
311308@Composable
312309fun HistoryListItemInfoDetailMembers (
313310 characters : List <CharacterType >,
314- extraNumbers : Int ,
311+ membersCount : Int ,
315312 modifier : Modifier = Modifier
316313) {
317314 Row (
@@ -322,16 +319,14 @@ fun HistoryListItemInfoDetailMembers(
322319 HistoryListItemInfoDetailMembersCharacterList (
323320 characters = characters
324321 )
325- if (extraNumbers > 0 ) {
326- Text (
327- text = stringResource(
328- id = R .string.history_list_item_member_count,
329- extraNumbers
330- ),
331- style = MissionMateTypography .body_xl_bold,
332- color = ColorGray1_FF404249
333- )
334- }
322+ Text (
323+ text = stringResource(
324+ id = R .string.history_list_item_member_count,
325+ membersCount
326+ ),
327+ style = MissionMateTypography .body_xl_bold,
328+ color = ColorGray1_FF404249
329+ )
335330 }
336331}
337332
@@ -396,7 +391,7 @@ fun HistoryListItemInfoDetailTitle(
396391 Text (
397392 modifier = modifier,
398393 text = title,
399- style = MissionMateTypography .title_xl_bold ,
394+ style = MissionMateTypography .title_lg_bold ,
400395 color = ColorGray1_FF404249
401396 )
402397}
@@ -454,7 +449,7 @@ fun HistoryListItemInfoResultBoard(
454449 progressed,
455450 total
456451 ),
457- style = MissionMateTypography .body_xl_bold ,
452+ style = MissionMateTypography .body_lg_bold ,
458453 color = ColorOrange_FFFF5732
459454 )
460455}
@@ -470,11 +465,36 @@ fun HistoryListItemInfoResultRank(
470465 id = R .string.history_list_item_rank,
471466 rank
472467 ),
473- style = MissionMateTypography .body_xl_regular ,
468+ style = MissionMateTypography .body_lg_regular ,
474469 color = ColorGray1_FF404249
475470 )
476471}
477472
473+ @Composable
474+ fun RowScope.HistoryListItemInfoTrophy (
475+ rank : Int ,
476+ boardProgressed : Int ,
477+ modifier : Modifier = Modifier
478+ ) {
479+ val trophyDrawableResId = if (boardProgressed == 0 ) {
480+ com.goalpanzi.mission_mate.core.designsystem.R .drawable.img_normal_trophy_question_mark
481+ }else {
482+ when (rank) {
483+ 1 -> com.goalpanzi.mission_mate.core.designsystem.R .drawable.img_normal_trophy_gold
484+ 2 -> com.goalpanzi.mission_mate.core.designsystem.R .drawable.img_normal_trophy_silver
485+ 3 -> com.goalpanzi.mission_mate.core.designsystem.R .drawable.img_normal_trophy_bronze
486+ else -> return
487+ }
488+ }
489+ StableImage (
490+ modifier = modifier
491+ .width(63 .dp)
492+ .height(59 .dp)
493+ .align(Alignment .Bottom ),
494+ drawableResId = trophyDrawableResId
495+ )
496+ }
497+
478498@Preview
479499@Composable
480500private fun HistoryListItemInfoDetailMembersCharacterListPreview () {
@@ -507,7 +527,7 @@ private fun HistoryListItemPreview() {
507527 CharacterType .DOG ,
508528 CharacterType .BIRD
509529 ),
510- extraNumbers = 3 ,
530+ membersCount = 3 ,
511531 title = " 매일 저녁 1시간 먹기" ,
512532 startDate = " 2024.08.15" ,
513533 endDate = " 2024.09.14" ,
0 commit comments