Skip to content

Commit

Permalink
[feat/#24] snackbar 작업 완료
Browse files Browse the repository at this point in the history
  • Loading branch information
Mnseo committed Jan 11, 2024
1 parent 35f4737 commit a0ffc45
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,6 @@ class MoimFragment :
else -> {}
}
}
// (activity as? AppCompatActivity)?.setSupportActionBar(binding.toolbar)

// binding.toolbar.setNavigationOnClickListener {
// goFrontScreen()
// }
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
Expand Down Expand Up @@ -43,6 +44,7 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import coil.compose.rememberImagePainter
import coil.size.Scale
Expand All @@ -53,6 +55,7 @@ import com.teumteum.base.component.compose.TmMarginVerticalSpacer
import com.teumteum.base.component.compose.TmSnackBar
import com.teumteum.base.component.compose.theme.TmTypo
import com.teumteum.base.component.compose.theme.TmtmColorPalette
import kotlinx.coroutines.delay

@Composable
fun MoimIntroduce(
Expand All @@ -61,16 +64,17 @@ fun MoimIntroduce(
val introduce by viewModel.introduction.collectAsState()
val photo by viewModel.imageUri.collectAsState()
val snackbarHostState = remember { SnackbarHostState() }
val snackbarEvent by viewModel.snackbarEvent.collectAsState(initial = MoimViewModel.SnackbarEvent.DEFAULT)

LaunchedEffect(Unit) {
viewModel.snackbarEvent.collect { event ->
when (event) {
MoimViewModel.SnackbarEvent.FILE_OVER_10MB -> {
val result = snackbarHostState.showSnackbar(
message = "파일 크기가 10MB를 초과합니다.",
message = "10mb 이하의 사진을 등록해주세요",
duration = SnackbarDuration.Short
)
delay(1000)
snackbarHostState.currentSnackbarData?.dismiss()
if (result == SnackbarResult.Dismissed) {
viewModel.resetSnackbarEvent()
}
Expand All @@ -80,8 +84,9 @@ fun MoimIntroduce(
}
}

TmSnackBar(snackbarHostState = snackbarHostState)

Scaffold(
snackbarHost = { SnackbarHost(hostState = snackbarHostState) }
) { innerPadding->
Column(
modifier = Modifier
Expand All @@ -93,19 +98,43 @@ fun MoimIntroduce(
) {
CreateMoimTitle(string= stringResource(id = R.string.moim_introduce_title))
TmMarginVerticalSpacer(size = 28)

MoimIntroColumn(viewModel)
TmMarginVerticalSpacer(size = 20)
TeumDivider()
TmMarginVerticalSpacer(size = 20)

MoimPhotoColumn(viewModel)
TmMarginVerticalSpacer(size = 20)
TmSnackBar(snackbarHostState = snackbarHostState)
Spacer(modifier = Modifier.weight(1f))
TeumDivider()
MoimCreateBtn(text = stringResource(id = R.string.moim_next_btn), viewModel = viewModel, isEnabled = introduce.isNotEmpty() && photo.isNotEmpty())
TmMarginVerticalSpacer(size = 24)
}
}
}

@Preview
@Composable
fun TmSnackBar(
) {
Box(
modifier = Modifier
.fillMaxWidth()
.height(60.dp)
.background(
color = TmtmColorPalette.current.color_text_button_primary_default02,
shape = RoundedCornerShape(12.dp)
)
.padding(horizontal = 12.dp),
contentAlignment = Alignment.Center
) {
Text(
text = "스낵바",
color = TmtmColorPalette.current.color_text_body_quinary,
style= TmTypo.current.Body1
)
}
}

@Composable
Expand Down
9 changes: 0 additions & 9 deletions app/src/main/res/layout/fragment_moim.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="1.0"/>

<!-- <androidx.appcompat.widget.Toolbar-->
<!-- android:id="@+id/toolbar"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="?attr/actionBarSize"-->
<!-- android:navigationIcon="@drawable/ic_arrow_left_m"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent">-->
<!-- </androidx.appcompat.widget.Toolbar>-->

</androidx.constraintlayout.widget.ConstraintLayout>


Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
<string name="moim_introduce_title1_photo">사진 등록</string>
<string name="moim_introduce_title2_photo">최대 5장</string>
<string name="moim_introduce_system_photo">1장 이상의 사진을 필수로 등록해주세요.</string>
<string name="moim_introduce_snackbar">파일 크기가 10MB를 초과합니다.</string>

<string name="moim_datetime_title">모임 일정을 정해주세요</string>
<string name="moim_datetime_label1">날짜</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import android.util.Log
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
Expand All @@ -19,56 +20,39 @@ import androidx.compose.ui.unit.dp
import androidx.compose.runtime.rememberCoroutineScope
import com.teumteum.base.component.compose.theme.TmtmColorPalette
import androidx.compose.material.*
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.compose.ui.tooling.preview.Preview
import com.teumteum.base.component.compose.theme.TmTypo
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch


@Composable
fun TmSnackBar(
text: String,
snackbarHostState: SnackbarHostState,
snackbarHostState: SnackbarHostState
) {
val coroutineScope = rememberCoroutineScope()
Box(
modifier = Modifier
.fillMaxWidth()
.height(60.dp)
.clickable {
coroutineScope.launch {
snackbarHostState
.showSnackbar(
"snackBar show!!", "확인", SnackbarDuration.Short // 스낵바 보여주는 시간
)
.let {
when (it) {
SnackbarResult.Dismissed ->
Log.d("snackBar", "snackBar: 스낵바 닫아짐")

SnackbarResult.ActionPerformed ->
Log.d("snackBar", "snackBar: 확인 버튼 눌러짐")

}
}
}
}
.background(
color = TmtmColorPalette.current.color_text_button_primary_default02,
shape = RoundedCornerShape(12.dp)
SnackbarHost(hostState = snackbarHostState) { data ->
Box(
modifier = Modifier
.fillMaxWidth()
.height(60.dp)
.padding(horizontal = 20.dp)
.background(
color = TmtmColorPalette.current.color_text_button_primary_default02,
shape = RoundedCornerShape(12.dp)
)
.padding(horizontal = 12.dp),
contentAlignment = Alignment.Center
) {
Text(
text = data.message,
color = TmtmColorPalette.current.color_text_body_quinary,
style= TmTypo.current.Body1
)
.padding(horizontal = 12.dp),
contentAlignment = Alignment.Center
) {
Text(
text = text,
color = TmtmColorPalette.current.color_text_body_quinary,
style= TmTypo.current.Body1
)

SnackbarHost(
hostState = snackbarHostState,
modifier = Modifier.align(Alignment.BottomCenter)
)
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ data class ColorPalette_Light(

//button
val color_text_button_primary_default: Color = Color(0xFFFFFFFF),
val color_text_button_primary_default02: Color = Color(0x4444444),
val color_text_button_primary_default02: Color = Color(0xFF444444),
val color_text_button_primary_press: Color = Color(0xFF96D1FF), //tmtm blue 200
val color_text_button_primary_disabled: Color = Color(0xFFC9C9C9),
val color_text_button_secondary_default: Color = Color(0xFF44AEFF),
Expand Down

0 comments on commit a0ffc45

Please sign in to comment.