From 9cb5c4cb7b31d3842fd5e17378645798b7eb4451 Mon Sep 17 00:00:00 2001 From: dominik-zeglen Date: Thu, 24 Oct 2019 14:25:42 +0200 Subject: [PATCH] Add ability to remove company address --- src/siteSettings/mutations.ts | 2 +- src/siteSettings/views/index.tsx | 27 ++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/siteSettings/mutations.ts b/src/siteSettings/mutations.ts index 048217b7a..09f7ef0f0 100644 --- a/src/siteSettings/mutations.ts +++ b/src/siteSettings/mutations.ts @@ -63,7 +63,7 @@ const shopSettingsUpdate = gql` mutation ShopSettingsUpdate( $shopDomainInput: SiteDomainInput! $shopSettingsInput: ShopSettingsInput! - $addressInput: AddressInput! + $addressInput: AddressInput ) { shopSettingsUpdate(input: $shopSettingsInput) { errors { diff --git a/src/siteSettings/views/index.tsx b/src/siteSettings/views/index.tsx index ac57bf824..4ed3cfb05 100644 --- a/src/siteSettings/views/index.tsx +++ b/src/siteSettings/views/index.tsx @@ -13,6 +13,7 @@ import SiteSettingsKeyDialog, { SiteSettingsKeyDialogForm } from "../components/SiteSettingsKeyDialog"; import SiteSettingsPage, { + SiteSettingsPageAddressFormData, SiteSettingsPageFormData } from "../components/SiteSettingsPage"; import { @@ -124,10 +125,21 @@ export const SiteSettings: React.StatelessComponent = ({ }); const handleUpdateShopSettings = ( data: SiteSettingsPageFormData - ) => - updateShopSettings({ - variables: { - addressInput: { + ) => { + const areAddressInputFieldsModified = ([ + "city", + "companyName", + "country", + "countryArea", + "phone", + "postalCode", + "streetAddress1", + "streetAddress2" + ] as Array) + .map(key => data[key]) + .some(field => field !== ""); + const addressInput = areAddressInputFieldsModified + ? { city: data.city, companyName: data.companyName, country: data.country, @@ -136,7 +148,11 @@ export const SiteSettings: React.StatelessComponent = ({ postalCode: data.postalCode, streetAddress1: data.streetAddress1, streetAddress2: data.streetAddress2 - }, + } + : null; + updateShopSettings({ + variables: { + addressInput, shopDomainInput: { domain: data.domain, name: data.name @@ -150,6 +166,7 @@ export const SiteSettings: React.StatelessComponent = ({ } } }); + }; const formTransitionState = getMutationState( updateShopSettingsOpts.called,