From 095d37f0a10d652f614ab3143ea0533f37c71678 Mon Sep 17 00:00:00 2001 From: Kim Nahyeon Date: Fri, 23 Jan 2026 03:55:52 +0900 Subject: [PATCH] =?UTF-8?q?[FIX/#150]=20=EA=B2=80=EC=83=89=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20imePadding=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../calendar/procedure/ProcedureScreen.kt | 242 +++++++++--------- 1 file changed, 115 insertions(+), 127 deletions(-) diff --git a/app/src/main/java/com/cherrish/android/presentation/calendar/procedure/ProcedureScreen.kt b/app/src/main/java/com/cherrish/android/presentation/calendar/procedure/ProcedureScreen.kt index 60ac9bd7..590635f9 100644 --- a/app/src/main/java/com/cherrish/android/presentation/calendar/procedure/ProcedureScreen.kt +++ b/app/src/main/java/com/cherrish/android/presentation/calendar/procedure/ProcedureScreen.kt @@ -3,10 +3,8 @@ package com.cherrish.android.presentation.calendar.procedure import androidx.activity.compose.BackHandler import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding @@ -14,7 +12,6 @@ import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Scaffold import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -149,157 +146,148 @@ fun ProcedureScreen( BackHandler { onBackClick() } - Scaffold( + Column( modifier = modifier .fillMaxSize() .background(CherrishTheme.colors.gray0) .navigationBarsPadding() .padding(top = 44.dp), - containerColor = CherrishTheme.colors.gray0, - bottomBar = { - CherrishButton( - text = if (uiState.step == ProcedureStep.Downtime) "완료" else "다음", - onClick = onNextClick, - enabled = uiState.isNextEnabled, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 24.dp) - .padding(vertical = 20.dp) - .background(CherrishTheme.colors.gray0) - ) - } - ) { innerPadding -> + horizontalAlignment = Alignment.CenterHorizontally + ) { + BackAndCloseTopAppBar( + title = uiState.title, + onBackClick = onBackClick, + onCloseClick = onCloseClick + ) + Column( modifier = Modifier - .fillMaxSize() - .imePadding(), - horizontalAlignment = Alignment.CenterHorizontally + .weight(1f) + .fillMaxWidth() ) { - BackAndCloseTopAppBar( - title = uiState.title, - onBackClick = onBackClick, - onCloseClick = onCloseClick - ) + if (uiState.showStepProgressBar) { + StepProgressBar( + totalStep = uiState.totalSteps, + currentStep = uiState.currentStepIndex, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 26.dp) + .padding(top = 20.dp) + ) + } Column( - modifier = Modifier - .weight(1f) - .fillMaxWidth() + modifier = Modifier.fillMaxWidth() ) { - if (uiState.showStepProgressBar) { - StepProgressBar( - totalStep = uiState.totalSteps, - currentStep = uiState.currentStepIndex, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 26.dp) - .padding(top = 20.dp) - ) - } + when (uiState.flow) { + ProcedureFlow.Entry -> { + ExistenceContent( + selectedIndex = uiState.existenceSelectedIndex, + onItemClick = onExistenceClick, + modifier = Modifier + .padding(top = uiState.contentTopPadding) + .padding(horizontal = 26.dp) + .padding(bottom = 10.dp) + ) + } - Column( - modifier = Modifier.fillMaxWidth() - ) { - when (uiState.flow) { - ProcedureFlow.Entry -> { - ExistenceContent( - selectedIndex = uiState.existenceSelectedIndex, - onItemClick = onExistenceClick, - modifier = Modifier - .padding(top = uiState.contentTopPadding) - .padding(horizontal = 26.dp) - .padding(bottom = 10.dp) - ) - } + ProcedureFlow.NoTreat, ProcedureFlow.Treat -> { + when (uiState.step) { + ProcedureStep.Category -> { + CategoryContent( + worries = uiState.worries, + selectedWorryId = uiState.selectedWorryId, + onWorryClick = onWorryClick, + modifier = Modifier + .padding(top = uiState.contentTopPadding) + .padding(horizontal = 26.dp) + .padding(bottom = 10.dp) + ) + } - ProcedureFlow.NoTreat, ProcedureFlow.Treat -> { - when (uiState.step) { - ProcedureStep.Category -> { - CategoryContent( - worries = uiState.worries, - selectedWorryId = uiState.selectedWorryId, - onWorryClick = onWorryClick, + ProcedureStep.RecoverySchedule -> { + Column( + modifier = Modifier + .fillMaxWidth() + .imePadding() + .verticalScroll(rememberScrollState()) + + ) { + RecoveryScheduleContent( + selectedIndex = uiState.recoverySelectedIndex, + onItemClick = onRecoveryOptionClick, + year = uiState.year, + month = uiState.month, + day = uiState.day, + onYearChange = onYearChange, + onMonthChange = onMonthChange, + onDayChange = onDayChange, + errorMessage = uiState.dateErrorMessage, modifier = Modifier .padding(top = uiState.contentTopPadding) .padding(horizontal = 26.dp) - .padding(bottom = 10.dp) ) } + } - ProcedureStep.RecoverySchedule -> { - Column( - modifier = Modifier - .fillMaxWidth() - .verticalScroll(rememberScrollState()) - ) { - RecoveryScheduleContent( - selectedIndex = uiState.recoverySelectedIndex, - onItemClick = onRecoveryOptionClick, - year = uiState.year, - month = uiState.month, - day = uiState.day, - onYearChange = onYearChange, - onMonthChange = onMonthChange, - onDayChange = onDayChange, - errorMessage = uiState.dateErrorMessage, - modifier = Modifier - .padding(top = uiState.contentTopPadding) - .padding(horizontal = 26.dp) - ) - } - } - - ProcedureStep.Filtering -> { - FilteringContent( - name = uiState.selectedWorryName, - cardItems = uiState.procedureItems, - selectedCardIds = uiState.selectedProcedureCardIds, - onCardClick = onProcedureCardClick, - bottomPadding = uiState.lazyColumnBottomPadding, - modifier = Modifier.fillMaxWidth() - .padding(top = uiState.contentTopPadding) - ) - } + ProcedureStep.Filtering -> { + FilteringContent( + name = uiState.selectedWorryName, + cardItems = uiState.procedureItems, + selectedCardIds = uiState.selectedProcedureCardIds, + onCardClick = onProcedureCardClick, + bottomPadding = uiState.lazyColumnBottomPadding, + modifier = Modifier + .fillMaxWidth() + .padding(top = uiState.contentTopPadding) + ) + } - ProcedureStep.FilteringWithSearch -> { - FilteringWithSearchContent( - cardItems = uiState.procedureItems, - selectedCardIds = uiState.selectedProcedureCardIds, - onCardClick = onProcedureCardClick, - onSearchAction = onSearchAction, - query = uiState.searchQuery, - searchedQuery = uiState.searchedQuery, - onQueryChange = onSearchableQueryChange, - bottomContentPadding = uiState.lazyColumnBottomPadding, - modifier = Modifier - .fillMaxWidth() - .padding(top = uiState.contentTopPadding) - .padding(horizontal = 24.dp) - ) - } + ProcedureStep.FilteringWithSearch -> { + FilteringWithSearchContent( + cardItems = uiState.procedureItems, + selectedCardIds = uiState.selectedProcedureCardIds, + onCardClick = onProcedureCardClick, + onSearchAction = onSearchAction, + query = uiState.searchQuery, + searchedQuery = uiState.searchedQuery, + onQueryChange = onSearchableQueryChange, + bottomContentPadding = uiState.lazyColumnBottomPadding, + modifier = Modifier + .fillMaxWidth() + .padding(top = uiState.contentTopPadding) + .padding(horizontal = 24.dp) + ) + } - ProcedureStep.Downtime -> { - DowntimeContent( - cardItems = uiState.selectedProcedureCardItems, - selectedCardIds = uiState.procedureDowntimeMap.keys - .toImmutableList(), - onCardClick = onDowntimeClick, - activeCardId = uiState.selectedProcedureForDowntime?.id, - isDowntimeBottomSheetVisible = uiState - .showDowntimeBottomSheet, - modifier = Modifier - .fillMaxWidth() - .padding(top = uiState.contentTopPadding) - ) - } + ProcedureStep.Downtime -> { + DowntimeContent( + cardItems = uiState.selectedProcedureCardItems, + selectedCardIds = uiState.procedureDowntimeMap.keys + .toImmutableList(), + onCardClick = onDowntimeClick, + activeCardId = uiState.selectedProcedureForDowntime?.id, + isDowntimeBottomSheetVisible = uiState.showDowntimeBottomSheet, + modifier = Modifier + .fillMaxWidth() + .padding(top = uiState.contentTopPadding) + ) } } } } } - - Spacer(modifier = Modifier.height(innerPadding.calculateBottomPadding())) } + + CherrishButton( + text = if (uiState.step == ProcedureStep.Downtime) "완료" else "다음", + onClick = onNextClick, + enabled = uiState.isNextEnabled, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 24.dp) + .padding(vertical = 20.dp) + ) } SelectedProcedureBottomSheet(