Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
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
import androidx.compose.foundation.layout.width
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ sealed interface CalendarIntent : Intent {
data class ClickRecommendTodoTag(val index: Int) : CalendarIntent

data object ClickMonthChooser : CalendarIntent
data object ClickDirectInput : CalendarIntent


}
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,7 @@ sealed interface CalendarSideEffect : SideEffect {

data class NavigateToAddTodo(val todo: Todo) : CalendarSideEffect

data object NavigateToAddTodoWithDirectInput : CalendarSideEffect


}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ fun rememberSideEffectHandler(
updateNextMonthPage: (page: Int) -> Unit,
navigateToDetailDate: (date: String) -> Unit,
navigateToAddTodo: (todo: Todo) -> Unit,
navigateToAddTodoWithDirectInput: () -> Unit,
calendarPagerState: CalendarPagerState = rememberCalendarPagerState(),
coroutineScope: CoroutineScope = rememberCoroutineScope(),
) = remember(calendarPagerState, coroutineScope) {
Expand All @@ -39,10 +40,11 @@ fun rememberSideEffectHandler(
updatePreviousWeekPage = updatePreviousWeekPage,
navigateToDetailDate = navigateToDetailDate,
navigateToAddTodo = navigateToAddTodo,
navigateToAddTodoWithDirectInput = navigateToAddTodoWithDirectInput,
calendarPagerState = calendarPagerState,
coroutineScope = coroutineScope,

)
)
}

@Stable
Expand All @@ -57,6 +59,7 @@ class CalendarSideEffectHandler(
private val updateNextMonthPage: (page: Int) -> Unit,
private val navigateToDetailDate: (date: String) -> Unit,
private val navigateToAddTodo: (todo: Todo) -> Unit,
private val navigateToAddTodoWithDirectInput: () -> Unit,
private val calendarPagerState: CalendarPagerState,
private val coroutineScope: CoroutineScope,
) : SideEffectHandler<CalendarSideEffect> {
Expand Down Expand Up @@ -115,6 +118,10 @@ class CalendarSideEffectHandler(
is CalendarSideEffect.NavigateToAddTodo -> {
navigateToAddTodo(sideEffect.todo)
}

is CalendarSideEffect.NavigateToAddTodoWithDirectInput -> {
navigateToAddTodoWithDirectInput()
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ class CalendarViewModel @Inject constructor(
is CalendarIntent.GetRecommendTodoTagList -> getRecommendTodoTag()
is CalendarIntent.ClickRecommendTodoTag -> clickRecommendTagTodo(index = intent.index)
is CalendarIntent.ClickMonthChooser -> clickMonthChooser()
is CalendarIntent.ClickDirectInput -> clickDirectInput()
}
}

Expand Down Expand Up @@ -512,6 +513,10 @@ class CalendarViewModel @Inject constructor(
postSideEffect(CalendarSideEffect.NavigateToAddTodo(todo = todo))
}

private fun clickDirectInput() = execute {
postSideEffect(CalendarSideEffect.NavigateToAddTodoWithDirectInput)
}

private fun <T> Flow<T>.toStateFlow(
initialValue: T,
): StateFlow<T> = this.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5_000L), initialValue = initialValue)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,7 @@ class IntentBuilder(
build(CalendarIntent.ClickMonthChooser)
}

fun clickDirectInput(){
build(CalendarIntent.ClickDirectInput)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ import team.noweekend.feature.calendar.screen.CalendarRoute
fun NavGraphBuilder.calendarNavGraph(
navigateToDetailDate: (String) -> Unit,
navigateToAddTodo: (Todo) -> Unit,
navigateToAddTodoWithDirectInput: () -> Unit,
) {
composable<Calendar> {
CalendarRoute(
navigateToDetailDate = navigateToDetailDate,
navigateToAddTodo = navigateToAddTodo,
navigateToAddTodoWithDirectInput = navigateToAddTodoWithDirectInput,
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import team.noweekend.feature.calendar.mvi.rememberSideEffectHandler
internal fun CalendarRoute(
navigateToDetailDate: (String) -> Unit,
navigateToAddTodo: (Todo) -> Unit,
navigateToAddTodoWithDirectInput: () -> Unit,
modifier: Modifier = Modifier,
calendarViewModel: CalendarViewModel = hiltViewModel(),
) {
Expand All @@ -55,6 +56,7 @@ internal fun CalendarRoute(
updatePreviousWeekPage = intentBuilder::updatePreviousWeekPage,
navigateToDetailDate = navigateToDetailDate,
navigateToAddTodo = navigateToAddTodo,
navigateToAddTodoWithDirectInput = navigateToAddTodoWithDirectInput,
)


Expand Down Expand Up @@ -95,7 +97,7 @@ internal fun CalendarRoute(
modifier = Modifier
.align(Alignment.BottomEnd)
.padding(bottom = 20.dp, end = 20.dp),
onClickDirectInput = {},
onClickDirectInput = intentBuilder::clickDirectInput,
onClickDim = { isExpanded = isExpanded.not() },
)

Expand Down Expand Up @@ -131,6 +133,7 @@ private fun CalendarRoutePreview() {
modifier = Modifier.fillMaxSize(),
navigateToDetailDate = {},
navigateToAddTodo = {},
navigateToAddTodoWithDirectInput = {}
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ class MainActivity : ComponentActivity() {
/* Todo use CalendarNavigationDelgate
ex) calendarNavigationDelegate.navigateToAddTask()
*/
},
navigateToAddTodoWithDirectInput = {

}
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ internal fun MainNavHost(
navigateToCreateVacation: ((Intent.() -> Intent)?, ActivityResultLauncher<Intent>?) -> Unit,
navigateToDetailDate: ((Intent.() -> Intent)?) -> Unit,
navigateToAddTodo: ((Intent.() -> Intent)?) -> Unit,
navigateToAddTodoWithDirectInput: ((Intent.() -> Intent)?) -> Unit,
navigator: MainNavigator,
modifier: Modifier = Modifier,
) {
Expand All @@ -39,9 +40,14 @@ internal fun MainNavHost(
navigateToAddTodo(
{
putExtra("type", "")
}
},
)
},
navigateToAddTodoWithDirectInput = {
navigateToAddTodoWithDirectInput(
{ this },
)
}
},
)
profileNavGraph(
navigateToExternalWebBrowser = navigateToExternalWebBrowser,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ internal fun MainRoute(
navigateToDetailDate: ((Intent.() -> Intent)?) -> Unit,
navigateToExternalWebBrowser: (String) -> Unit,
navigateToAddTodo : ((Intent.() -> Intent)?) -> Unit,
navigateToAddTodoWithDirectInput: ((Intent.() -> Intent)?) -> Unit,
modifier: Modifier = Modifier,
navigator: MainNavigator = rememberMainNavigator(),
) {
Expand All @@ -21,6 +22,7 @@ internal fun MainRoute(
navigateToDetailDate = navigateToDetailDate,
navigateToExternalWebBrowser = navigateToExternalWebBrowser,
navigateToAddTodo = navigateToAddTodo,
navigateToAddTodoWithDirectInput = navigateToAddTodoWithDirectInput,
onTabSelected = { navigator.navigate(it) },
modifier = modifier,
navigator = navigator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ internal fun MainScreen(
navigateToExternalWebBrowser: (String) -> Unit,
navigateToCreateVacation: ((Intent.() -> Intent)?, ActivityResultLauncher<Intent>?) -> Unit,
navigateToDetailDate: ((Intent.() -> Intent)?) -> Unit,
navigateToAddTodo : ((Intent.() -> Intent)?) -> Unit,
navigateToAddTodo: ((Intent.() -> Intent)?) -> Unit,
navigateToAddTodoWithDirectInput: ((Intent.() -> Intent)?) -> Unit,
onTabSelected: (MainTab) -> Unit,
modifier: Modifier = Modifier,
navigator: MainNavigator = rememberMainNavigator(),
Expand All @@ -36,7 +37,8 @@ internal fun MainScreen(
navigateToCreateVacation = navigateToCreateVacation,
navigateToDetailDate = navigateToDetailDate,
navigateToExternalWebBrowser = navigateToExternalWebBrowser,
navigateToAddTodo = navigateToAddTodo
navigateToAddTodo = navigateToAddTodo,
navigateToAddTodoWithDirectInput = navigateToAddTodoWithDirectInput,
)
},
bottomBar = {
Expand All @@ -58,7 +60,8 @@ private fun MainScreenPreview() {
navigateToDetailDate = {},
navigateToExternalWebBrowser = {},
onTabSelected = {},
navigateToAddTodo = {}
navigateToAddTodo = {},
navigateToAddTodoWithDirectInput = {}
)
}
}