Add ability to remove company address

This commit is contained in:
dominik-zeglen 2019-10-24 14:25:42 +02:00
parent 3c60782a1b
commit 9cb5c4cb7b
2 changed files with 23 additions and 6 deletions

View file

@ -63,7 +63,7 @@ const shopSettingsUpdate = gql`
mutation ShopSettingsUpdate( mutation ShopSettingsUpdate(
$shopDomainInput: SiteDomainInput! $shopDomainInput: SiteDomainInput!
$shopSettingsInput: ShopSettingsInput! $shopSettingsInput: ShopSettingsInput!
$addressInput: AddressInput! $addressInput: AddressInput
) { ) {
shopSettingsUpdate(input: $shopSettingsInput) { shopSettingsUpdate(input: $shopSettingsInput) {
errors { errors {

View file

@ -13,6 +13,7 @@ import SiteSettingsKeyDialog, {
SiteSettingsKeyDialogForm SiteSettingsKeyDialogForm
} from "../components/SiteSettingsKeyDialog"; } from "../components/SiteSettingsKeyDialog";
import SiteSettingsPage, { import SiteSettingsPage, {
SiteSettingsPageAddressFormData,
SiteSettingsPageFormData SiteSettingsPageFormData
} from "../components/SiteSettingsPage"; } from "../components/SiteSettingsPage";
import { import {
@ -124,10 +125,21 @@ export const SiteSettings: React.StatelessComponent<SiteSettingsProps> = ({
}); });
const handleUpdateShopSettings = ( const handleUpdateShopSettings = (
data: SiteSettingsPageFormData data: SiteSettingsPageFormData
) => ) => {
updateShopSettings({ const areAddressInputFieldsModified = ([
variables: { "city",
addressInput: { "companyName",
"country",
"countryArea",
"phone",
"postalCode",
"streetAddress1",
"streetAddress2"
] as Array<keyof SiteSettingsPageAddressFormData>)
.map(key => data[key])
.some(field => field !== "");
const addressInput = areAddressInputFieldsModified
? {
city: data.city, city: data.city,
companyName: data.companyName, companyName: data.companyName,
country: data.country, country: data.country,
@ -136,7 +148,11 @@ export const SiteSettings: React.StatelessComponent<SiteSettingsProps> = ({
postalCode: data.postalCode, postalCode: data.postalCode,
streetAddress1: data.streetAddress1, streetAddress1: data.streetAddress1,
streetAddress2: data.streetAddress2 streetAddress2: data.streetAddress2
}, }
: null;
updateShopSettings({
variables: {
addressInput,
shopDomainInput: { shopDomainInput: {
domain: data.domain, domain: data.domain,
name: data.name name: data.name
@ -150,6 +166,7 @@ export const SiteSettings: React.StatelessComponent<SiteSettingsProps> = ({
} }
} }
}); });
};
const formTransitionState = getMutationState( const formTransitionState = getMutationState(
updateShopSettingsOpts.called, updateShopSettingsOpts.called,