Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor edit address #13633

Open
wants to merge 7 commits into
base: issue/12439-edit-order-navigation
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
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 @@ -18,6 +18,7 @@ import com.woocommerce.android.ui.main.AppBarStatus
import com.woocommerce.android.ui.main.MainActivity.Companion.BackPressListener
import com.woocommerce.android.ui.orders.wooshippinglabels.WooShippingLabelCreationViewModel.StartCustomsFormEdit
import com.woocommerce.android.ui.orders.wooshippinglabels.WooShippingLabelCreationViewModel.StartPackageSelection
import com.woocommerce.android.ui.orders.wooshippinglabels.address.EditAddressFlow
import com.woocommerce.android.ui.orders.wooshippinglabels.packages.WooShippingLabelPackageCreationFragment.Companion.PACKAGE_SELECTION_RESULT
import com.woocommerce.android.ui.orders.wooshippinglabels.packages.ui.PackageData
import com.woocommerce.android.viewmodel.MultiLiveEvent
Expand Down Expand Up @@ -70,7 +71,7 @@ class WooShippingLabelCreationFragment : BaseFragment(), BackPressListener {
is WooShippingLabelCreationViewModel.StartOriginAddressEdit ->
WooShippingLabelCreationFragmentDirections
.actionWooShippingLabelCreationFragmentToWooShippingEditOriginAddressFragment(
originAddress = event.originAddress
flow = EditAddressFlow.EditOriginAddress(event.originAddress)
).let { findNavController().navigateSafely(it) }

is StartCustomsFormEdit -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import com.woocommerce.android.ui.orders.wooshippinglabels.WooShippingLabelCreat
import com.woocommerce.android.ui.orders.wooshippinglabels.WooShippingLabelCreationViewModel.CustomsState.Unavailable
import com.woocommerce.android.ui.orders.wooshippinglabels.WooShippingLabelCreationViewModel.PackageSelectionState.DataAvailable
import com.woocommerce.android.ui.orders.wooshippinglabels.WooShippingLabelCreationViewModel.PackageSelectionState.NotSelected
import com.woocommerce.android.ui.orders.wooshippinglabels.address.FetchOriginAddresses
import com.woocommerce.android.ui.orders.wooshippinglabels.address.ObserveOriginAddresses
import com.woocommerce.android.ui.orders.wooshippinglabels.address.origin.FetchOriginAddresses
import com.woocommerce.android.ui.orders.wooshippinglabels.address.origin.ObserveOriginAddresses
import com.woocommerce.android.ui.orders.wooshippinglabels.customs.ShouldRequireCustomsForm
import com.woocommerce.android.ui.orders.wooshippinglabels.models.OriginShippingAddress
import com.woocommerce.android.ui.orders.wooshippinglabels.models.ShippableItemModel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woocommerce.android.ui.orders.wooshippinglabels.address.origin
package com.woocommerce.android.ui.orders.wooshippinglabels.address

import com.woocommerce.android.model.Address
import com.woocommerce.android.tools.SelectedSite
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.woocommerce.android.ui.orders.wooshippinglabels.address.origin
package com.woocommerce.android.ui.orders.wooshippinglabels.address

import android.os.Bundle
import android.view.LayoutInflater
Expand All @@ -18,21 +18,18 @@ import com.woocommerce.android.ui.compose.theme.WooThemeWithBackground
import com.woocommerce.android.ui.main.AppBarStatus
import com.woocommerce.android.ui.main.MainActivity.Companion.BackPressListener
import com.woocommerce.android.ui.orders.details.editing.address.LocationCode
import com.woocommerce.android.ui.orders.wooshippinglabels.address.WooShippingEditAddressScreen
import com.woocommerce.android.ui.orders.wooshippinglabels.address.origin.WooShippingEditOriginViewModel.ShowCountrySelector
import com.woocommerce.android.ui.orders.wooshippinglabels.address.origin.WooShippingEditOriginViewModel.ShowStateSelector
import com.woocommerce.android.ui.searchfilter.SearchFilterItem
import com.woocommerce.android.viewmodel.MultiLiveEvent
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class WooShippingEditOriginAddressFragment : BaseFragment(), BackPressListener {
class WooShippingEditAddressFragment : BaseFragment(), BackPressListener {
private companion object {
const val SELECT_COUNTRY_REQUEST = "select_address_country_request"
const val SELECT_STATE_REQUEST = "select_address_state_request"
}

private val viewModel: WooShippingEditOriginViewModel by viewModels()
private val viewModel: WooShippingEditAddressViewModel by viewModels()

override val activityAppBarStatus: AppBarStatus = AppBarStatus.Hidden

Expand All @@ -58,8 +55,8 @@ class WooShippingEditOriginAddressFragment : BaseFragment(), BackPressListener {
private fun observeEvents() {
viewModel.event.observe(viewLifecycleOwner) { event ->
when (event) {
is ShowCountrySelector -> showCountrySearchScreen(event.countries)
is ShowStateSelector -> showStatesSearchScreen(event.states)
is WooShippingEditAddressViewModel.ShowCountrySelector -> showCountrySearchScreen(event.countries)
is WooShippingEditAddressViewModel.ShowStateSelector -> showStatesSearchScreen(event.states)
is MultiLiveEvent.Event.Exit -> findNavController().navigateUp()
}
}
Expand All @@ -75,7 +72,7 @@ class WooShippingEditOriginAddressFragment : BaseFragment(), BackPressListener {
}

private fun showCountrySearchScreen(countries: List<Location>) {
val action = WooShippingEditOriginAddressFragmentDirections.actionSearchFilterFragment(
val action = WooShippingEditAddressFragmentDirections.Companion.actionSearchFilterFragment(
items = countries.map {
SearchFilterItem(
name = it.name,
Expand All @@ -90,7 +87,7 @@ class WooShippingEditOriginAddressFragment : BaseFragment(), BackPressListener {
}

private fun showStatesSearchScreen(states: List<Location>) {
val action = WooShippingEditOriginAddressFragmentDirections.actionSearchFilterFragment(
val action = WooShippingEditAddressFragmentDirections.Companion.actionSearchFilterFragment(
items = states.map {
SearchFilterItem(
name = it.name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,17 +87,13 @@ import com.woocommerce.android.ui.compose.component.dismissWCModalBottomSheet
import com.woocommerce.android.ui.compose.theme.WooThemeWithBackground
import com.woocommerce.android.ui.orders.wooshippinglabels.RoundedCornerBoxWithBorder
import com.woocommerce.android.ui.orders.wooshippinglabels.ShipmentDetailsSectionTitle
import com.woocommerce.android.ui.orders.wooshippinglabels.address.origin.AddressStatus
import com.woocommerce.android.ui.orders.wooshippinglabels.address.origin.AddressValidationState
import com.woocommerce.android.ui.orders.wooshippinglabels.address.origin.EditableAddress
import com.woocommerce.android.ui.orders.wooshippinglabels.address.origin.WooShippingEditOriginViewModel
import com.woocommerce.android.ui.orders.wooshippinglabels.purchased.successColor
import com.woocommerce.android.ui.orders.wooshippinglabels.rates.ui.shippingSelectedBackgroundColor
import kotlinx.coroutines.launch

@Composable
fun WooShippingEditAddressScreen(
viewModel: WooShippingEditOriginViewModel,
viewModel: WooShippingEditAddressViewModel,
modifier: Modifier = Modifier
) {
val viewState = viewModel.viewState.collectAsState().value
Expand All @@ -123,7 +119,7 @@ fun WooShippingEditAddressScreen(
onRawStateChange = viewModel::onRawStateChange,
onStateChange = viewModel::onStateChange,
onNormalizeAddress = viewModel::onNormalizeAddress,
onUpdateOriginAddress = viewModel::onUpdateOriginAddress,
onUpdateAddress = viewModel::onUpdateAddress,
onUpdateNormalizedOriginAddress = viewModel::onUpdateNormalizedOriginAddress,
onNavigateBack = viewModel::onNavigateBack,
modifier = modifier
Expand All @@ -134,8 +130,8 @@ fun WooShippingEditAddressScreen(
@Composable
fun WooShippingEditAddressScreen(
editableAddress: EditableAddress,
loading: WooShippingEditOriginViewModel.LoadingState,
error: WooShippingEditOriginViewModel.EditAddressError?,
loading: WooShippingEditAddressViewModel.LoadingState,
error: WooShippingEditAddressViewModel.EditAddressError?,
shouldUseStatesInput: Boolean,
isCompanyExpanded: Boolean,
addressStatus: AddressStatus,
Expand All @@ -154,7 +150,7 @@ fun WooShippingEditAddressScreen(
onRawStateChange: (String) -> Unit,
onStateChange: () -> Unit,
onNormalizeAddress: (editableAddress: EditableAddress) -> Unit,
onUpdateOriginAddress: (editableAddress: EditableAddress) -> Unit,
onUpdateAddress: (editableAddress: EditableAddress) -> Unit,
onUpdateNormalizedOriginAddress: (selection: AddressValidationState.AddressSelection) -> Unit,
onNavigateBack: () -> Unit,
modifier: Modifier = Modifier
Expand Down Expand Up @@ -365,7 +361,7 @@ fun WooShippingEditAddressScreen(
editableAddress = editableAddress,
addressStatus = addressStatus,
onNormalizeAddress = onNormalizeAddress,
onUpdateOriginAddress = onUpdateOriginAddress,
onUpdateAddress = onUpdateAddress,
onClose = onNavigateBack,
modifier = Modifier
.fillMaxWidth()
Expand Down Expand Up @@ -435,7 +431,7 @@ fun WooShippingEditAddressScreen(
}
}
}
if (loading is WooShippingEditOriginViewModel.LoadingState.DisplayLoading) {
if (loading is WooShippingEditAddressViewModel.LoadingState.DisplayLoading) {
LoadingModal(
title = loading.title,
description = loading.message
Expand All @@ -449,7 +445,7 @@ internal fun AddressStatusSection(
editableAddress: EditableAddress,
addressStatus: AddressStatus,
onNormalizeAddress: (editableAddress: EditableAddress) -> Unit,
onUpdateOriginAddress: (editableAddress: EditableAddress) -> Unit,
onUpdateAddress: (editableAddress: EditableAddress) -> Unit,
onClose: () -> Unit,
modifier: Modifier = Modifier
) {
Expand Down Expand Up @@ -492,7 +488,7 @@ internal fun AddressStatusSection(
{}
}
AddressStatus.SAVE_CHANGES -> {
{ onUpdateOriginAddress(editableAddress) }
{ onUpdateAddress(editableAddress) }
}
}

Expand Down Expand Up @@ -714,7 +710,7 @@ private fun SelectAddressWithCustomSnackBar(
onAddressSelectionChange: (AddressValidationState.AddressSelection) -> Unit,
onUpdateNormalizedOriginAddress: (selection: AddressValidationState.AddressSelection) -> Unit,
onCloseAddressSelection: () -> Unit,
error: WooShippingEditOriginViewModel.EditAddressError?,
error: WooShippingEditAddressViewModel.EditAddressError?,
isBottomSheetSnackBarVisible: Boolean,
modalSheetState: SheetState,
modifier: Modifier = Modifier
Expand Down
Loading