From 261f80ee4f8e128ba5cfeb0d308adb5a865e2375 Mon Sep 17 00:00:00 2001 From: dominik-zeglen Date: Mon, 21 Oct 2019 16:14:28 +0200 Subject: [PATCH] Add mailing configuration --- schema.graphql | 2 ++ .../SiteSettingsMailing.tsx | 18 ++++++++++-------- .../SiteSettingsPage/SiteSettingsPage.tsx | 14 ++++++++++---- src/siteSettings/queries.ts | 3 +++ src/siteSettings/types/AuthorizationKeyAdd.ts | 3 +++ .../types/AuthorizationKeyDelete.ts | 3 +++ src/siteSettings/types/ShopFragment.ts | 3 +++ src/siteSettings/types/ShopSettingsUpdate.ts | 3 +++ src/siteSettings/types/SiteSettings.ts | 3 +++ src/siteSettings/views/index.tsx | 4 ++++ .../stories/siteSettings/SiteSettingsPage.tsx | 9 ++++++++- src/types/globalTypes.ts | 4 ++++ 12 files changed, 56 insertions(+), 13 deletions(-) diff --git a/schema.graphql b/schema.graphql index a845ef15b..a2c53e4fc 100644 --- a/schema.graphql +++ b/schema.graphql @@ -3767,6 +3767,7 @@ type Shop { defaultDigitalMaxDownloads: Int defaultDigitalUrlValidDays: Int companyAddress: Address + customerSetPasswordUrl: String } type ShopAddressUpdate { @@ -3816,6 +3817,7 @@ input ShopSettingsInput { defaultDigitalUrlValidDays: Int defaultMailSenderName: String defaultMailSenderAddress: String + customerSetPasswordUrl: String } type ShopSettingsTranslate { diff --git a/src/siteSettings/components/SiteSettingsMailing/SiteSettingsMailing.tsx b/src/siteSettings/components/SiteSettingsMailing/SiteSettingsMailing.tsx index 3a619ed58..748c35b6d 100644 --- a/src/siteSettings/components/SiteSettingsMailing/SiteSettingsMailing.tsx +++ b/src/siteSettings/components/SiteSettingsMailing/SiteSettingsMailing.tsx @@ -15,12 +15,14 @@ import { FormErrors } from "@saleor/types"; export interface SiteSettingsMailingFormData { defaultMailSenderName: string; defaultMailSenderAddress: string; - passwordResetUrl: string; + customerSetPasswordUrl: string; } interface SiteSettingsMailingProps { data: SiteSettingsMailingFormData; errors: FormErrors< - "defaultMailSenderAddress" | "defaultMailSenderName" | "passwordResetUrl" + | "defaultMailSenderAddress" + | "defaultMailSenderName" + | "customerSetPasswordUrl" >; disabled: boolean; onChange: (event: React.ChangeEvent) => void; @@ -82,7 +84,7 @@ const SiteSettingsMailing: React.FC = props => { disabled={disabled} error={!!errors.defaultMailSenderName} fullWidth - name="defaultMailSenderAddress" + name="defaultMailSenderName" label={intl.formatMessage({ defaultMessage: "Mailing email sender" })} @@ -93,7 +95,7 @@ const SiteSettingsMailing: React.FC = props => { description: "email sender" }) } - value={data.defaultMailSenderAddress} + value={data.defaultMailSenderName} onChange={onChange} /> @@ -101,20 +103,20 @@ const SiteSettingsMailing: React.FC = props => { diff --git a/src/siteSettings/components/SiteSettingsPage/SiteSettingsPage.tsx b/src/siteSettings/components/SiteSettingsPage/SiteSettingsPage.tsx index 4f7d77524..cddd97e51 100644 --- a/src/siteSettings/components/SiteSettingsPage/SiteSettingsPage.tsx +++ b/src/siteSettings/components/SiteSettingsPage/SiteSettingsPage.tsx @@ -86,19 +86,25 @@ const SiteSettingsPage: React.FC = props => { maybe(() => shop.companyAddress.country.code, "") ); - const initialForm: SiteSettingsPageFormData = { + const initialFormAddress: SiteSettingsPageAddressFormData = { city: maybe(() => shop.companyAddress.city, ""), companyName: maybe(() => shop.companyAddress.companyName, ""), country: maybe(() => shop.companyAddress.country.code, ""), countryArea: maybe(() => shop.companyAddress.countryArea, ""), - description: maybe(() => shop.description, ""), - domain: maybe(() => shop.domain.host, ""), - name: maybe(() => shop.name, ""), phone: maybe(() => shop.companyAddress.phone, ""), postalCode: maybe(() => shop.companyAddress.postalCode, ""), streetAddress1: maybe(() => shop.companyAddress.streetAddress1, ""), streetAddress2: maybe(() => shop.companyAddress.streetAddress2, "") }; + const initialForm: SiteSettingsPageFormData = { + ...initialFormAddress, + customerSetPasswordUrl: maybe(() => shop.customerSetPasswordUrl, ""), + defaultMailSenderAddress: maybe(() => shop.defaultMailSenderAddress, ""), + defaultMailSenderName: maybe(() => shop.defaultMailSenderName, ""), + description: maybe(() => shop.description, ""), + domain: maybe(() => shop.domain.host, ""), + name: maybe(() => shop.name, "") + }; return (
= ({ name: data.name }, shopSettingsInput: { + customerSetPasswordUrl: data.customerSetPasswordUrl, + defaultMailSenderAddress: + data.defaultMailSenderAddress, + defaultMailSenderName: data.defaultMailSenderName, description: data.description } } diff --git a/src/storybook/stories/siteSettings/SiteSettingsPage.tsx b/src/storybook/stories/siteSettings/SiteSettingsPage.tsx index 66c3e62ee..51925caa0 100644 --- a/src/storybook/stories/siteSettings/SiteSettingsPage.tsx +++ b/src/storybook/stories/siteSettings/SiteSettingsPage.tsx @@ -29,6 +29,13 @@ storiesOf("Views / Site settings / Page", module) .add("form errors", () => ( formError(field))} + errors={[ + "description", + "domain", + "name", + "defaultMailSenderAddress", + "defaultMailSenderName", + "customerSetPasswordUrl" + ].map(field => formError(field))} /> )); diff --git a/src/types/globalTypes.ts b/src/types/globalTypes.ts index 029e1ff9d..e282a14af 100644 --- a/src/types/globalTypes.ts +++ b/src/types/globalTypes.ts @@ -299,6 +299,7 @@ export enum WebhookEventTypeEnum { CUSTOMER_CREATED = "CUSTOMER_CREATED", ORDER_CANCELLED = "ORDER_CANCELLED", ORDER_CREATED = "ORDER_CREATED", + ORDER_FULFILLED = "ORDER_FULFILLED", ORDER_FULLY_PAID = "ORDER_FULLY_PAID", ORDER_UPDATED = "ORDER_UPDATED", PRODUCT_CREATED = "PRODUCT_CREATED", @@ -748,6 +749,9 @@ export interface ShopSettingsInput { automaticFulfillmentDigitalProducts?: boolean | null; defaultDigitalMaxDownloads?: number | null; defaultDigitalUrlValidDays?: number | null; + defaultMailSenderName?: string | null; + defaultMailSenderAddress?: string | null; + customerSetPasswordUrl?: string | null; } export interface SiteDomainInput {