From ef35e5149bad2e4373e9ecdc4b1261b2f81328e0 Mon Sep 17 00:00:00 2001 From: poulch Date: Wed, 14 Dec 2022 18:11:24 +0100 Subject: [PATCH] Fix strict null check in SiteSettings module (#2851) * Fix strict null check in SiteSettings * Improve urls --- .../components/SiteSettingsPage/SiteSettingsPage.tsx | 11 ++++++----- src/siteSettings/fixtures.ts | 8 ++++---- src/siteSettings/index.tsx | 3 +-- src/siteSettings/urls.ts | 2 +- src/siteSettings/views/index.tsx | 10 ++++++---- 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/siteSettings/components/SiteSettingsPage/SiteSettingsPage.tsx b/src/siteSettings/components/SiteSettingsPage/SiteSettingsPage.tsx index 01d1ddbc0..fff9fc324 100644 --- a/src/siteSettings/components/SiteSettingsPage/SiteSettingsPage.tsx +++ b/src/siteSettings/components/SiteSettingsPage/SiteSettingsPage.tsx @@ -45,7 +45,7 @@ export interface SiteSettingsPageFormData export interface SiteSettingsPageProps { disabled: boolean; errors: ShopErrorFragment[]; - shop: SiteSettingsQuery["shop"]; + shop?: SiteSettingsQuery["shop"]; saveButtonBarState: ConfirmButtonTransitionState; onSubmit: (data: SiteSettingsPageFormData) => SubmitPromise; } @@ -107,10 +107,11 @@ const SiteSettingsPage: React.FC = props => { const initialForm: SiteSettingsPageFormData = { ...initialFormAddress, description: shop?.description || "", - reserveStockDurationAnonymousUser: shop?.reserveStockDurationAnonymousUser, + reserveStockDurationAnonymousUser: + shop?.reserveStockDurationAnonymousUser ?? 0, reserveStockDurationAuthenticatedUser: - shop?.reserveStockDurationAuthenticatedUser, - limitQuantityPerCheckout: shop?.limitQuantityPerCheckout, + shop?.reserveStockDurationAuthenticatedUser ?? 0, + limitQuantityPerCheckout: shop?.limitQuantityPerCheckout ?? 0, }; return ( @@ -179,7 +180,7 @@ const SiteSettingsPage: React.FC = props => { navigate(configurationMenuUrl)} onSubmit={submit} /> diff --git a/src/siteSettings/fixtures.ts b/src/siteSettings/fixtures.ts index 21dabe0de..78441071a 100644 --- a/src/siteSettings/fixtures.ts +++ b/src/siteSettings/fixtures.ts @@ -12,14 +12,14 @@ export const shop: SiteSettingsQuery["shop"] = { code: "UA", country: "United Arab Emirates", }, - countryArea: null, - firstName: null, + countryArea: "", + firstName: "", id: "1", - lastName: null, + lastName: "", phone: "+41 876-373-9137", postalCode: "89880-6342", streetAddress1: "01419 Bernhard Plain", - streetAddress2: null, + streetAddress2: "s", }, countries: [ { diff --git a/src/siteSettings/index.tsx b/src/siteSettings/index.tsx index 195e46012..134313ba4 100644 --- a/src/siteSettings/index.tsx +++ b/src/siteSettings/index.tsx @@ -6,8 +6,7 @@ import { siteSettingsPath, SiteSettingsUrlQueryParams } from "./urls"; import SiteSettingsComponent from "./views/"; const SiteSettings: React.FC> = ({ location }) => { - const qs = parseQs(location.search.substr(1)); - const params: SiteSettingsUrlQueryParams = qs; + const params: SiteSettingsUrlQueryParams = parseQs(location.search.slice(1)); return ; }; diff --git a/src/siteSettings/urls.ts b/src/siteSettings/urls.ts index 1922e2aeb..3bd3f40c7 100644 --- a/src/siteSettings/urls.ts +++ b/src/siteSettings/urls.ts @@ -8,4 +8,4 @@ export const siteSettingsPath = siteSettingsSection; export type SiteSettingsUrlDialog = "add-key"; export type SiteSettingsUrlQueryParams = Dialog; export const siteSettingsUrl = (params?: SiteSettingsUrlQueryParams) => - siteSettingsPath + "?" + stringifyQs(params); + `${siteSettingsPath}?${stringifyQs(params)}`; diff --git a/src/siteSettings/views/index.tsx b/src/siteSettings/views/index.tsx index ca668078a..f58f06731 100644 --- a/src/siteSettings/views/index.tsx +++ b/src/siteSettings/views/index.tsx @@ -34,8 +34,10 @@ export const SiteSettings: React.FC = () => { ] = useShopSettingsUpdateMutation({ onCompleted: data => { if ( - [...data.shopAddressUpdate.errors, ...data.shopSettingsUpdate.errors] - .length === 0 + [ + ...(data?.shopAddressUpdate?.errors || []), + ...(data?.shopSettingsUpdate?.errors || []), + ].length === 0 ) { notify({ status: "success", @@ -46,8 +48,8 @@ export const SiteSettings: React.FC = () => { }); const errors = [ - ...(updateShopSettingsOpts.data?.shopSettingsUpdate.errors || []), - ...(updateShopSettingsOpts.data?.shopAddressUpdate.errors || []), + ...(updateShopSettingsOpts.data?.shopSettingsUpdate?.errors || []), + ...(updateShopSettingsOpts.data?.shopAddressUpdate?.errors || []), ]; const loading = siteSettings.loading || updateShopSettingsOpts.loading;