Skip to content

Commit

Permalink
Merge pull request #132 from PawWithU/feature/management
Browse files Browse the repository at this point in the history
feature/management: Pager์˜ ํƒญ ์ด๋™์ด ์ œ๋Œ€๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋Š” ๋ฌธ์ œ ์ˆ˜์ •
  • Loading branch information
kang9366 authored May 8, 2024
2 parents c0096fe + 0f156a6 commit b194dee
Show file tree
Hide file tree
Showing 19 changed files with 228 additions and 181 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@ data class ApplicationCompletedResponseItem(
val departureLoc: String,
val startDate: String,
val endDate: String,
val intermediaryName: String,
val isKennel: Boolean,
val mainImage: String,
val postId: Long,
val reviewId: Long?,
val dogStatusId: Long?
val dogName: String,
val pickUpTime: String,
val dogSize: String
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.kusitms.connectdog.core.data.api.model.volunteer

import com.kusitms.connectdog.core.model.AnnouncementSearch
import com.kusitms.connectdog.core.model.Announcement

data class BookmarkResponseItem(
val dogName: String,
Expand All @@ -14,7 +14,7 @@ data class BookmarkResponseItem(
val startDate: String,
val isKennel: Boolean
) {
fun toData() = AnnouncementSearch(
fun toData() = Announcement(
imageUrl = mainImage,
location = "$departureLoc โ†’ $arrivalLoc",
date = startDate,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package com.kusitms.connectdog.core.data.mapper.volunteer
import com.kusitms.connectdog.core.data.api.model.volunteer.AnnouncementHomeResponseItem
import com.kusitms.connectdog.core.data.api.model.volunteer.AnnouncementSearchResponseItem
import com.kusitms.connectdog.core.model.Announcement
import com.kusitms.connectdog.core.model.AnnouncementSearch
import com.kusitms.connectdog.core.model.AnnouncementHome
import com.kusitms.connectdog.core.util.dateRangeFormat

internal fun AnnouncementHomeResponseItem.toData(): Announcement {
return Announcement(
internal fun AnnouncementHomeResponseItem.toData(): AnnouncementHome {
return AnnouncementHome(
imageUrl = this.mainImage,
location = "${this.departureLoc} โ†’ ${this.arrivalLoc}",
date = dateRangeFormat(startDate, endDate),
Expand All @@ -17,8 +17,8 @@ internal fun AnnouncementHomeResponseItem.toData(): Announcement {
)
}

internal fun AnnouncementSearchResponseItem.toData(): AnnouncementSearch {
return AnnouncementSearch(
internal fun AnnouncementSearchResponseItem.toData(): Announcement {
return Announcement(
imageUrl = this.mainImage,
location = "${this.departureLoc} โ†’ ${this.arrivalLoc}",
date = dateRangeFormat(startDate, endDate),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,12 @@ internal fun ApplicationCompletedResponseItem.toData(): Application {
imageUrl = mainImage,
location = "${this.departureLoc} โ†’ ${this.arrivalLoc}",
date = dateRangeFormat(startDate, endDate),
organization = intermediaryName,
organization = "asdf",
hasKennel = isKennel,
postId = postId,
reviewId = reviewId,
dogStatusId = dogStatusId
dogName = dogName,
dogSize = dogSize,
pickUpTime = pickUpTime
)
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.kusitms.connectdog.core.data.repository

import com.kusitms.connectdog.core.model.Announcement
import com.kusitms.connectdog.core.model.AnnouncementSearch
import com.kusitms.connectdog.core.model.AnnouncementHome
import com.kusitms.connectdog.core.model.Review

interface HomeRepository {
suspend fun getAnnouncementList(): List<Announcement>
suspend fun getAnnouncementList(): List<AnnouncementHome>

suspend fun getAnnouncementListWithFilter(
postStatus: String? = null,
Expand All @@ -19,7 +19,7 @@ interface HomeRepository {
orderCondition: String? = null,
page: Int? = 0,
size: Int? = 50
): List<AnnouncementSearch>
): List<Announcement>

suspend fun getReviewList(page: Int? = 0, size: Int? = 5): List<Review>
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import com.kusitms.connectdog.core.data.api.ApiService
import com.kusitms.connectdog.core.data.mapper.toData
import com.kusitms.connectdog.core.data.mapper.volunteer.toData
import com.kusitms.connectdog.core.model.Announcement
import com.kusitms.connectdog.core.model.AnnouncementSearch
import com.kusitms.connectdog.core.model.AnnouncementHome
import com.kusitms.connectdog.core.model.Review
import javax.inject.Inject

internal class HomeRepositoryImpl @Inject constructor(
private val api: ApiService
) : HomeRepository {
override suspend fun getAnnouncementList(): List<Announcement> {
override suspend fun getAnnouncementList(): List<AnnouncementHome> {
return api.getAnnouncementPostsHome().map { it.toData() }
}

Expand All @@ -27,7 +27,7 @@ internal class HomeRepositoryImpl @Inject constructor(
orderCondition: String?,
page: Int?,
size: Int?
): List<AnnouncementSearch> {
): List<Announcement> {
var depart = departureLoc
if (depart != null) {
if ("์ „์ฒด" in depart) depart = depart.take(2)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.kusitms.connectdog.core.designsystem.component

import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
Expand All @@ -12,6 +13,7 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Divider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
Expand All @@ -29,107 +31,104 @@ import com.kusitms.connectdog.core.designsystem.R
import com.kusitms.connectdog.core.designsystem.theme.Gray2
import com.kusitms.connectdog.core.designsystem.theme.Gray3
import com.kusitms.connectdog.core.designsystem.theme.Gray7
import com.kusitms.connectdog.core.model.Announcement
import com.kusitms.connectdog.core.model.AnnouncementSearch
import com.kusitms.connectdog.core.model.AnnouncementHome
import com.kusitms.connectdog.core.model.InterApplication

@Composable
fun ListItem(
modifier: Modifier = Modifier,
imageUrl: String,
title: String,
isValid: Boolean = true,
content: @Composable () -> Unit
) {
Row(
modifier = modifier
.fillMaxWidth()
.wrapContentHeight(Alignment.CenterVertically)
) {
Box {
NetworkImage(
imageUrl = imageUrl,
modifier = Modifier
.size(100.dp)
.clip(shape = RoundedCornerShape(12.dp))
.alpha(if (!isValid) 0.4F else 1.0F),
placeholder = ColorPainter(MaterialTheme.colorScheme.primaryContainer)
)
if (!isValid) {
DescriptionTag(
text = stringResource(id = R.string.end_recruit),
modifier = Modifier
.align(Alignment.BottomStart)
.padding(4.dp)
)
}
}
Spacer(modifier = Modifier.size(16.dp))
Column {
Title(text = title)
Spacer(modifier = Modifier.height(9.dp))
content()
}
}
}

@Composable
fun ListForUserItem(
modifier: Modifier = Modifier,
imageUrl: String,
announcement: Announcement,
announcementHome: AnnouncementHome,
isValid: Boolean = true
) {
ListItem(
modifier = modifier,
imageUrl = imageUrl,
title = announcement.dogName,
title = announcementHome.dogName,
isValid = isValid
) {
AnnouncementContent(
date = announcement.date,
organization = announcement.date,
date = announcementHome.date,
organization = announcementHome.date,
hasKennel = true
)
}
}

@Composable
fun SearchListItem(
fun AnnouncementContent(
onClick: (Long) -> Unit,
postId: Int,
imageUrl: String,
dogName: String,
location: String,
isKennel: Boolean,
dogSize: String,
date: String,
pickUpTime: String
) {
Column(
modifier = Modifier.clickable { onClick(postId.toLong()) }
) {
AnnouncementItem(
modifier = Modifier.padding(20.dp),
imageUrl = imageUrl,
dogName = dogName,
location = location,
isKennel = isKennel,
dogSize = dogSize,
date = date,
pickUpTime = pickUpTime
)
Divider(
thickness = 1.dp,
color = MaterialTheme.colorScheme.outline,
modifier = Modifier.padding(horizontal = 20.dp)
)
}
}

@Composable
fun AnnouncementItem(
modifier: Modifier = Modifier,
imageUrl: String,
announcement: AnnouncementSearch,
dogName: String,
location: String,
isKennel: Boolean,
dogSize: String,
date: String,
pickUpTime: String,
isValid: Boolean = true
) {
ListItem(
modifier = modifier,
imageUrl = imageUrl,
title = announcement.dogName,
title = dogName,
isValid = isValid
) {
Column {
Text(
text = announcement.location,
text = location,
fontSize = 12.sp,
color = Gray3,
fontWeight = FontWeight.Normal
)
Spacer(modifier = Modifier.height(12.dp))
TextWithIcon(text = announcement.date, iconId = R.drawable.ic_clock)
TextWithIcon(text = date, iconId = R.drawable.ic_clock)
Spacer(modifier = Modifier.height(6.dp))
TextWithIcon(text = announcement.pickUpTime, iconId = R.drawable.ic_clock)
TextWithIcon(text = pickUpTime, iconId = R.drawable.ic_clock)
Spacer(modifier = Modifier.height(12.dp))
Row {
ConnectDogTagWithIcon(
iconId = R.drawable.ic_dog_size,
text = announcement.dogSize,
text = dogSize,
contentColor = Gray3,
backgroundColor = Gray7
)
Spacer(modifier = Modifier.width(4.dp))
ConnectDogTagWithIcon(
iconId = R.drawable.ic_kennel,
text = if (announcement.isKennel) {
text = if (isKennel) {
stringResource(id = R.string.has_kennel)
} else {
stringResource(
Expand Down Expand Up @@ -203,6 +202,46 @@ fun ListForOrganizationItem(
}
}

@Composable
fun ListItem(
modifier: Modifier = Modifier,
imageUrl: String,
title: String,
isValid: Boolean = true,
content: @Composable () -> Unit
) {
Row(
modifier = modifier
.fillMaxWidth()
.wrapContentHeight(Alignment.CenterVertically)
) {
Box {
NetworkImage(
imageUrl = imageUrl,
modifier = Modifier
.size(100.dp)
.clip(shape = RoundedCornerShape(12.dp))
.alpha(if (!isValid) 0.4F else 1.0F),
placeholder = ColorPainter(MaterialTheme.colorScheme.primaryContainer)
)
if (!isValid) {
DescriptionTag(
text = stringResource(id = R.string.end_recruit),
modifier = Modifier
.align(Alignment.BottomStart)
.padding(4.dp)
)
}
}
Spacer(modifier = Modifier.size(16.dp))
Column {
Title(text = title)
Spacer(modifier = Modifier.height(4.dp))
content()
}
}
}

@Composable
private fun DescriptionTag(
text: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,7 @@ data class Announcement(
val date: String,
val postId: Int,
val dogName: String,
val pickUpTime: String
val pickUpTime: String,
val dogSize: String,
val isKennel: Boolean
)
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package com.kusitms.connectdog.core.model

data class AnnouncementSearch(
data class AnnouncementHome(
val imageUrl: String,
val location: String,
val date: String,
val postId: Int,
val dogName: String,
val pickUpTime: String,
val dogSize: String,
val isKennel: Boolean
val pickUpTime: String
)
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,7 @@ data class Application(
val postId: Long,
val applicationId: Long ? = null,
val reviewId: Long? = null,
val dogStatusId: Long? = null
val dogSize: String? = null,
val dogName: String? = null,
val pickUpTime: String? = null
)
Loading

0 comments on commit b194dee

Please sign in to comment.