Skip to content

Commit

Permalink
Merge pull request #24 from snuhcs-course/frontend_design2
Browse files Browse the repository at this point in the history
Frontend design2
  • Loading branch information
jakehsj authored Nov 22, 2023
2 parents 83b6b2a + f0e5dd7 commit 149ba9f
Show file tree
Hide file tree
Showing 39 changed files with 1,317 additions and 421 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,11 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.team13.fooriend.ui.theme.BaseGreen
import com.team13.fooriend.ui.theme.CMidGreen
import com.team13.fooriend.ui.theme.FooriendColor

@Composable
fun LocationPermissionScreen(
Expand Down Expand Up @@ -55,7 +53,7 @@ fun LocationPermissionScreen(
text= "Fooriend",
fontSize = 40.sp,
fontWeight = FontWeight.ExtraBold,
color = BaseGreen
color = FooriendColor.FooriendGreen,
)
Text(
text = "믿을 수 있는 사람의 믿을 수 있는 리뷰 FOORIEND",
Expand All @@ -76,7 +74,7 @@ fun LocationPermissionScreen(
)
},
colors = ButtonDefaults.buttonColors(
CMidGreen,
FooriendColor.FooriendGreen,
contentColor = MaterialTheme.colorScheme.background
)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.team13.fooriend.ui

import androidx.compose.ui.graphics.vector.ImageVector
import com.team13.fooriend.ui.fooriendicon.Dislike
import com.team13.fooriend.ui.fooriendicon.Fooriendicon
import com.team13.fooriend.ui.fooriendicon.Home
import com.team13.fooriend.ui.fooriendicon.Like
import com.team13.fooriend.ui.fooriendicon.My
import com.team13.fooriend.ui.fooriendicon.Social
import com.team13.fooriend.ui.fooriendicon.Verified
import kotlin.collections.List as ____KtList

public object FooriendIcon

private var __AllIcons: ____KtList<ImageVector>? = null

public val FooriendIcon.AllIcons: ____KtList<ImageVector>
get() {
if (__AllIcons != null) {
return __AllIcons!!
}
__AllIcons= listOf(Like, Home, Verified, Dislike, Fooriendicon, Social, My)
return __AllIcons!!
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import android.content.Context
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.ExperimentalMaterial3Api
Expand All @@ -23,8 +24,6 @@ import androidx.navigation.NavHostController
import androidx.navigation.compose.currentBackStackEntryAsState
import com.team13.fooriend.core.graph.HomeNavGraph
import com.team13.fooriend.ui.navigation.BottomNavItem
import com.team13.fooriend.ui.theme.BaseGreen

import com.team13.fooriend.ui.theme.FooriendColor

@OptIn(ExperimentalMaterial3Api::class)
Expand Down Expand Up @@ -55,20 +54,20 @@ fun BottomNavigation(navController: NavHostController){
clip = true
shape = RoundedCornerShape(topStart = 40.dp, topEnd = 40.dp)
shadowElevation = 30f },
) {
) {
val navBackStackEntry = navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry.value?.destination?.route


items.forEach { item ->
val selected = item.route == navBackStackEntry.value?.destination?.route
NavigationBarItem(
icon = { Icon(imageVector = item.icon, contentDescription = item.title,modifier = Modifier.width(26.dp).height(26.dp)) },
label = { Text(text = item.title, fontWeight = FontWeight.Bold) },
icon = { Icon(imageVector = item.icon, contentDescription = item.title,modifier = Modifier.size(item.iconSize)) },
// label = { Text(text = item.title, fontWeight = FontWeight.Bold) },
selected = selected,
colors = NavigationBarItemDefaults.colors(
selectedIconColor = BaseGreen,
selectedTextColor = BaseGreen,
selectedIconColor = FooriendColor.FooriendGreen,
selectedTextColor = FooriendColor.FooriendGreen,
unselectedIconColor = Color.DarkGray,
indicatorColor = Color.White,
),
Expand All @@ -86,7 +85,7 @@ fun BottomNavigation(navController: NavHostController){
}
},

)
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.material3.Card
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
Expand All @@ -25,9 +28,11 @@ fun ImageCard(
onClick = onClick,
modifier = Modifier
.fillMaxWidth(),
shape = RectangleShape
){
Box(
modifier = Modifier.height(150.dp),
modifier = Modifier
.size(150.dp),
){
Image(
painter = rememberImagePainter(uri),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
Expand All @@ -30,15 +32,19 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import coil.compose.rememberImagePainter
import com.team13.fooriend.R
import com.team13.fooriend.ui.theme.FooriendColor
import com.team13.fooriend.ui.util.AbstractUser
import com.team13.fooriend.ui.util.ApiService
import com.team13.fooriend.ui.util.createRetrofit
Expand Down Expand Up @@ -81,53 +87,44 @@ fun ProfileSection(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
verticalAlignment = Alignment.CenterVertically
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceAround
) {
Box(
modifier = Modifier
.size(120.dp)
.size(105.dp)
.clip(CircleShape)
.border(2.dp, MaterialTheme.colorScheme.primary, CircleShape)
) {
Image(
painter = rememberImagePainter(
data = userProfileImageUrl,
builder = {
crossfade(true)
// 이곳에 더 많은 Coil 설정을 추가할 수 있습니다.
// 예: placeholder(R.drawable.placeholder), error(R.drawable.error)
},

),
}),
contentDescription = null,
modifier = Modifier.fillMaxSize(),
contentScale = ContentScale.Crop
)
}
Spacer(modifier = Modifier.width(16.dp))
Column(){
Text(
text = username,
style = TextStyle(fontWeight = FontWeight.Bold, fontSize = 18.sp)
)

Spacer(modifier = Modifier.height(8.dp))

Column(verticalArrangement = Arrangement.SpaceBetween) {
Row(
horizontalArrangement = Arrangement.Center,
verticalAlignment = Alignment.CenterVertically
) {
TextButton(onClick = clickedFollower) {
Text(
text = "Followers \n $followerCount",
color = MaterialTheme.colorScheme.primary
text = "$followerCount \n Followers",
color = Color.Black,
fontSize = 15.sp,
textAlign = TextAlign.Center
)
}
Spacer(modifier = Modifier.width(16.dp))
TextButton(onClick = clickedFollowing) {
Text(
text = "Following \n $followingCount",
color = MaterialTheme.colorScheme.primary
text = "$followingCount \n Following",
color = Color.Black,
fontSize = 15.sp,
textAlign = TextAlign.Center
)
}
}
Expand All @@ -136,23 +133,36 @@ fun ProfileSection(
// 팔로우 버튼이 null이 아닌경우 == mypage에서 호출하지 않은 경우
if(userId != myId){
if(!isFollowing){
Button(onClick = {
Button(
onClick = {
coroutineScope.launch {
val res = apiService.follow(userId)
isFollowing = true
}
}) {
} },
modifier = Modifier
.fillMaxWidth(0.8f),
colors = ButtonDefaults.buttonColors(
containerColor = FooriendColor.FooriendGreen,
contentColor = Color.White,
)
) {
Text(text = "Follow")
}

}
else{
Button(onClick = {
coroutineScope.launch {
Button(
onClick = {
coroutineScope.launch {
val res = apiService.follow(userId)
isFollowing = false
}
}) {
} },
modifier = Modifier
.fillMaxWidth(0.8f),
colors = ButtonDefaults.buttonColors(
containerColor = FooriendColor.FooriendGray,
contentColor = Color.White,
)) {
Text(text = "Unfollow")
}
}
Expand All @@ -165,5 +175,5 @@ fun ProfileSection(
//@Preview(showSystemUi = true, showBackground = true)
//fun ProfileSectionPreview(){
// ProfileSection("조용찬", 10, 20, "",
// isFooried = false, onFollowClick = {}, isMyPage = false)
// isFooriend = false, onFollowClick = {}, isMyPage = false)
//}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyGridState
Expand All @@ -30,8 +31,8 @@ import com.team13.fooriend.ui.util.Review
fun ReviewLazyGrid(
reviews: List<Review> = listOf(),
onReviewClick : (Int) -> Unit, // 리뷰 이미지를 클릭한 경우
verticalPadding : Int = 16,
horizontalPadding : Int = 4,
verticalPadding : Int = 1,
horizontalPadding : Int = 1,
) {
LazyVerticalGrid(
columns = GridCells.Fixed(3),
Expand Down Expand Up @@ -60,7 +61,7 @@ fun ReviewCard(
.fillMaxWidth(),
) {
Box(
modifier = Modifier.height(150.dp),
modifier = Modifier.size(150.dp),
) {
Image(
painter = rememberImagePainter(
Expand All @@ -74,6 +75,15 @@ fun ReviewCard(
.fillMaxSize(),
contentScale = ContentScale.Crop
)
if(review.receiptImage?.isReceiptVerified == true){
Image(
painterResource(id = R.drawable.verify),
contentDescription = "Negative Review",
modifier = Modifier
.size(40.dp)
.padding(8.dp)
)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.team13.fooriend.ui.fooriendicon

import androidx.compose.ui.graphics.PathFillType.Companion.NonZero
import androidx.compose.ui.graphics.StrokeCap.Companion.Butt
import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import com.team13.fooriend.ui.FooriendIcon

public val FooriendIcon.Dislike: ImageVector
get() {
if (_dislike != null) {
return _dislike!!
}
_dislike = Builder(name = "Dislike", defaultWidth = 90.0.dp, defaultHeight = 90.0.dp,
viewportWidth = 90.0f, viewportHeight = 90.0f).apply {
path(fill = null, stroke = null, strokeLineWidth = 0.0f, strokeLineCap = Butt,
strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero) {
moveTo(0.0f, 0.0f)
horizontalLineToRelative(90.0f)
verticalLineToRelative(90.0f)
horizontalLineToRelative(-90.0f)
close()
}
}
.build()
return _dislike!!
}

private var _dislike: ImageVector? = null
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.team13.fooriend.ui.fooriendicon

import androidx.compose.ui.graphics.PathFillType.Companion.NonZero
import androidx.compose.ui.graphics.StrokeCap.Companion.Butt
import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.ImageVector.Builder
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp
import com.team13.fooriend.ui.FooriendIcon

public val FooriendIcon.Fooriendicon: ImageVector
get() {
if (_fooriendicon != null) {
return _fooriendicon!!
}
_fooriendicon = Builder(name = "Fooriendicon", defaultWidth = 68.0.dp, defaultHeight =
85.0.dp, viewportWidth = 68.0f, viewportHeight = 85.0f).apply {
path(fill = null, stroke = null, strokeLineWidth = 0.0f, strokeLineCap = Butt,
strokeLineJoin = Miter, strokeLineMiter = 4.0f, pathFillType = NonZero) {
moveTo(0.0f, 0.0f)
horizontalLineToRelative(68.0f)
verticalLineToRelative(85.0f)
horizontalLineToRelative(-68.0f)
close()
}
}
.build()
return _fooriendicon!!
}

private var _fooriendicon: ImageVector? = null
Loading

0 comments on commit 149ba9f

Please sign in to comment.