From 6d7efdb8e36e9d868f14711da924be41911e727a Mon Sep 17 00:00:00 2001 From: devfeijoa Date: Thu, 10 Sep 2026 19:30:04 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20CollectionDetailScreen=20=EB=82=B4?= =?UTF-8?q?=20=EB=A6=AC=EC=86=8C=EC=8A=A4=20=EC=B0=B8=EC=A1=B0=20=EB=B0=A9?= =?UTF-8?q?=EC=8B=9D=20=EA=B0=9C=EC=84=A0=20=EB=B0=8F=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `CollectionDetailScreen.kt`: - `LocalContext` 제거 및 `stringResource`를 사용하여 스낵바 메시지를 관리하도록 변경 - `LaunchedEffect` 내 에러 발생 시 스낵바 노출 조건을 명확하게 수정 - 공유 데이터 만료 메시지(`collection_share_data_outdated`)를 변수로 추출하여 재사용성 향상 --- .../feature/collection/CollectionDetailScreen.kt | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/feature/collection/src/main/java/com/into/websoso/feature/collection/CollectionDetailScreen.kt b/feature/collection/src/main/java/com/into/websoso/feature/collection/CollectionDetailScreen.kt index d085d3831..b7e1c9085 100644 --- a/feature/collection/src/main/java/com/into/websoso/feature/collection/CollectionDetailScreen.kt +++ b/feature/collection/src/main/java/com/into/websoso/feature/collection/CollectionDetailScreen.kt @@ -51,7 +51,6 @@ import androidx.compose.ui.draw.rotate import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.shadow.Shadow import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -109,13 +108,14 @@ internal fun CollectionDetailScreen( var showSort by remember { mutableStateOf(false) } val snackbar = remember { SnackbarHostState() } val snackbarScope = rememberCoroutineScope() - val context = LocalContext.current + val shareDataOutdatedMessage = stringResource(R.string.collection_share_data_outdated) + val errorMessage = state.error?.let { stringResource(it) } LifecycleEventEffect(Lifecycle.Event.ON_RESUME) { viewModel.refresh() } LaunchedEffect(state.isDeleted) { if (state.isDeleted) onDeleted() } LaunchedEffect(state.error) { - state.error?.takeIf { state.collection != null }?.let { + if (state.error != null && state.collection != null && errorMessage != null) { viewModel.consumeError() - snackbarScope.launch { snackbar.showSnackbar(context.getString(it)) } + snackbarScope.launch { snackbar.showSnackbar(errorMessage) } } } val collection = state.collection @@ -168,9 +168,7 @@ internal fun CollectionDetailScreen( collection.isPublic, ) snackbarScope.launch { - snackbar.showSnackbar( - context.getString(R.string.collection_share_data_outdated), - ) + snackbar.showSnackbar(shareDataOutdatedMessage) } } },