{"version":3,"file":"static/chunks/pages/account/personal-details-6b3b87fa1e9fcb6a.js","mappings":"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","sources":["webpack://_N_E/?1b15","webpack://_N_E/./src/components/PersonalDetails/PersonalDetails.tsx","webpack://_N_E/./src/pages/account/personal-details.tsx","webpack://_N_E/./src/utils/formatData.ts"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/account/personal-details\",\n function () {\n return require(\"private-next-pages/account/personal-details.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/account/personal-details\"])\n });\n }\n ","import { useMutation } from '@apollo/client'\nimport {\n Address,\n Customer,\n FullNameValues,\n PhoneNumberValue,\n EmailAddressValue,\n} from '@interflora/ui-components/build/common/props'\nimport PersonalDetailsEdit from '@interflora/ui-components/build/components/PersonalDetails/PersonalDetails'\nimport { SiteContext } from '@interflora/ui-components/build/utils/common'\nimport {\n UpdateAddressInput,\n UpdateContactNumberInput,\n updateEmailAddressInput,\n UpdateFullNameInput,\n} from 'graphql/types'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { populateTemplateValues } from 'utils/components'\nimport { replaceNulls } from 'utils/formatData'\nimport { UPDATE_BILLING_ADDRESS, UPDATE_CONTACT_NUMBER, UPDATE_EMAIL_ADDRESS, UPDATE_NAME } from '../../graphql/queries'\nimport AnalyticsContext from 'context/AnalyticsContext'\ntype CustomerDetails = {\n firstName: string\n lastName: string\n email: string\n contactNumber: string\n address: Address\n}\n\nconst updateFullNameTemplate: UpdateFullNameInput = {\n firstName: '',\n lastName: '',\n}\n\nconst updateContactNumberTemplate: UpdateContactNumberInput = {\n contactNumber: '',\n}\n\nconst updateAddressTemplate: UpdateAddressInput = {\n addressLine1: '',\n addressLine2: '',\n addressLine3: '',\n city: '',\n county: '',\n postalCode: '',\n country: '',\n}\n\nconst updateEmailAddressTemplate: updateEmailAddressInput = {\n email: '',\n}\n\nconst PersonalDetails = () => {\n const { getCustomer } = useContext(SiteContext)\n const [customerDetails, setCustomerDetails] = useState()\n const [displayComponent, setDisplayComponent] = useState('PersonalDetails')\n const [successMessage, setSuccessMessage] = useState('')\n const analytics = useContext(AnalyticsContext)\n\n const processData = (data: Customer) => {\n const personalData = {\n ...replaceNulls(data),\n }\n setCustomerDetails({\n firstName: personalData.firstName,\n lastName: personalData.lastName,\n email: personalData.email,\n address: personalData.defaultBillingAddress,\n contactNumber: personalData.contactNumber,\n })\n }\n\n const [saveCustomerName] = useMutation(UPDATE_NAME)\n const [saveCustomerContactNumber] = useMutation(UPDATE_CONTACT_NUMBER)\n const [saveCustomerBillingAddress] = useMutation(UPDATE_BILLING_ADDRESS)\n const [saveCustomerEmailAddress] = useMutation(UPDATE_EMAIL_ADDRESS)\n\n const updateCustomerName = async (values: FullNameValues) => {\n try {\n setSuccessMessage('')\n const updateName = populateTemplateValues(values, updateFullNameTemplate)\n const updatedName = await saveCustomerName({ variables: { input: updateName } })\n processData(updatedName.data?.updateName)\n getCustomer.refetch()\n setDisplayComponent('PersonalDetails')\n setSuccessMessage('Name')\n } catch (error) {\n return { error }\n }\n }\n\n const updateCustomerContactNumber = async (values: PhoneNumberValue) => {\n try {\n setSuccessMessage('')\n const updateNumber = populateTemplateValues(values, updateContactNumberTemplate)\n const updatedContactNumber = await saveCustomerContactNumber({ variables: { input: updateNumber } })\n processData(updatedContactNumber.data?.updateContactNumber)\n getCustomer.refetch()\n setDisplayComponent('PersonalDetails')\n setSuccessMessage('Contact number')\n } catch (error) {\n return { error }\n }\n }\n const updateCustomerBillingAddress = async (values: Address) => {\n try {\n setSuccessMessage('')\n const updateAddress = populateTemplateValues(values, updateAddressTemplate)\n const updatedCustomerBillingAddress = await saveCustomerBillingAddress({\n variables: { input: { address: updateAddress, id: customerDetails.address.id } },\n })\n processData(updatedCustomerBillingAddress.data?.updateAddress)\n getCustomer.refetch()\n setDisplayComponent('PersonalDetails')\n setSuccessMessage('Address')\n } catch (error) {\n return { error }\n }\n }\n\n const updateCustomerEmailAddress = async (values: EmailAddressValue) => {\n try {\n setSuccessMessage('')\n const updateEmailAddress = populateTemplateValues(values, updateEmailAddressTemplate)\n const updatedCustomerEmailAddress = await saveCustomerEmailAddress({\n variables: { input: { email: updateEmailAddress.email.trim() } },\n })\n processData(updatedCustomerEmailAddress.data?.updateEmail)\n getCustomer.refetch()\n setDisplayComponent('PersonalDetails')\n setSuccessMessage('Email')\n } catch (error) {\n throw new Error('There was a problem updating your email, please try again.')\n }\n }\n\n useEffect(() => {\n getCustomer.data?.customer && processData(getCustomer.data?.customer)\n }, [getCustomer.data?.customer])\n const trackEnterManualAddressClick = (click_location: string) => {\n analytics.trackEnterManualAddressClick(click_location)\n }\n return getCustomer.loading || !customerDetails ? (\n

Loading

\n ) : (\n \n )\n}\n\nexport default PersonalDetails\n","import BreadcrumbBar from '@interflora/ui-components/build/components/BreadcrumbBar/BreadcrumbBar'\nimport MainContent from '@interflora/ui-components/build/components/MainContent/MainContent'\nimport PersonalDetails from 'components/PersonalDetails/PersonalDetails'\nimport { useRouter } from 'next/router'\nimport { getOutlineRenderGraph, OutlineRenderGraph } from 'utils/getRenderGraph'\nimport Page from '../../components/Page/Page'\nimport { renderComponents } from '../../utils/components'\n\nconst Index = (renderGraph: OutlineRenderGraph) => {\n const router = useRouter()\n const { page } = renderGraph\n return (\n router.replace('/sign-in')} disableCustomerCache>\n <>\n {renderComponents(page.components.header)}\n \n \n \n \n {renderComponents(page.components.footer)}\n \n \n )\n}\n\nexport default Index\n\nexport const getStaticProps = (ctx) =>\n getOutlineRenderGraph(ctx, 'DEFAULT', 'account/personal-details', {\n title: 'Personal Details',\n noIndex: true,\n noFollow: false,\n })\n","import { replacer } from '@interflora/ui-components/build/utils/common'\nconst LOG_FORMATTING = false\n\n/* Replace nulls with empty string throughout an object */\nexport const replaceNulls = (object: any) =>\n replacer(\n object,\n (key, value) => null === value,\n (key, value) => {\n LOG_FORMATTING && console.log('Replacing', key, value, 'with empty string')\n return ''\n }\n )\n\n/* Replace nulls with false throughout an object */\nexport const replaceNullsWithBoolean = (object: any, booleanValue = false) =>\n replacer(\n object,\n (key, value) => null === value,\n (key, value) => {\n LOG_FORMATTING && console.log('Replacing', key, value, 'with', booleanValue)\n return booleanValue\n }\n )\n"],"names":["window","__NEXT_P","push","__webpack_require__","updateFullNameTemplate","firstName","lastName","updateContactNumberTemplate","contactNumber","updateAddressTemplate","addressLine1","addressLine2","addressLine3","city","county","postalCode","country","updateEmailAddressTemplate","email","components_PersonalDetails_PersonalDetails","getCustomer","useContext","SiteContext","customerDetails","setCustomerDetails","useState","displayComponent","setDisplayComponent","successMessage","setSuccessMessage","analytics","AnalyticsContext","processData","personalData","replaceNulls","data","address","defaultBillingAddress","saveCustomerName","useMutation","UPDATE_NAME","saveCustomerContactNumber","UPDATE_CONTACT_NUMBER","saveCustomerBillingAddress","UPDATE_BILLING_ADDRESS","saveCustomerEmailAddress","UPDATE_EMAIL_ADDRESS","updateCustomerName","values","updatedName","updateName","populateTemplateValues","variables","input","refetch","error","updateCustomerContactNumber","updatedContactNumber","updateNumber","updateContactNumber","updateCustomerBillingAddress","updatedCustomerBillingAddress","updateAddress","id","updateCustomerEmailAddress","updatedCustomerEmailAddress","updateEmailAddress","trim","updateEmail","useEffect","customer","loading","jsx_runtime","jsx","h1","PersonalDetailsEdit","success","updateBillingAddress","trackEnterManualAddressClick","click_location","personal_details","router","useRouter","page","renderGraph","Page","onIsSignedOut","replace","disableCustomerCache","jsxs","Fragment","renderComponents","components","header","BreadcrumbBar","links","label","url","MainContent","PersonalDetails","footer","replacer","object","key","value","replaceNullsWithBoolean","booleanValue"],"sourceRoot":""}