Skip to content

Commit

Permalink
Merge pull request #13633 from woocommerce/issue/12440-refactor-edit-…
Browse files Browse the repository at this point in the history
…address

Refactor edit address
  • Loading branch information
atorresveiga authored Mar 4, 2025
2 parents 45f6151 + 96f16b3 commit e211deb
Show file tree
Hide file tree
Showing 14 changed files with 179 additions and 116 deletions.
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 @@ -86,18 +86,14 @@ 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.components.RoundedBorderDropDownWithLabel
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 @@ -297,7 +293,7 @@ fun WooShippingEditAddressScreen(
label = stringResource(id = R.string.woo_shipping_label_state),
text = editableAddress.state.name,
modifier = Modifier
.padding(top = 8.dp)
.padding(top = 4.dp)
.weight(1f),
onClick = onStateChange
)
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 @@ -663,7 +659,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

0 comments on commit e211deb

Please sign in to comment.