{"version":3,"sources":["webpack:///./gql/mutation/edit-user-preferences.js","webpack:///./gql/mutation/edit-cover-photo.js","webpack:///./gql/mutation/upload-cover-photo.js","webpack:///./screens/settings/state.js","webpack:///./gql/query/network-identity-status.js","webpack:///./gql/mutation/edit-user-slug.js","webpack:///./gql/query/location.js","webpack:///./gql/query/preference.js","webpack:///./gql/query/privacy.js","webpack:///./gql/query/cover-photo.js","webpack:///./gql/query/personal-message.js","webpack:///./gql/mutation/remove-cover-photo.js","webpack:///./screens/shared/components/glamorous-link.js","webpack:///./screens/shared/components/lazy-load-image.js","webpack:///./screens/shared/components/share-with-friends.js","webpack:///./screens/shared/components/profile-view.js"],"names":["editProfileSettings","editCoverPhotoDetails","uploadCoverPhoto","PS_COVER_PHOTO_VERTICAL_PAN","SettingsState","pan","deltaPan","isDragging","isReviewPage","userHasCoverPhoto","clientData","userHasProfilePicture","imagePreviewUrl","isImageDataUrl","filename","shouldLoadPayPalMe","slugDetails","imageRef","personalMessageValue","setState","profile","personalizationSettings","coverPhotoUrl","welcomeNote","toggle","a","this","state","paypalmeSlugName","slugName","addLoader","client","request","accountUpgradeOrSwitchOnOrOff","isProfileStatusActive","profilePhotoUrl","userInfo","deactivateProfile","privacySettings","emailSearchEnabled","phoneSearchEnabled","removeLoader","activateProfile","enrollUserToNetworkIdentity","op","path","value","variables","editUserSettings","profileToggle","networkIdentityStatus","newUsername","newSlug","editUserSlug","slug","canEditUsername","displayAddress","location","userPayPalMeDetails","transactionType","type","undefined","coverPhotoVerticalPan","Boolean","editCoverPhoto","Math","abs","toString","file","saveToProfile","uploadedCoverPhotoUrl","coverPhotoEdit","newCoverPhotoUrl","newCoverPhotoVerticalPan","updateCoverPhotoStatus","fileSelectEvent","onSuccess","fileReader","FileReader","onload","onLoadEvent","url","target","result","options","mimeType","normalizeImage","normalizedUrl","userImagePreviewUrl","name","files","readAsDataURL","Container","ConditionalLink","props","to","propTypes","PropTypes","string","glamorousLink","glamorous","rootEl","displayName","forwardProps","Lazy","loaded","imageURL","cacheImage","Image","src","payload","render","Component","LazyImageTag","div","opacity","transition","backgroundSize","width","height","backgroundImage","LazyImage","css","containerStyles","PureComponent","overflow","backgroundColor","boxShadow","LazyLoader","Div","l10n","getContent","l10nSettings","isMobile","test","navigator","userAgent","ShareTitle","color","ShareYourLinkStyling","fontSize","lineHeight","display","textTransform","marginTop","padding","SVGParent","span","marginRight","cursor","transform","phone5PortraitMaxAndSmaller","SVGStyling","SVG","SpanText","position","left","TooltipCopied","isProfileReview","bottom","top","fontWeight","right","borderRadius","content","borderLeft","borderRight","marginLeft","borderBottom","trackShareLinks","linkName","trackLink","ShareYourLink","isCopied","e","preventDefault","slugInfo","sharing","shareURLByFacebook","locale","twitterShareLink","encodeURIComponent","shareByTwitter","shareByWhatsApp","shareURLByMessenger","window","href","setTimeout","showCopyText","strong","as","lang","style","text","onCopy","copyToClipboard","background","border","ref","input","_ref","readOnly","className","transitionName","transitionEnterTimeout","transitionLeaveTimeout","key","tabIndex","role","onKeyPress","click","svgString","svgImages","clipBoard","onClick","handleFBClick","facebook","handleMessengerClick","messenger","handleTwitterClick","twitter","isMarketkingFlow","paddingLeft","handleWhatsappClick","whatsapp","React","ProfileReviewStyling","margin","textAlign","myProfilePage","ProfileReviewInnerChild","MoreInfoAboutUserStyling","paddingBottom","WelcomeNoteStyling","overflowWrap","wordWrap","isCoverUploadPage","shouldShowMoreMessage","WebkitLineClamp","WebkitBoxOrient","maxHeight","NameAndSlugDetailLocation","marginBottom","paddingTop","NameAndSlugDetailMessage","showAmountInput","personalMessagePaddingBottomStyling","NextButtonStyling","ShowMoreDiv","AmountField","args","amount","amountUtils","currencyCode","currencySymbolMap","currencyDecimal","Object","assign","onChange","getFormattedValue","ProfileView","amountValue","initialAmount","amountCurrencyCode","initialCurrencyCode","isShowMore","borderTop","givenName","shouldShowMoreAboutUser","welcomeNoteLength","length","recipientSlugPage","moreInfo","arrowDown","arrowUp","handleShowMoreClick","showDottedLines","isUserLoggedIn","generateUrlLoggedInState","generateUrlLoggedOutState","isUserInHomepageTreatment","flow","locality","country","queryString","queryify","String","flowType","formattedAmount","host","PAYPAL_URL","isDev","isStage","origin","isProd","sendRoute","onboardDataRegularSignUp","JSON","stringify","intent","redirect_url","sendMoneyText","guestQueryString","env","recipientIdType","recipientId","onboardDataGuest","signUpRequest","method","onboardData","isUserInGuestTreatment","isCreateFlow","backgroundPosition","backgroundRepeat","aria-level","_unescape","handleAmountChange","data-pagename","data-pagename2","generateSendMoneyUrl","moreAboutUser","rel","toLowerCase","onReportClick","obj","keys","reduce","qs","push","join"],"mappings":"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","file":"ppme-grab~ppme-settings~ppme-slug.bundle.js","sourcesContent":["export const editProfileSettings = `\n mutation EditProfileSettings ($editUserSettings: [PatchOptions]!, $slugName: String!) {\n editProfileSettings (editSlugDetails: $editUserSettings, slug: $slugName) {\n isProfileStatusActive\n userInfo {\n displayAddress\n }\n privacySettings {\n emailSearchEnabled\n phoneSearchEnabled\n location\n }\n personalizationSettings {\n welcomeNote\n }\n }\n }\n`\n","export const editCoverPhotoDetails = `\n mutation EditProfileSettings ($editCoverPhoto: [PatchOptions]!, $slugName: String!) {\n editProfileSettings (editSlugDetails: $editCoverPhoto, slug: $slugName) {\n personalizationSettings {\n coverPhotoUrl\n coverPhotoVerticalPan\n }\n }\n }\n`\n","export const uploadCoverPhoto = `\n mutation UploadCoverPhoto ($filename: String!, $file: String!, $slug: String!, $saveToProfile: Boolean) {\n uploadCoverPhoto(filename: $filename, file: $file, slug: $slug, saveToProfile: $saveToProfile) {\n uploadedCoverPhotoUrl\n }\n}\n`\n","import { Container } from 'unstated'\nimport clientData from 'utils/client-data'\nimport _ from 'lodash'\nimport { activateProfile } from 'gql/mutation/activate-profile'\nimport { deactivateProfile } from 'gql/mutation/deactivate-profile'\nimport { editProfileSettings } from 'gql/mutation/edit-user-preferences'\nimport { editCoverPhotoDetails } from 'gql/mutation/edit-cover-photo'\nimport { removeCoverPhoto } from 'gql/mutation/remove-cover-photo'\nimport { locationQuery } from 'gql/query/location'\nimport { privacyQuery } from 'gql/query/privacy'\nimport { uploadCoverPhoto } from 'gql/mutation/upload-cover-photo'\nimport { editUserSlug } from 'gql/mutation/edit-user-slug'\nimport { personalMessageQuery } from 'gql/query/personal-message'\nimport { networkIdentityStatusQuery } from 'gql/query/network-identity-status'\nimport { coverPhotoQuery } from 'gql/query/cover-photo'\nimport { preferencesQuery } from 'gql/query/preference'\nimport { client } from 'utils/client'\nimport { addLoader, removeLoader } from 'utils/loader'\nimport { normalizeImage } from 'utils/image-utils'\n\nconst PS_COVER_PHOTO_VERTICAL_PAN =\n '/personalization_settings/cover_photo_vertical_pan'\n\nclass SettingsState extends Container {\n state = {\n pan: '50',\n deltaPan: '0',\n isDragging: false,\n isReviewPage: true,\n userHasCoverPhoto: !!_.get(\n clientData,\n 'slugDetails.userPayPalMeDetails.personalizationSettings.coverPhotoUrl',\n '',\n ),\n userHasProfilePicture:\n _.get(clientData, 'slugDetails.userInfo.profilePhotoUrl') !==\n '\"https://www.paypalobjects.com/p2p/personalProfileImage.jpg\"',\n imagePreviewUrl: _.get(\n clientData,\n 'slugDetails.userPayPalMeDetails.personalizationSettings.coverPhotoUrl',\n '',\n ),\n isImageDataUrl: false,\n filename: '',\n shouldLoadPayPalMe: false,\n slugDetails: _.get(clientData, 'slugDetails.userPayPalMeDetails', {}),\n imageRef: {},\n personalMessageValue: _.get(\n clientData,\n 'slugDetails.userPayPalMeDetails.personalizationSettings.welcomeNote',\n '',\n ),\n }\n\n getSlugDetails = slugDetails => {\n this.setState({\n slugDetails,\n })\n }\n\n updateProfile = profile => {\n this.setState({\n slugDetails: profile,\n userHasCoverPhoto: !!profile.personalizationSettings.coverPhotoUrl,\n personalMessageValue: profile.personalizationSettings.welcomeNote,\n imagePreviewUrl: profile.personalizationSettings.coverPhotoUrl,\n })\n }\n\n async accountUpgradeOrSwitchOnOrOff(toggle) {\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n const slugName = {\n slugName: paypalmeSlugName,\n }\n\n addLoader()\n await client.request(toggle, slugName)\n }\n\n async profileToggle(toggle) {\n await this.accountUpgradeOrSwitchOnOrOff(toggle)\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n isProfileStatusActive: !this.state.slugDetails.isProfileStatusActive,\n },\n })\n }\n\n updateProfilePhoto(profilePhotoUrl) {\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n profilePhotoUrl,\n },\n },\n })\n }\n\n async turnOff() {\n addLoader()\n\n const {\n deactivateProfile: {\n isProfileStatusActive = false,\n privacySettings: {\n emailSearchEnabled = false,\n phoneSearchEnabled = false,\n } = {},\n } = {},\n } = await client.request(deactivateProfile, {\n slugName: this.state.slugDetails.paypalmeSlugName,\n })\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n isProfileStatusActive,\n privacySettings: {\n ...this.state.slugDetails.privacySettings,\n emailSearchEnabled,\n phoneSearchEnabled,\n },\n },\n })\n\n removeLoader()\n }\n\n async turnOn() {\n addLoader()\n\n const {\n activateProfile: {\n isProfileStatusActive = false,\n privacySettings: {\n emailSearchEnabled = false,\n phoneSearchEnabled = false,\n } = {},\n } = {},\n } = await client.request(activateProfile, {\n slugName: this.state.slugDetails.paypalmeSlugName,\n })\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n isProfileStatusActive,\n privacySettings: {\n ...this.state.slugDetails.privacySettings,\n emailSearchEnabled,\n phoneSearchEnabled,\n },\n },\n })\n\n removeLoader()\n }\n\n async upgradeAccount() {\n const enrollUserToNetworkIdentity = [\n {\n op: 'replace',\n path: '/network_identity_status',\n value: 'OPTED_IN',\n },\n ]\n\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n const variables = {\n editUserSettings: enrollUserToNetworkIdentity,\n slugName: paypalmeSlugName,\n }\n\n addLoader()\n\n await client.request(editProfileSettings, variables)\n\n // TODO: should we do this?\n if (!this.state.slugDetails.isProfileStatusActive) {\n await this.profileToggle(activateProfile)\n }\n\n await client.request(networkIdentityStatusQuery)\n removeLoader()\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n isProfileStatusActive: true,\n networkIdentityStatus: 'OPTED_IN',\n },\n })\n }\n\n async editUsername(newUsername) {\n addLoader()\n\n try {\n const {\n editUserSlug: { slug: newSlug = '', canEditUsername = true } = {},\n } = await client.request(editUserSlug, {\n newSlug: newUsername,\n })\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n paypalmeSlugName: newSlug,\n canEditUsername,\n },\n })\n\n removeLoader()\n } catch (e) {\n removeLoader()\n\n throw e\n }\n }\n\n async editLocation(value) {\n addLoader()\n\n try {\n const {\n editProfileSettings: {\n userInfo: { displayAddress = '' } = {},\n privacySettings: { location = [] } = {},\n } = {},\n } = await client.request(editProfileSettings, {\n editUserSettings: {\n op: 'replace',\n path: '/privacy_settings/location',\n value,\n },\n slugName: this.state.slugDetails.paypalmeSlugName,\n })\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n displayAddress,\n },\n privacySettings: {\n ...this.state.slugDetails.privacySettings,\n location,\n },\n },\n })\n\n removeLoader()\n } catch (e) {\n removeLoader()\n\n throw e\n }\n }\n\n // TODO remove after 100% profiles ramp\n async editLocationPreference(variables) {\n addLoader()\n await client.request(editProfileSettings, variables)\n\n const {\n userPayPalMeDetails: {\n userInfo: { displayAddress },\n privacySettings: { location = [] } = {},\n } = {},\n } = await client.request(locationQuery)\n removeLoader()\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n displayAddress,\n },\n privacySettings: {\n ...this.state.slugDetails.privacySettings,\n location,\n },\n },\n })\n }\n\n async editUserPreferenceSettings(variables) {\n addLoader()\n await client.request(editProfileSettings, variables)\n\n const {\n userPayPalMeDetails: {\n personalizationSettings: { transactionType = 'PERSONAL' } = {},\n } = {},\n } = await client.request(preferencesQuery)\n removeLoader()\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n personalizationSettings: {\n ...this.state.slugDetails.personalizationSettings,\n transactionType,\n },\n },\n })\n }\n\n async editPrivacySettings(type, value) {\n addLoader()\n\n try {\n const {\n editProfileSettings: {\n isProfileStatusActive = false,\n privacySettings: {\n emailSearchEnabled = false,\n phoneSearchEnabled = false,\n } = {},\n } = {},\n } = await client.request(editProfileSettings, {\n editUserSettings: [\n {\n op: 'replace',\n path: `/privacy_settings/${type}_search_enabled`,\n value,\n },\n ],\n slugName: this.state.slugDetails.paypalmeSlugName,\n })\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n isProfileStatusActive,\n privacySettings: {\n ...this.state.slugDetails.privacySettings,\n emailSearchEnabled,\n phoneSearchEnabled,\n },\n },\n })\n\n removeLoader()\n } catch (e) {\n removeLoader()\n\n throw e\n }\n }\n\n // TODO remove once profiles is 100% ramped\n async editUserPrivacySettings(variables) {\n addLoader()\n await client.request(editProfileSettings, variables)\n const {\n userPayPalMeDetails: {\n privacySettings: {\n emailSearchEnabled = false,\n phoneSearchEnabled = false,\n } = {},\n } = {},\n } = await client.request(privacyQuery)\n removeLoader()\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n privacySettings: {\n ...this.state.slugDetails.privacySettings,\n emailSearchEnabled,\n phoneSearchEnabled,\n },\n },\n })\n\n return undefined\n }\n\n async updateCoverPhotoStatus() {\n const {\n userPayPalMeDetails: {\n personalizationSettings: {\n coverPhotoUrl = '',\n coverPhotoVerticalPan = '50',\n } = {},\n } = {},\n } = await client.request(coverPhotoQuery)\n\n this.setState({\n userHasCoverPhoto: Boolean(coverPhotoUrl),\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n },\n personalizationSettings: {\n ...this.state.slugDetails.personalizationSettings,\n coverPhotoUrl,\n coverPhotoVerticalPan,\n },\n },\n })\n }\n\n async updateCover() {\n const {\n pan = '50',\n filename = '',\n imagePreviewUrl = '',\n isImageDataUrl = false,\n slugDetails: {\n paypalmeSlugName = '',\n personalizationSettings: {\n coverPhotoUrl = '',\n coverPhotoVerticalPan = '50',\n } = {},\n } = {},\n } = this.state\n\n let editCoverPhoto = []\n\n addLoader()\n\n /**\n * if the user has not changed their photo\n * if pan has changed update the pan\n * else no updates are necessary\n * else the user has changed their photo\n * if changed to a predefined image update both photo and pan\n * else upload the photo and update the pan\n */\n if (coverPhotoUrl === imagePreviewUrl) {\n if (coverPhotoVerticalPan === pan) {\n removeLoader()\n\n return undefined\n } else {\n editCoverPhoto = [\n {\n op: 'replace',\n path: PS_COVER_PHOTO_VERTICAL_PAN,\n value: Math.abs(pan).toString(),\n },\n ]\n }\n } else {\n if (isImageDataUrl) {\n const variables = {\n filename,\n file: imagePreviewUrl,\n slug: paypalmeSlugName,\n saveToProfile: false,\n }\n\n // upload the new photo but do not save to profile yet\n const {\n uploadCoverPhoto: { uploadedCoverPhotoUrl } = {},\n } = await client.request(uploadCoverPhoto, variables)\n\n editCoverPhoto = [\n {\n op: 'replace',\n path: '/personalization_settings/cover_photo_url',\n value: uploadedCoverPhotoUrl,\n },\n {\n op: 'replace',\n path: PS_COVER_PHOTO_VERTICAL_PAN,\n value: Math.abs(pan).toString(),\n },\n ]\n } else {\n editCoverPhoto = [\n {\n op: 'replace',\n path: '/personalization_settings/cover_photo_url',\n value: imagePreviewUrl,\n },\n {\n op: 'replace',\n path: PS_COVER_PHOTO_VERTICAL_PAN,\n value: Math.abs(pan).toString(),\n },\n ]\n }\n }\n\n const coverPhotoEdit = {\n editCoverPhoto,\n slugName: paypalmeSlugName,\n }\n\n const {\n editProfileSettings: {\n personalizationSettings: {\n coverPhotoUrl: newCoverPhotoUrl = '',\n coverPhotoVerticalPan: newCoverPhotoVerticalPan = '50',\n } = {},\n } = {},\n } = await client.request(editCoverPhotoDetails, coverPhotoEdit)\n\n this.setState({\n userHasCoverPhoto: Boolean(newCoverPhotoUrl),\n slugDetails: {\n ...this.state.slugDetails,\n personalizationSettings: {\n ...this.state.slugDetails.personalizationSettings,\n coverPhotoUrl: newCoverPhotoUrl,\n coverPhotoVerticalPan: newCoverPhotoVerticalPan,\n },\n },\n })\n\n removeLoader()\n\n return undefined\n }\n\n async uploadCoverPhotoPreference({\n imagePreviewUrl,\n filename,\n pan,\n slugDetails,\n }) {\n const {\n slugDetails: {\n personalizationSettings: {\n coverPhotoUrl = '',\n coverPhotoVerticalPan = '50',\n } = {},\n } = {},\n } = this.state\n\n let editCoverPhoto = []\n\n addLoader()\n\n /**\n * if user hasn't changed either cover photo url or pan then don't call any api\n * and just return back to settings page (this use case will only happen during edit photo)\n * second case is when user has changed or added the photo then update both pan and image\n * third case is when only pan is updated but not photo then just update the pan\n */\n if (coverPhotoUrl === imagePreviewUrl && coverPhotoVerticalPan === pan) {\n removeLoader()\n return undefined\n } else if (coverPhotoUrl !== imagePreviewUrl) {\n const variables = {\n filename,\n file: imagePreviewUrl,\n slug: slugDetails.paypalmeSlugName,\n }\n\n // upload the new photo\n await client.request(uploadCoverPhoto, variables)\n\n editCoverPhoto = [\n {\n op: 'replace',\n path: PS_COVER_PHOTO_VERTICAL_PAN,\n value: Math.abs(pan).toString(),\n },\n ]\n } else if (\n coverPhotoUrl === imagePreviewUrl &&\n coverPhotoVerticalPan !== pan\n ) {\n editCoverPhoto = [\n {\n op: 'replace',\n path: PS_COVER_PHOTO_VERTICAL_PAN,\n value: Math.abs(pan).toString(),\n },\n ]\n }\n\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n const coverPhotoEdit = {\n editCoverPhoto,\n slugName: paypalmeSlugName,\n }\n\n await client.request(editCoverPhotoDetails, coverPhotoEdit)\n\n await this.updateCoverPhotoStatus()\n\n removeLoader()\n\n // make flow happy!\n return undefined\n }\n\n pan = (pan, deltaPan = '0', isDragging = false) => {\n this.setState({ pan, deltaPan, isDragging })\n }\n\n reviewPage = isReviewPage => {\n this.setState({\n isReviewPage,\n })\n }\n\n userImagePreviewUrl = (imagePreviewUrl, filename, isImageDataUrl = false) => {\n this.setState({\n imagePreviewUrl,\n filename,\n isImageDataUrl,\n })\n }\n\n imageReference = imageRef => {\n this.setState({\n imageRef,\n })\n }\n\n personalMessage(personalMessageValue) {\n this.setState({\n personalMessageValue,\n })\n }\n\n async editAbout(value) {\n addLoader()\n\n try {\n const {\n editProfileSettings: {\n personalizationSettings: { welcomeNote = '' } = {},\n } = {},\n } = await client.request(editProfileSettings, {\n editUserSettings: [\n {\n op: 'replace',\n path: '/personalization_settings/welcome_note',\n value: value,\n },\n ],\n slugName: this.state.slugDetails.paypalmeSlugName,\n })\n\n this.setState({\n personalMessageValue: welcomeNote,\n slugDetails: {\n ...this.state.slugDetails,\n personalizationSettings: {\n ...this.state.slugDetails.personalizationSettings,\n welcomeNote,\n },\n },\n })\n\n removeLoader()\n } catch (e) {\n removeLoader()\n\n throw e\n }\n }\n\n async editPersonalMessage() {\n const {\n slugDetails: {\n personalizationSettings: { welcomeNote: currentWelcomeNote = '' } = {},\n } = {},\n } = this.state\n\n if (currentWelcomeNote === this.state.personalMessageValue) {\n return undefined\n }\n\n const editUserSettings = [\n {\n op: 'replace',\n path: '/personalization_settings/welcome_note',\n value: this.state.personalMessageValue || '',\n },\n ]\n\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n const variables = {\n editUserSettings,\n slugName: paypalmeSlugName,\n }\n\n addLoader()\n\n await client.request(editProfileSettings, variables)\n\n const {\n userPayPalMeDetails: {\n personalizationSettings: { welcomeNote = '' } = {},\n } = {},\n } = await client.request(personalMessageQuery)\n removeLoader()\n\n this.setState({\n slugDetails: {\n ...this.state.slugDetails,\n userInfo: {\n ...this.state.slugDetails.userInfo,\n },\n personalizationSettings: {\n ...this.state.slugDetails.personalizationSettings,\n welcomeNote,\n },\n },\n })\n\n return undefined\n }\n\n async removeCoverPhoto() {\n addLoader()\n\n const { slugDetails: { paypalmeSlugName = '' } = {} } = this.state\n\n await client.request(removeCoverPhoto, { slugName: paypalmeSlugName })\n\n await this.updateCoverPhotoStatus()\n\n removeLoader()\n }\n\n loadImage(fileSelectEvent, onSuccess) {\n addLoader()\n const fileReader = new FileReader()\n let file\n fileReader.onload = onLoadEvent => {\n const url = onLoadEvent.target.result\n const options = { mimeType: file.type }\n\n // options.normalizeImageSize = true\n normalizeImage(url, 1600, 1600, options, normalizedUrl => {\n this.userImagePreviewUrl(normalizedUrl, file && file.name, true)\n removeLoader()\n\n if (onSuccess) {\n onSuccess()\n }\n })\n }\n\n file = fileSelectEvent.target.files[0]\n\n if (file) {\n fileReader.readAsDataURL(file)\n }\n }\n}\n\nexport default SettingsState\n","export const networkIdentityStatusQuery = `\n query {\n userPayPalMeDetails {\n isProfileStatusActive\n networkIdentityStatus\n }\n }\n`\n","export const editUserSlug = `\n mutation EditUserSlug ($newSlug: String!) {\n editUserSlug (newSlug: $newSlug) {\n slug\n canEditUsername\n }\n }\n`\n","export const locationQuery = `\n query {\n userPayPalMeDetails {\n userInfo {\n displayAddress\n }\n privacySettings {\n location\n }\n }\n }\n`\n","export const preferencesQuery = `\n query {\n userPayPalMeDetails {\n personalizationSettings {\n transactionType\n }\n }\n }\n`\n","export const privacyQuery = `\n query {\n userPayPalMeDetails {\n privacySettings {\n emailSearchEnabled\n phoneSearchEnabled\n }\n }\n }\n`\n","export const coverPhotoQuery = `\n query {\n userPayPalMeDetails {\n personalizationSettings {\n coverPhotoUrl\n coverPhotoVerticalPan\n }\n }\n }\n`\n","export const personalMessageQuery = `\n query {\n userPayPalMeDetails {\n personalizationSettings {\n welcomeNote\n }\n }\n }\n`\n","export const removeCoverPhoto = `\n mutation RemoveCoverPhoto($slugName: String!) {\n removeCoverPhoto(slug: $slugName) {\n isSuccess\n }\n}`\n","// @flow\n/* eslint consumerweb/require-pagename:0 */\n// This allows us to make styled React components that can\n// either use or based on whether they\n// provide a `to` prop.\nimport PropTypes from 'prop-types'\n\nimport React from 'react'\nimport { Link } from 'react-router-dom'\nimport glamorous from 'glamorous'\n\n// this creates a glamorousComponentFactory\n// for the react-router Link component\n// with all the configuration needed\nfunction ConditionalLink(props) {\n if (props.to) {\n return \n }\n return \n}\nConditionalLink.propTypes = {\n to: PropTypes.string,\n}\n\nconst glamorousLink = glamorous(ConditionalLink, {\n rootEl: 'a',\n displayName: 'glamorous(RouterLink)',\n forwardProps: [\n 'to',\n 'query',\n 'hash',\n 'state',\n 'activeClassName',\n 'activeStyle',\n 'onlyActiveOnIndex',\n ],\n})\n\nexport { glamorousLink }\n","// @flow\n\nimport React, { PureComponent, Component } from 'react'\nimport glamorous from 'glamorous'\n\ntype LazyProps = {\n imageURL: string,\n render: ({ loaded: boolean, imageURL: string }) => React$Element,\n}\n\ntype LazyState = {\n loaded: boolean,\n}\n\nexport class Lazy extends Component {\n state = {\n loaded: false,\n }\n\n componentDidMount() {\n if (!this.state.loaded) {\n if (this.props.imageURL) {\n const cacheImage = new Image()\n cacheImage.onload = () => {\n this.setState({\n loaded: true,\n })\n }\n cacheImage.src = this.props.imageURL\n }\n }\n }\n\n render() {\n const payload = { loaded: this.state.loaded, imageURL: this.props.imageURL }\n return this.props.render(payload)\n }\n}\n\nconst LazyImageTag = glamorous.div(\n {\n opacity: 0,\n transition: 'opacity 0.3s',\n backgroundSize: 'cover',\n },\n ({ loaded, imageURL }) =>\n loaded\n ? {\n width: '100%',\n height: '100%',\n backgroundImage: `url('${imageURL}')`,\n opacity: 1,\n }\n : null,\n)\n\ntype LazyImageProps = {\n imageURL: string,\n loaded: boolean,\n containerStyles?: {},\n}\n\nclass LazyImage extends PureComponent {\n render() {\n return (\n \n )\n }\n}\n\ntype LazyLoaderProps = {\n imageURL: string,\n containerStyles?: {},\n}\n\nconst containerStyles = {\n overflow: 'hidden',\n backgroundColor: 'white',\n width: 100,\n height: 100,\n boxShadow: '8px 14px 38px rgba(39,44,49,.06), 1px 3px 8px rgba(39,44,49,.03)',\n}\n\nexport default class LazyLoader extends Component {\n static defaultProps = {\n containerStyles: {},\n }\n\n render() {\n return (\n {\n if (!imageURL) {\n return null\n }\n return (\n \n \n \n )\n }}\n />\n )\n }\n}\n","// @flow\n\nimport React, { Fragment } from 'react'\nimport glamorous from 'glamorous'\nimport { css } from 'glamor'\nimport getContent from 'pp-react-l10n'\nimport { BodyText, grey700 } from '@paypalcorp/pp-react'\n\nimport { svgImages } from 'components/index'\nimport sharing from 'consumerweb-sharing'\nimport CopyToClipboard from 'react-copy-to-clipboard'\nimport { CSSTransitionGroup } from 'react-transition-group'\nimport SVG from 'components/svg-logo'\nimport { trackLink } from 'lib/analytics'\n\nimport { phone5PortraitMaxAndSmaller } from 'lib/styles/media-queries'\n\nconst l10n = getContent('pages/shared')\nconst l10nSettings = getContent('pages/settings')\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent,\n)\n\ntype Props = {\n slugInfo: { slugDetails: SlugDetails },\n showCopyText?: boolean,\n isMarketkingFlow?: boolean,\n isProfileReview?: boolean,\n locale?: string,\n}\n\nconst ShareTitle = glamorous.div({ color: grey700 })\nconst ShareYourLinkStyling = glamorous.div({\n color: '#6c7378',\n fontSize: '13px',\n lineHeight: '1.38',\n width: '80%',\n display: 'inline-block',\n textTransform: 'uppercase',\n marginTop: 22,\n padding: 0,\n})\n\nconst SVGParent = glamorous.span({\n display: 'inline-block',\n width: '60px',\n marginRight: '20px',\n cursor: 'pointer',\n transition: 'all .2s ease-in-out',\n ':hover': {\n transform: 'scale(1.1)',\n },\n '@media (max-width: 880px)': {\n transform: 'scale(0.95)',\n marginRight: '10px',\n },\n [phone5PortraitMaxAndSmaller]: {\n transform: 'scale(0.9)',\n marginRight: 0,\n },\n})\n\nconst SVGStyling = glamorous(SVG, {\n forwardProps: ['svgString'],\n rootEl: 'span',\n})({\n padding: '0 20px',\n [phone5PortraitMaxAndSmaller]: {\n padding: 0,\n },\n})\n\nconst SpanText = glamorous.span({\n display: 'inline-table',\n fontSize: '13px',\n color: '#ababab',\n position: 'relative',\n left: '10px',\n [phone5PortraitMaxAndSmaller]: {\n left: 0,\n },\n})\n\nconst TooltipCopied = glamorous.span(({ isProfileReview = false }) => ({\n padding: isProfileReview ? '0.25rem 0.5rem' : '4px',\n position: 'absolute',\n bottom: isProfileReview ? '-2.75rem' : '0',\n ...(!isProfileReview && { top: '10px' }),\n ...(isProfileReview && { fontWeight: 500 }),\n ...(isProfileReview ? { left: '0.5rem' } : { right: '75px' }),\n backgroundColor: '#e1e7eb',\n color: 'black',\n ...(!isProfileReview && { width: '66px' }),\n ...(!isProfileReview && { borderRadius: '2px' }),\n ...(!isProfileReview && { height: '30px' }),\n ':before': {\n content: '\"\"',\n position: 'absolute',\n width: 0,\n height: 0,\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n marginLeft: '5px',\n borderBottom: '6px solid #e1e7eb',\n top: '-6px',\n },\n\n '&.tooltip-enter': {\n opacity: 0.01,\n },\n\n '&.tooltip-enter.tooltip-enter-active': {\n opacity: '1',\n transition: 'opacity 300ms ease-in',\n },\n\n '&.tooltip-leave.tooltip-leave-active': {\n opacity: 0.01,\n transition: 'opacity 300ms ease-in',\n },\n}))\n\nconst trackShareLinks = linkName =>\n trackLink(linkName, 'main:ppme:profile', 'main:ppme:profile:::', 'link')\n\ntype State = {\n isCopied: boolean,\n}\n\nclass ShareYourLink extends React.Component {\n _ref: ?HTMLElement = null\n\n static defaultProps = {\n isProfileReview: false,\n }\n\n state = {\n isCopied: false,\n }\n handleFBClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n trackShareLinks('facebook')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n sharing.shareURLByFacebook(\n `https://paypal.me/${paypalmeSlugName}?locale.x=${this.props.locale}`,\n 575,\n 400,\n )\n }\n\n handleTwitterClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n trackShareLinks('twitter')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n const twitterShareLink = `${l10n(\n 'share.twitter',\n )} https://paypal.me/${encodeURIComponent(paypalmeSlugName)}?locale.x=${\n this.props.locale\n }`\n sharing.shareByTwitter(twitterShareLink, 575, 400)\n }\n\n handleWhatsappClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n trackShareLinks('whatsapp')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n sharing.shareByWhatsApp(\n `https://paypal.me/${encodeURIComponent(paypalmeSlugName)}?locale.x=${\n this.props.locale\n }`,\n 575,\n 400,\n )\n }\n\n handleMessengerClick = (e: SyntheticEvent) => {\n e.preventDefault()\n\n trackShareLinks('messenger')\n\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n sharing.shareURLByMessenger(\n `https://paypal.me/${encodeURIComponent(paypalmeSlugName)}?locale.x=${\n this.props.locale\n }`,\n '321983581337375',\n window.location.href,\n )\n }\n\n copyToClipboard() {\n trackShareLinks('copylink')\n\n this.setState({ isCopied: true })\n setTimeout(() => {\n this.setState({ isCopied: false })\n }, 1000)\n }\n\n render() {\n const {\n slugInfo: { slugDetails: { paypalmeSlugName = '' } = {} } = {},\n } = this.props\n\n return (\n \n {!this.props.showCopyText &&\n (this.props.isProfileReview ? (\n \n {l10n('header.share')}\n \n ) : (\n \n {l10n('header.shareyourlink')}\n \n ))}\n\n {this.props.showCopyText && (\n \n {\n this.copyToClipboard()\n }}\n >\n \n (this._ref = input)}\n value={`paypal.me/${paypalmeSlugName}`}\n readOnly={true}\n />\n \n {l10n('button.copy')}\n \n \n {this.state.isCopied && (\n \n {l10n('msg.copied')}\n \n )}\n \n \n \n \n )}\n\n \n {!this.props.showCopyText && (\n {\n this.copyToClipboard()\n }}\n tabIndex=\"0\"\n role=\"button\"\n >\n \n e.key === 'Enter' && this._ref && this._ref.click()\n }\n ref={input => (this._ref = input)}\n >\n \n \n {l10nSettings('share.copy')}\n \n \n \n )}\n \n \n \n {l10nSettings('share.facebook')}\n \n \n \n \n \n {l10nSettings('share.messenger')}\n \n \n \n \n \n {l10nSettings('share.twitter')}\n \n \n {this.props.isMarketkingFlow && isMobile && (\n \n \n \n {l10nSettings('share.whatsapp')}\n \n \n )}\n \n \n {this.state.isCopied && !this.props.showCopyText && (\n \n {l10n('msg.copied')}\n \n )}\n \n \n )\n }\n}\n\nexport default ShareYourLink\n","// @flow\n\nimport React, { Component, Fragment } from 'react'\nimport glamorous from 'glamorous'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport getContent from 'pp-react-l10n'\nimport PPAmountField from 'pp-amount-field/basic/v3'\nimport clientData from 'utils/client-data'\nimport LazyLoader from 'components/lazy-load-image'\nimport ShareYourLink from 'components/share-with-friends'\nimport { glamorousLink } from 'components/glamorous-link'\nimport * as amountUtils from '../amount-utils'\nimport _ from 'lodash'\nimport _unescape from 'lodash/unescape'\nimport { svgImages } from 'components/index'\nimport SVG from 'components/svg-logo'\nimport { trackLink } from 'lib/analytics'\nimport { PAYPAL_URL } from '../../../utils/constants'\n\nconst l10n = getContent('pages/shared')\nconst DURATION = 300\n\nconst ProfileReviewStyling = glamorous.div(props => ({\n backgroundColor: props.backgroundColor ? props.backgroundColor : '#f4f6f9',\n margin: '0 auto',\n textAlign: 'center',\n boxShadow: !props.myProfilePage\n ? '0 2px 2px 0 rgba(139, 139, 139, 0.5)'\n : null,\n padding: props.userHasCoverPhoto ? '0' : '36px 0 31px 0',\n position: 'relative',\n top: props.userHasCoverPhoto ? '-45px' : 'auto',\n}))\n\nconst ProfileReviewInnerChild = glamorous.div(props => ({\n position: 'relative',\n top: props.userHasCoverPhoto ? '-45px' : 'auto',\n display: 'inline',\n}))\n\nconst MoreInfoAboutUserStyling = glamorous.div({\n color: '#6c7378',\n fontSize: '13px',\n lineHeight: '1.38',\n width: '85%',\n display: 'inline-block', // NOSONAR\n paddingBottom: '6px',\n textTransform: 'uppercase',\n})\n\nconst WelcomeNoteStyling = glamorous.div(\n {\n fontSize: '15px',\n lineHeight: '1.6',\n color: '#2c2e2f',\n textAlign: 'center',\n width: '95%',\n margin: '0 auto',\n overflowWrap: 'break-word',\n wordWrap: 'break-word',\n position: 'relative',\n },\n ({ isReviewPage, isCoverUploadPage, shouldShowMoreMessage }) =>\n (isReviewPage || isCoverUploadPage) && !shouldShowMoreMessage\n ? {\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n maxHeight: '71px',\n }\n : null,\n)\n\nconst NameAndSlugDetailLocation = glamorous.div({\n marginBottom: '4px',\n paddingTop: 12,\n paddingBottom: 6,\n margin: 0,\n fontSize: 20,\n color: '#2c2e2f',\n})\n\nconst NameAndSlugDetailMessage = glamorous.div(props => ({\n paddingBottom: props.showAmountInput\n ? 0\n : props.personalMessagePaddingBottomStyling,\n fontSize: 15,\n color: '#2c2e2f',\n}))\n\nconst NextButtonStyling = glamorousLink(\n {\n marginBottom: 40,\n width: '70% !important',\n '@media (min-width: 540px) and (max-width: 690px)': {\n width: '50% !important',\n },\n },\n 'vx_btn vx_btn-block',\n)\n\nconst ShowMoreDiv = glamorous.div(props => ({\n color: '#0070ba',\n fontSize: 14,\n fontWeight: 500,\n lineHeight: 1.43,\n cursor: 'pointer',\n padding: '8.5px 0 0 0',\n display: props.shouldShowMoreMessage ? 'none' : 'inline-block',\n}))\n\nconst SVGStyling = glamorous(SVG, {\n forwardProps: ['svgString'],\n rootEl: 'span',\n})({\n padding: '0 5px',\n cursor: 'pointer',\n})\n\ntype AmountFieldProps = {\n onChange: (value: string, currencyCode: string) => void,\n currencyCode: string,\n value: string,\n}\n\nclass AmountField extends React.Component {\n currencySymbolMap: CurrencySymbolMap\n currencyDecimal: CurrencyDecimal\n constructor(...args) {\n super(...args)\n const {\n currencySymbolMap,\n currencyDecimal,\n } = amountUtils.getAmountFieldInfo()\n Object.assign(this, {\n currencySymbolMap,\n currencyDecimal,\n })\n }\n getFormattedValue = amount => {\n return amountUtils.getFormattedValue({\n amount,\n currencyCode: this.props.currencyCode,\n })\n }\n render() {\n const { currencyCode, value } = this.props\n return (\n \n )\n }\n}\n\ntype ProfileViewProps = {\n slugInfo: { slugDetails: SlugDetails },\n initialAmount?: string,\n initialCurrencyCode?: string,\n isReviewPage?: boolean,\n userHasCoverPhoto: boolean,\n backgroundColor?: string,\n showAmountInput?: boolean,\n myProfilePage?: boolean,\n isCoverUploadPage?: boolean,\n isUserLoggedIn?: boolean,\n isUserInGuestTreatment?: boolean,\n isUserInHomepageTreatment?: boolean,\n isCreateFlow?: boolean,\n personalMessagePaddingBottomStyling: number,\n recipientSlugPage?: boolean,\n isDev: boolean,\n isProd: boolean,\n isStage: boolean,\n}\n\ntype ProfileViewState = {\n amountValue: string,\n amountCurrencyCode: string,\n userHasProfilePicture: boolean,\n shouldShowMoreMessage: boolean,\n}\n\nclass ProfileView extends Component {\n static defaultProps = {\n isUserLoggedIn: clientData.isUserLoggedIn,\n isUserInGuestTreatment: clientData.isUserInGuestTreatment,\n isUserInHomepageTreatment: clientData.isUserInHomepageTreatment,\n isStage: clientData.isStage,\n isDev: clientData.isDev,\n isProd: clientData.isProd,\n }\n\n state = {\n amountValue: this.props.initialAmount,\n amountCurrencyCode: this.props.initialCurrencyCode,\n userHasProfilePicture:\n _.get(this, 'props.slugInfo.slugDetails.userInfo.profilePhotoUrl', '') !==\n 'https://www.paypalobjects.com/p2p/personalProfileImage.jpg',\n shouldShowMoreMessage: false,\n isShowMore: true,\n }\n\n handleAmountChange = (amountValue: string, amountCurrencyCode: string) => {\n this.setState({ amountValue, amountCurrencyCode })\n }\n\n showDottedLines = () => {\n return (\n \n {this.props.myProfilePage ? (\n \n ) : null}\n \n )\n }\n\n handleShowMoreClick = () => {\n this.setState({\n shouldShowMoreMessage: true,\n })\n }\n\n moreInfo = () => {\n this.setState(state => ({ isShowMore: !state.isShowMore }))\n }\n\n moreAboutUser = () => {\n const {\n slugInfo: {\n slugDetails: {\n userInfo: { givenName = '', displayAddress = '' } = {},\n personalizationSettings: { welcomeNote = '' } = {},\n } = {},\n },\n isCoverUploadPage = false,\n isReviewPage = false,\n } = this.props\n\n const shouldShowMoreAboutUser =\n Boolean(displayAddress) || Boolean(welcomeNote)\n\n const welcomeNoteLength = welcomeNote && welcomeNote.length\n\n return (\n \n {shouldShowMoreAboutUser ? (\n \n {!isReviewPage && !isCoverUploadPage && (\n \n {l10n('label.moreabout')} {givenName}\n {this.props.recipientSlugPage && (\n \n )}\n \n )}\n {this.state.isShowMore ? (\n \n \n {displayAddress}\n \n \n {welcomeNote}\n \n {(this.props.isReviewPage || this.props.isCoverUploadPage) &&\n welcomeNoteLength > 50 && (\n \n {l10n('label.showmore')}\n \n )}\n \n ) : (\n \n )}\n \n ) : (\n this.showDottedLines()\n )}\n \n )\n }\n\n generateUrlLoggedOutState() {\n const {\n slugInfo: {\n slugDetails: {\n paypalmeSlugName = '',\n userInfo: { displayName = '' } = {},\n personalizationSettings: { transactionType = '' } = {},\n } = {},\n },\n isUserInHomepageTreatment = false,\n } = this.props\n\n const { amountValue = '0', amountCurrencyCode } = this.state\n const flow = transactionType === 'PERSONAL' ? 'send' : 'buy'\n const {\n locality: { locale, country },\n } = clientData\n\n const queryString = queryify({\n profile: paypalmeSlugName,\n currencyCode: amountCurrencyCode,\n amount: String(amountUtils.normalizeNumber(amountValue)),\n 'locale.x': locale,\n 'country.x': country,\n flowType: flow,\n })\n\n // if logged out get onboarding data...\n // ${window.location.origin}\n const formattedAmount = amountUtils.getFormattedAmount({\n amount: this.state.amountValue,\n currencyCode: this.state.amountCurrencyCode,\n })\n\n let host = PAYPAL_URL\n if (this.props.isDev) {\n host = 'https://localhost.paypal.com'\n }\n\n if (this.props.isStage) {\n host = window.location.origin\n }\n\n if (this.props.isProd) {\n host = PAYPAL_URL\n }\n\n const sendRoute = isUserInHomepageTreatment ? 'homepage' : flow\n const onboardDataRegularSignUp = JSON.stringify({\n 'country.x': country,\n 'locale.x': locale,\n intent: 'paypalme',\n redirect_url: `${host}/myaccount/transfer/${sendRoute}/external/ppme?${encodeURIComponent(\n queryString,\n )}`,\n sendMoneyText: encodeURIComponent(\n `${l10n('msg.send')} ${displayName} ${formattedAmount}`,\n ),\n })\n\n const guestQueryString = queryify({\n env: 'ppme',\n recipientIdType: 'ppme',\n recipientId: paypalmeSlugName,\n currencyCode: amountCurrencyCode,\n amount: String(amountUtils.normalizeNumber(amountValue)),\n 'locale.x': locale,\n 'country.x': country,\n flowType: flow,\n })\n\n const onboardDataGuest = JSON.stringify({\n signUpRequest: {\n method: 'get',\n url: `${encodeURIComponent(\n `${host}/myaccount/transfer/guestLogin/paypalme?${guestQueryString}`,\n )}`,\n },\n })\n\n const onboardData = this.props.isUserInGuestTreatment\n ? `expId=ppme&onboardData=${encodeURIComponent(onboardDataGuest)}`\n : `onboardData=${encodeURIComponent(onboardDataRegularSignUp)}`\n\n return `${host}/signin?returnUri=${host}/myaccount/transfer/${sendRoute}/external/ppme?${encodeURIComponent(\n queryString,\n )}&${onboardData}`\n }\n\n generateUrlLoggedInState() {\n const {\n slugInfo: {\n slugDetails: {\n paypalmeSlugName = '',\n personalizationSettings: { transactionType = '' } = {},\n } = {},\n },\n isUserInHomepageTreatment = false,\n } = this.props\n const flow = transactionType === 'PERSONAL' ? 'send' : 'buy'\n const { amountValue, amountCurrencyCode } = this.state\n const {\n locality: { locale, country },\n } = clientData\n\n const queryString = queryify({\n profile: paypalmeSlugName,\n currencyCode: amountCurrencyCode,\n amount: String(amountUtils.normalizeNumber(amountValue)),\n 'locale.x': locale,\n 'country.x': country,\n flowType: flow,\n })\n\n let host = PAYPAL_URL\n if (this.props.isDev) {\n host = 'https://localhost.paypal.com'\n }\n\n if (this.props.isStage) {\n host = window.location.origin\n }\n\n if (this.props.isProd) {\n host = PAYPAL_URL\n }\n\n const sendRoute = isUserInHomepageTreatment ? 'homepage' : flow\n return `${host}/myaccount/transfer/${sendRoute}/external/ppme?${queryString}`\n }\n\n generateSendMoneyUrl = () => {\n return this.props.isUserLoggedIn\n ? this.generateUrlLoggedInState()\n : this.generateUrlLoggedOutState()\n }\n\n onReportClick = () => {\n trackLink(\n 'report_ppme_pressed',\n 'main:ppme:recipientprofile',\n 'main:ppme:recipientprofile:::',\n 'link',\n )\n }\n\n render() {\n const {\n slugInfo: {\n slugDetails: {\n paypalmeSlugName = '',\n userInfo: {\n displayName = '',\n profilePhotoUrl = '',\n displayAddress = '',\n } = {},\n personalizationSettings: { welcomeNote = '' } = {},\n } = {},\n },\n showAmountInput = false,\n } = this.props\n const { amountValue, amountCurrencyCode } = this.state\n const { locality: { locale, country = 'US' } = {} } = clientData\n const shouldShowMoreAboutUser =\n Boolean(displayAddress) || Boolean(welcomeNote)\n\n const personalMessagePaddingBottomStyling =\n this.props.isCreateFlow ||\n (!shouldShowMoreAboutUser && !this.props.myProfilePage)\n ? 0\n : 24\n\n return (\n \n \n \n \n \n \n \n {_unescape(displayName)}\n \n \n {l10n('ppmeUrl', { slug: paypalmeSlugName })}\n \n {showAmountInput && (\n \n \n \n \n \n {l10n('button.next')}\n \n \n )}\n\n {!this.props.isCreateFlow && this.moreAboutUser()}\n\n {this.props.myProfilePage && (\n \n )}\n \n \n {this.props.recipientSlugPage && (\n \n {l10n('button.report')}\n \n )}\n \n )\n }\n}\n\nfunction queryify(obj: { [key: string]: string }) {\n return Object.keys(obj)\n .reduce((qs, key) => {\n qs.push(`${key}=${encodeURIComponent(obj[key])}`)\n return qs\n }, [])\n .join('&')\n}\n\nexport default ProfileView\n"],"sourceRoot":""}