{"mappings":"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","sources":["src/SearchWatch/Create/SearchWatchCreatePage.tsx","src/SearchWatch/Components/SearchWatchCreationInitialData.tsx","src/SearchWatch/Components/SearchWatchCreated.tsx","src/SearchWatch/Telemetry.ts","src/Components/Newsletter/newsLetterUtils.ts"],"sourcesContent":["import * as React from 'react';\r\nimport { LayoutDispatchProps, layoutActions } from '../../Common/Layout/layoutActions';\r\nimport { ResourceText, IUseResourceTexts, withResourceTextSupport } from '../../Components/ResourceText';\r\nimport { routeFromRoot, routes } from '../../Common/routes';\r\nimport { ILumoOneAppState } from '../../boot/configureStore';\r\nimport { connect } from 'react-redux';\r\nimport { createSearchWatchActions } from './createSearchWatchActions';\r\nimport { SearchWatchCreationData } from '../searchWatchState';\r\nimport { LocationData } from '../../LocationDataProvider/LocationData';\r\nimport SearchWatchCreationInitialData from '../Components/SearchWatchCreationInitialData';\r\nimport SearchWatchCreated from '../Components/SearchWatchCreated';\r\nimport SearchWatchEdit from '../Components/SearchWatchEdit';\r\nimport { SearchWatchEditResult } from '../Components/SearchWatchEditResult';\r\nimport { Link, NavigateFunction } from 'react-router-dom';\r\nimport UnderAgeError from '../../Components/Errors/UnderAgeError';\r\nimport NotAPersonError from '../../Components/Errors/NotAPersonError';\r\nimport CreditCheckProblems from '../../Components/Errors/CreditCheckProblems';\r\nimport CreditCheckUntrustworthy from '../../Components/Errors/CreditCheckUntrustworthy';\r\nimport { LoadingSpinner } from '../../Components/LoadingSpinner';\r\nimport { addTelemetryEventForSearchWatchCreated } from '../Telemetry';\r\nimport PageMeta from '../../Common/Layout/PageMeta';\r\nimport { pageViewTelemetryActions } from '../../Telemetry/pageViewTelemetryActions';\r\nimport { newsletterActions } from '../../Components/Newsletter/newsletterActions';\r\nimport { addTelemetryEventForNewsletterSubscription } from '../../Components/Newsletter/Telemetry';\r\nimport { logError } from '../../Common/LogError';\r\nimport { Language } from '../../Common/interfaces/language';\r\nimport { getMunicipalityNamesFromApartmentSearchCriteria } from '../../Components/Newsletter/newsLetterUtils';\r\n\r\ninterface OwnProps {\r\n\tnavigate: NavigateFunction;\r\n}\r\n\r\ninterface SearchWatchCreatePageStateProps {\r\n\tlocationData: LocationData | undefined;\r\n\tinProgressSearchWatch?: SearchWatchCreationData;\r\n\tnewSearchWatchSaveSucceeded?: boolean;\r\n\tsearchWatchSaving?: boolean;\r\n\trecentlyCreatedSearchWatch?: SearchWatchCreationData;\r\n\tlanguage: Language;\r\n}\r\n\r\ntype SearchWatchCreatePageDispatchProps = LayoutDispatchProps & {\r\n\tinitNewSearchWatchCreation: typeof createSearchWatchActions.initNewSearchWatchCreation;\r\n\tupdateInProgressCreationData: typeof createSearchWatchActions.updateInProgressCreationData;\r\n\tclearInProgressCreationData: typeof createSearchWatchActions.clearInProgressCreationData;\r\n\tsaveNewSearchWatch: typeof createSearchWatchActions.saveNewSearchWatch.request;\r\n\tpageComplete: typeof pageViewTelemetryActions.pageComplete;\r\n\tsubscribeToNewsletter: typeof newsletterActions.subscribe.request;\r\n};\r\n\r\ntype Props = OwnProps & SearchWatchCreatePageStateProps & SearchWatchCreatePageDispatchProps & IUseResourceTexts;\r\n\r\ntype CreatePageStatus =\r\n\t| 'Wait'\r\n\t| 'Init'\r\n\t| 'InitialData'\r\n\t| 'EditCriteria'\r\n\t| 'SaveSucceeded'\r\n\t| 'IdentificationFailed'\r\n\t| 'UnderAge'\r\n\t| 'NotAPerson'\r\n\t| 'CreditProblems'\r\n\t| 'Untrustworthy'\r\n\t| 'SaveFailed';\r\n\r\ninterface InternalState {\r\n\tstatus: CreatePageStatus;\r\n}\r\n\r\nclass SearchWatchCreatePage extends React.Component<Props, InternalState> {\r\n\tconstructor(props: Props, context?: any) {\r\n\t\tsuper(props, context);\r\n\t\tthis.state = { status: 'Wait' };\r\n\t\tthis.setLayoutProps();\r\n\t}\r\n\r\n\tstatic getDerivedStateFromProps(props: Props) {\r\n\t\treturn { status: SearchWatchCreatePage.calculatePageStatus(props) };\r\n\t}\r\n\r\n\tstatic calculatePageStatus(props: Props): CreatePageStatus {\r\n\t\tif (props.searchWatchSaving) {\r\n\t\t\treturn 'Wait';\r\n\t\t}\r\n\t\tif (props.newSearchWatchSaveSucceeded === false) {\r\n\t\t\treturn 'SaveFailed';\r\n\t\t}\r\n\t\tif (props.newSearchWatchSaveSucceeded) {\r\n\t\t\treturn 'SaveSucceeded';\r\n\t\t}\r\n\r\n\t\tconst creationData = props.inProgressSearchWatch;\r\n\t\tif (!creationData) {\r\n\t\t\treturn 'Init';\r\n\t\t}\r\n\t\tif (creationData.isCurrentlyEditingCriteria) {\r\n\t\t\treturn 'EditCriteria';\r\n\t\t}\r\n\r\n\t\treturn 'InitialData';\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.handleStatus();\r\n\t\tthis.props.pageComplete({});\r\n\t}\r\n\r\n\tcomponentDidUpdate() {\r\n\t\tthis.handleStatus();\r\n\t\tsetTimeout(function () {\r\n\t\t\twindow.scrollTo(0, 0);\r\n\t\t}, 10);\r\n\t}\r\n\r\n\t// Non-render handling of a status\r\n\thandleStatus() {\r\n\t\tswitch (this.state.status) {\r\n\t\t\tcase 'Init':\r\n\t\t\t\tthis.props.initNewSearchWatchCreation({ language: this.props.language, subscribeToNewsletter: false });\r\n\t\t\t\treturn;\r\n\r\n\t\t\tcase 'IdentificationFailed':\r\n\t\t\t\tthis.props.updateInProgressCreationData({ identificationResult: undefined });\r\n\t\t\t\treturn;\r\n\r\n\t\t\tcase 'SaveSucceeded': {\r\n\t\t\t\tconst createdWatch = this.props.recentlyCreatedSearchWatch;\r\n\r\n\t\t\t\tif (!createdWatch) {\r\n\t\t\t\t\tlogError(new Error('No recently created searchwatch data available!'));\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\taddTelemetryEventForSearchWatchCreated();\r\n\r\n\t\t\t\tif (createdWatch.subscribeToNewsletter) {\r\n\t\t\t\t\tthis.props.subscribeToNewsletter({\r\n\t\t\t\t\t\temail: createdWatch.email!,\r\n\t\t\t\t\t\tfirstname: '',\r\n\t\t\t\t\t\tlastname: '',\r\n\t\t\t\t\t\tmunicipalities: getMunicipalityNamesFromApartmentSearchCriteria(\r\n\t\t\t\t\t\t\tcreatedWatch.searchCriteria || {},\r\n\t\t\t\t\t\t\tthis.props.locationData!,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t});\r\n\t\t\t\t\taddTelemetryEventForNewsletterSubscription('hakuvahti');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<PageMeta title={this.props.getResourceText('WindowTitle_SearchWatch_Creation', 'Uusi hakuvahti')} />\r\n\t\t\t\t<div className=\"mod-apartmentWatch\">\r\n\t\t\t\t\t<div className=\"mod-apartmentWatch__wrapper\">{this.renderInternal()}</div>\r\n\t\t\t\t</div>\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n\r\n\trenderInternal() {\r\n\t\tswitch (this.state.status) {\r\n\t\t\tcase 'Wait':\r\n\t\t\tcase 'Init':\r\n\t\t\tcase 'IdentificationFailed':\r\n\t\t\t\treturn <LoadingSpinner additionalClasses=\"-topMargin\" variant=\"grey\" />;\r\n\r\n\t\t\tcase 'InitialData':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<SearchWatchCreationInitialData\r\n\t\t\t\t\t\tlocationData={this.props.locationData}\r\n\t\t\t\t\t\tinProgressSearchWatch={this.props.inProgressSearchWatch!}\r\n\t\t\t\t\t\tupdateInProgressCreationData={this.props.updateInProgressCreationData}\r\n\t\t\t\t\t\tonCreateSearchWatch={this.onCreateUnidentifiedSearchWatch}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\r\n\t\t\tcase 'EditCriteria':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<SearchWatchEdit\r\n\t\t\t\t\t\tlocationData={this.props.locationData!}\r\n\t\t\t\t\t\tsearchWatch={this.props.inProgressSearchWatch!}\r\n\t\t\t\t\t\tonSubmit={this.onSubmitEdit}\r\n\t\t\t\t\t\tisIdentified={\r\n\t\t\t\t\t\t\tthis.props.inProgressSearchWatch &&\r\n\t\t\t\t\t\t\tthis.props.inProgressSearchWatch.identificationResult &&\r\n\t\t\t\t\t\t\tthis.props.inProgressSearchWatch.identificationResult.success\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\r\n\t\t\tcase 'SaveSucceeded':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<SearchWatchCreated\r\n\t\t\t\t\t\tlanguage={this.props.language}\r\n\t\t\t\t\t\tisIdentified={!!this.props.recentlyCreatedSearchWatch!.choseToIdentify}\r\n\t\t\t\t\t\tidentificationResult={this.props.recentlyCreatedSearchWatch!.identificationResult}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\r\n\t\t\tcase 'UnderAge':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<UnderAgeError\r\n\t\t\t\t\t\tclassNamePrefix=\"mod-apartmentWatch__\"\r\n\t\t\t\t\t\textraContent={this.getExtraContentForErrorPages()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\r\n\t\t\tcase 'NotAPerson':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<NotAPersonError\r\n\t\t\t\t\t\tclassNamePrefix=\"mod-apartmentWatch__\"\r\n\t\t\t\t\t\textraContent={this.getExtraContentForErrorPages()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\r\n\t\t\tcase 'CreditProblems':\r\n\t\t\t\treturn <CreditCheckProblems />;\r\n\r\n\t\t\tcase 'Untrustworthy':\r\n\t\t\t\treturn <CreditCheckUntrustworthy />;\r\n\r\n\t\t\tcase 'SaveFailed':\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\tresourceKey=\"SearchWatchCreate_SaveError\"\r\n\t\t\t\t\t\t\tdefaultText=\"Hakuvahdin luonti valitettavasti epäonnistui!\"\r\n\t\t\t\t\t\t\ttextType=\"Markdown\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<Link to={routeFromRoot()[this.props.language]} className=\"atom-card__link\">\r\n\t\t\t\t\t\t\t<ResourceText resourceKey=\"ToFrontPage\" defaultText=\"Etusivulle&nbsp;›\" />\r\n\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t</>\r\n\t\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getExtraContentForErrorPages() {\r\n\t\treturn (\r\n\t\t\t<button\r\n\t\t\t\tclassName=\"atom-card__button atom-button atom-button--big\"\r\n\t\t\t\tonClick={this.onCreateUnidentifiedSearchWatch}\r\n\t\t\t>\r\n\t\t\t\t<ResourceText\r\n\t\t\t\t\tresourceKey=\"SearchWatchCreate_CreateWithoutIdentificationAfterError\"\r\n\t\t\t\t\tdefaultText=\"Jatka tunnistautumatta\"\r\n\t\t\t\t/>\r\n\t\t\t</button>\r\n\t\t);\r\n\t}\r\n\r\n\tprivate onSubmitEdit = (data: SearchWatchEditResult) => {\r\n\t\tthis.props.updateInProgressCreationData({\r\n\t\t\tisCurrentlyEditingCriteria: false,\r\n\t\t\tsearchCriteria: data.searchCriteria,\r\n\t\t\tfrequency: data.frequency,\r\n\t\t\tisUrgent: data.isUrgent,\r\n\t\t\tadditionalInformation: data.additionalInformation,\r\n\t\t});\r\n\t};\r\n\r\n\t// Uses the data collected to redux - notice that in many cases the\r\n\t// newest data is not yet reflected to this.props.inProgressSearchWatch.\r\n\tprivate onCreateSearchWatch = () => {\r\n\t\tthis.props.saveNewSearchWatch();\r\n\t};\r\n\r\n\tprivate onCreateUnidentifiedSearchWatch = () => {\r\n\t\tthis.props.updateInProgressCreationData({\r\n\t\t\tchoseToIdentify: false,\r\n\t\t\tidentificationResult: undefined,\r\n\t\t});\r\n\t\tthis.onCreateSearchWatch();\r\n\t};\r\n\r\n\tsetLayoutProps = () => {\r\n\t\tthis.props.setLayoutValues({\r\n\t\t\tbreadcrumbCurrentName: this.props.getResourceText('BreadCrumb_SearchWatch'),\r\n\t\t\tbreadcrumbParents: [],\r\n\t\t\ttranslateUrl: routeFromRoot(routes.searchWatch),\r\n\t\t});\r\n\t};\r\n}\r\n\r\nconst mapStateToProps = ({\r\n\tlanguage,\r\n\tlocationData,\r\n\tcreateSearchWatch,\r\n}: ILumoOneAppState): SearchWatchCreatePageStateProps => ({\r\n\tlanguage: language.currentLanguage,\r\n\tlocationData: locationData.locationData,\r\n\tinProgressSearchWatch: createSearchWatch.inProgressCreationData,\r\n\tnewSearchWatchSaveSucceeded: createSearchWatch.newSearchWatchSaveSucceeded,\r\n\tsearchWatchSaving: createSearchWatch.newSearchWatchSaving,\r\n\trecentlyCreatedSearchWatch: createSearchWatch.recentlyCreatedSearchWatch,\r\n});\r\n\r\nexport default withResourceTextSupport(\r\n\tconnect<SearchWatchCreatePageStateProps, SearchWatchCreatePageDispatchProps>(mapStateToProps, {\r\n\t\tinitNewSearchWatchCreation: createSearchWatchActions.initNewSearchWatchCreation,\r\n\t\tupdateInProgressCreationData: createSearchWatchActions.updateInProgressCreationData,\r\n\t\tclearInProgressCreationData: createSearchWatchActions.clearInProgressCreationData,\r\n\t\tsaveNewSearchWatch: createSearchWatchActions.saveNewSearchWatch.request,\r\n\t\tsetLayoutValues: layoutActions.setValues,\r\n\t\tpageComplete: pageViewTelemetryActions.pageComplete,\r\n\t\tsubscribeToNewsletter: newsletterActions.subscribe.request,\r\n\t})(SearchWatchCreatePage),\r\n);\r\n","import * as React from 'react';\r\nimport { LocationData } from '../../LocationDataProvider/LocationData';\r\nimport { SearchWatchCreationData } from '../searchWatchState';\r\nimport { ResourceText } from '../../Components/ResourceText';\r\nimport { hasAnyLocationCriteriaSet } from '../../Apartments/Browser/ApartmentSearchCriteria';\r\nimport { connect } from 'react-redux';\r\nimport { createSearchWatchActions } from '../Create/createSearchWatchActions';\r\nimport SearchWatchCriteriaSummary from './SearchWatchCriteriaSummary';\r\nimport { isValidEmail } from '../../InputValidators';\r\nimport { CheckBox } from '../../Components/CheckBox';\r\nimport { Button } from '@kojamo/lumo-dls';\r\n\r\ninterface SearchWatchInitialDataParamProps {\r\n\tlocationData: LocationData | undefined;\r\n\tinProgressSearchWatch: SearchWatchCreationData;\r\n\tupdateInProgressCreationData: typeof createSearchWatchActions.updateInProgressCreationData;\r\n\tonCreateSearchWatch: () => any;\r\n}\r\ninterface SearchWatchInitialDataState {\r\n\temail?: string;\r\n\tisEmailValid: boolean;\r\n\tisCriteriaValid: boolean;\r\n\tisFormValid: boolean;\r\n\tsubscribeToNewsletter: boolean;\r\n\tshowSubscribeToNewsletterCheckbox: boolean;\r\n}\r\ntype Props = SearchWatchInitialDataParamProps;\r\n\r\nclass SearchWatchInitialData extends React.Component<Props, SearchWatchInitialDataState> {\r\n\tconstructor(props: Props, context?: any) {\r\n\t\tsuper(props, context);\r\n\r\n\t\tconst email = this.props.inProgressSearchWatch ? props.inProgressSearchWatch.email : undefined;\r\n\t\tconst isEmailValid = this.isEmailValid(email);\r\n\t\tconst isCriteriaValid =\r\n\t\t\t!!this.props.inProgressSearchWatch &&\r\n\t\t\t!!this.props.inProgressSearchWatch.searchCriteria &&\r\n\t\t\t!!this.props.inProgressSearchWatch.searchCriteria.location &&\r\n\t\t\thasAnyLocationCriteriaSet(this.props.inProgressSearchWatch.searchCriteria.location);\r\n\r\n\t\tthis.state = {\r\n\t\t\temail,\r\n\t\t\tisEmailValid,\r\n\t\t\tisCriteriaValid:\r\n\t\t\t\t!!this.props.inProgressSearchWatch &&\r\n\t\t\t\t!!this.props.inProgressSearchWatch.searchCriteria &&\r\n\t\t\t\t!!this.props.inProgressSearchWatch.searchCriteria.location &&\r\n\t\t\t\thasAnyLocationCriteriaSet(this.props.inProgressSearchWatch.searchCriteria.location),\r\n\t\t\tisFormValid: isEmailValid && isCriteriaValid,\r\n\t\t\tsubscribeToNewsletter: !!this.props.inProgressSearchWatch.subscribeToNewsletter,\r\n\t\t\tshowSubscribeToNewsletterCheckbox: this.props.inProgressSearchWatch.language === 'fi',\r\n\t\t};\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<h1 className=\"mod-apartmentWatch__heading -altFont -startPage\">\r\n\t\t\t\t\t<ResourceText resourceKey=\"SearchWatchCreate_InitialData_Heading\" defaultText=\"Luo hakuvahti\" />\r\n\t\t\t\t</h1>\r\n\t\t\t\t<p className=\"mod-apartmentWatch__introText -startPage\">\r\n\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\tresourceKey=\"SearchWatchCreate_InitialData_Ingress\"\r\n\t\t\t\t\t\tdefaultText=\"Ilmoitamme, kun hakuasi vastaavia asuntoja on saatavilla.\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</p>\r\n\r\n\t\t\t\t<div className=\"input-basic -startPage\">\r\n\t\t\t\t\t<label className=\"input-basic__label\" htmlFor=\"email\">\r\n\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\tresourceKey=\"SearchWatchCreate_InitialData_FieldLabel_Email\"\r\n\t\t\t\t\t\t\tdefaultText=\"Sähköpostiosoite\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<span className=\"input-basic__required\">*</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tautoFocus={true}\r\n\t\t\t\t\t\tclassName=\"input-basic__input\"\r\n\t\t\t\t\t\tid=\"email\"\r\n\t\t\t\t\t\ttype=\"email\"\r\n\t\t\t\t\t\tdefaultValue={this.state.email}\r\n\t\t\t\t\t\tonChange={this.onEmailChange}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t{this.state.showSubscribeToNewsletterCheckbox && (\r\n\t\t\t\t\t<div className=\"input-basic -startPage\">\r\n\t\t\t\t\t\t<CheckBox\r\n\t\t\t\t\t\t\tid=\"subscribeToNewsletterCheckbox\"\r\n\t\t\t\t\t\t\tlabelKey=\"Newsletter_Subscribe\"\r\n\t\t\t\t\t\t\tclassName=\"input-checkbox\"\r\n\t\t\t\t\t\t\tvalue={this.state.subscribeToNewsletter}\r\n\t\t\t\t\t\t\tvalueChanged={() =>\r\n\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t...this.state,\r\n\t\t\t\t\t\t\t\t\tsubscribeToNewsletter: !this.state.subscribeToNewsletter,\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{this.props.inProgressSearchWatch && this.props.inProgressSearchWatch.searchCriteria ? (\r\n\t\t\t\t\t<SearchWatchCriteriaSummary\r\n\t\t\t\t\t\tlocationData={this.props.locationData}\r\n\t\t\t\t\t\tsearchWatch={this.props.inProgressSearchWatch}\r\n\t\t\t\t\t\tonStartEdit={this.onStartEditingCriteria}\r\n\t\t\t\t\t/>\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<p className=\"mod-apartmentWatch__text -topMargin\">\r\n\t\t\t\t\t\t<Button variant=\"text\" onClick={this.onStartEditingCriteria}>\r\n\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\tresourceKey=\"SearchWatchCreate_InitialData_NoSearchCriteria_EditLink\"\r\n\t\t\t\t\t\t\t\tdefaultText=\"Aseta hakuehdot\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</p>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<button\r\n\t\t\t\t\tclassName=\"mod-apartmentWatch__createButton button button--big -startPage\"\r\n\t\t\t\t\tdisabled={!this.state.isFormValid}\r\n\t\t\t\t\tonClick={this.onSubmit}\r\n\t\t\t\t>\r\n\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\tresourceKey=\"SearchWatchCreate_InitialData_CreateButton\"\r\n\t\t\t\t\t\tdefaultText=\"Luo hakuvahti\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</button>\r\n\r\n\t\t\t\t{!this.state.isEmailValid && (\r\n\t\t\t\t\t<div className=\"mod-apartmentWatch__validationText\">\r\n\t\t\t\t\t\t<span className=\"input-basic__required\">*&nbsp;</span>\r\n\t\t\t\t\t\t<small>\r\n\t\t\t\t\t\t\t{this.state.email ? (\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"SearchWatch_EmailNotValidError\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Sähköpostiosoite ei ole oikeaa muotoa\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"SearchWatch_EmailRequiredError\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Sähköpostiosoite puuttuu\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</small>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t\t{!this.state.isCriteriaValid && (\r\n\t\t\t\t\t<div className=\"mod-apartmentWatch__validationText\">\r\n\t\t\t\t\t\t<span className=\"input-basic__required\">*&nbsp;</span>\r\n\t\t\t\t\t\t<small>\r\n\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\tresourceKey=\"SearchWatch_InitialData_CriteriaInvalidError\"\r\n\t\t\t\t\t\t\t\tdefaultText=\"Hakuehtoihin tarvitaan ainakin sijainti\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</small>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n\r\n\tonEmailChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\tconst input = e.currentTarget.value;\r\n\t\tconst isEmailValid = this.isEmailValid(input);\r\n\r\n\t\tthis.setState({\r\n\t\t\temail: input,\r\n\t\t\tisEmailValid,\r\n\t\t\tisFormValid: isEmailValid && this.state.isCriteriaValid,\r\n\t\t});\r\n\t};\r\n\r\n\tisEmailValid(email: string | undefined): boolean {\r\n\t\treturn !!email && !!email.length && isValidEmail(email);\r\n\t}\r\n\r\n\tonStartEditingCriteria = () => {\r\n\t\tconst updateData: Partial<SearchWatchCreationData> = {\r\n\t\t\tisCurrentlyEditingCriteria: true,\r\n\t\t};\r\n\t\tif (this.state.isEmailValid) {\r\n\t\t\tupdateData.email = this.state.email; // persist already typed valid email when going to criteria edit\r\n\t\t\tupdateData.subscribeToNewsletter = this.state.subscribeToNewsletter;\r\n\t\t}\r\n\r\n\t\tthis.props.updateInProgressCreationData(updateData);\r\n\t};\r\n\r\n\tprivate onSubmit = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n\t\te.preventDefault();\r\n\t\tthis.props.updateInProgressCreationData({\r\n\t\t\temail: this.state.email,\r\n\t\t\tsearchCriteria: this.props.inProgressSearchWatch!.searchCriteria,\r\n\t\t\tsubscribeToNewsletter: this.state.subscribeToNewsletter,\r\n\t\t});\r\n\t\tthis.props.onCreateSearchWatch();\r\n\t};\r\n}\r\n\r\nexport default connect(undefined, {})(SearchWatchInitialData);\r\n","import * as React from 'react';\r\nimport { ResourceText } from '../../Components/ResourceText';\r\nimport { Link } from 'react-router-dom';\r\nimport { routeFromRoot, routes } from '../../Common/routes';\r\nimport { SearchWatchIdentificationResult } from '../searchWatchState';\r\nimport { Language } from '../../Common/interfaces/language';\r\nimport SmartLink from '../../Components/SmartLink';\r\n\r\ninterface SearchWatchCreatedParamProps {\r\n\tlanguage: Language;\r\n\tisIdentified: boolean;\r\n\tidentificationResult: SearchWatchIdentificationResult | undefined;\r\n}\r\n\r\nexport default function SearchWatchCreated({\r\n\tlanguage,\r\n\tisIdentified,\r\n\tidentificationResult,\r\n}: SearchWatchCreatedParamProps) {\r\n\tlet contactPolicyResourceKey = 'SearchWatchCreate_Created_ContactPolicy';\r\n\tif (isIdentified) {\r\n\t\tcontactPolicyResourceKey +=\r\n\t\t\tidentificationResult && identificationResult.isCurrentCustomer ? '_CurrentCustomer' : '_Identified';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<div className=\"atom-card -noGrid -alignCenter\">\r\n\t\t\t\t<h2 className=\"mod-apartmentWatch__heading -altFont\">\r\n\t\t\t\t\t<ResourceText resourceKey=\"SearchWatchCreate_Created_Heading\" defaultText=\"Kiitos!\" />\r\n\t\t\t\t</h2>\r\n\t\t\t\t<p className=\"mod-apartmentWatch__introText\">\r\n\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\tresourceKey=\"SearchWatchCreate_Created_Intro\"\r\n\t\t\t\t\t\tdefaultText=\"Olet nyt askeleen lähempänä unelma-asuntoasi!\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</p>\r\n\t\t\t\t<div className=\"mod-apartmentWatch__text\">\r\n\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\tresourceKey=\"SearchWatchCreate_Created_Description\"\r\n\t\t\t\t\t\tdefaultText=\"Varmista vielä sähköpostiosoitteesi klikkaamalla sinne saapunutta linkkiä. Varmistuksen jälkeen saat tiedon hakuehtojasi vastaavista uusista asunnoista sähköpostiisi.\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t{isIdentified && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\t\t<ResourceText resourceKey=\"SearchWatchCreate_Created_Description_Identified\" />\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<br />\r\n\t\t\t\t\t<br />\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t<ResourceText resourceKey={contactPolicyResourceKey} />\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className=\"atom-card__ctaGroup\">\r\n\t\t\t\t\t<div className=\"atom-card__buttons\">\r\n\t\t\t\t\t\t<SmartLink\r\n\t\t\t\t\t\t\tto={routeFromRoot(routes.apartments)[language]}\r\n\t\t\t\t\t\t\tclearStates={true}\r\n\t\t\t\t\t\t\tclassName=\"button\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\tresourceKey=\"SearchWatchCreate_Created_ShowAllApartments\"\r\n\t\t\t\t\t\t\t\tdefaultText=\"Katso kaikki asuntomme\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</SmartLink>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<Link to={routeFromRoot()[language]} className=\"atom-card__link\">\r\n\t\t\t\t\t\t<ResourceText resourceKey=\"ToFrontPage\" defaultText=\"Etusivulle&nbsp;›\" />\r\n\t\t\t\t\t</Link>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</>\r\n\t);\r\n}\r\n","import { addTelemetryEventGA4, GA4EventAction, GA4EventCategory, GA4EventType } from '../Telemetry/TelemetryGA4';\n\nexport function addTelemetryEventForSearchWatchCreated() {\n\taddTelemetryEventGA4({\n\t\tevent: GA4EventType.sign_up,\n\t\tcategory: GA4EventCategory.subscriptions,\n\t\taction: GA4EventAction.hakuvahti,\n\t});\n}\n","import { ApartmentSearchResultAM } from '../../Apartments/Api/ApartmentSearchResultAM';\nimport { ApartmentSearchCriteria } from '../../Apartments/Browser/ApartmentSearchCriteria';\nimport { LocationData } from '../../LocationDataProvider/LocationData';\n\nexport function getMunicipalityNamesFromApartments(apartments: ApartmentSearchResultAM[], locationData: LocationData) {\n\tconst result = apartments.map((a) => locationData.municipalities.find((m) => m.id === a.municipalityId));\n\treturn result.filter((m) => !!m).map((m) => m!.name);\n}\n\nexport function getMunicipalityNamesFromApartmentSearchCriteria(\n\tcriteria: ApartmentSearchCriteria,\n\tlocationData: LocationData,\n) {\n\tif (criteria && criteria.location) {\n\t\tconst results: string[] = [];\n\t\tif (criteria.location.municipalities) {\n\t\t\tresults.push(...criteria.location.municipalities.map((m) => m.name));\n\t\t}\n\t\tif (criteria.location.municipalitySubAreas) {\n\t\t\tconst municipalityIds = criteria.location.municipalitySubAreas.map((ms) => ms.municipalityId);\n\t\t\tconst municipalities = locationData.municipalities\n\t\t\t\t.filter((m) => municipalityIds.indexOf(m.id) > -1)\n\t\t\t\t.map((m) => m.name);\n\n\t\t\tresults.push(...municipalities);\n\t\t}\n\t\tif (criteria.location.businessEntityIds) {\n\t\t\tconst municipalityIds = locationData.businessEntities\n\t\t\t\t.filter((b) => criteria.location!.businessEntityIds!.indexOf(b.id) > -1)\n\t\t\t\t.map((b) => b.municipalityId);\n\t\t\tconst municipalities = locationData.municipalities\n\t\t\t\t.filter((m) => municipalityIds.indexOf(m.id) > -1)\n\t\t\t\t.map((m) => m.name);\n\n\t\t\tresults.push(...municipalities);\n\t\t}\n\t\treturn results;\n\t}\n\treturn undefined;\n}\n"],"names":["$ed3kz","parcelRequire","SearchWatchCreatePage","React","constructor","props","context","super","this","state","status","setLayoutProps","getDerivedStateFromProps","calculatePageStatus","searchWatchSaving","newSearchWatchSaveSucceeded","creationData","inProgressSearchWatch","isCurrentlyEditingCriteria","componentDidMount","handleStatus","pageComplete","componentDidUpdate","setTimeout","window","scrollTo","initNewSearchWatchCreation","language","subscribeToNewsletter","updateInProgressCreationData","identificationResult","undefined","createdWatch","recentlyCreatedSearchWatch","logError","Error","addTelemetryEventForSearchWatchCreated","email","firstname","lastname","municipalities","getMunicipalityNamesFromApartmentSearchCriteria","searchCriteria","locationData","addTelemetryEventForNewsletterSubscription","render","jsxs","Fragment","jsx","$2LBWb","default","title","getResourceText","className","renderInternal","$fQt7u","LoadingSpinner","additionalClasses","variant","$hSVD5","onCreateSearchWatch","onCreateUnidentifiedSearchWatch","$gGmUJ","searchWatch","onSubmit","onSubmitEdit","isIdentified","success","$drNha","choseToIdentify","$lvspY","classNamePrefix","extraContent","getExtraContentForErrorPages","$5gWG2","$6yKiI","$57umD","$jjuiK","ResourceText","resourceKey","defaultText","textType","$iffFd","Link","to","routeFromRoot","onClick","data","frequency","isUrgent","additionalInformation","saveNewSearchWatch","setLayoutValues","breadcrumbCurrentName","breadcrumbParents","translateUrl","routes","$c1f44fddf903d81d$export$2e2bcd8739ae039","withResourceTextSupport","connect","mapStateToProps","createSearchWatch","currentLanguage","inProgressCreationData","newSearchWatchSaving","createSearchWatchActions","clearInProgressCreationData","request","layoutActions","setValues","pageViewTelemetryActions","newsletterActions","subscribe","SearchWatchInitialData","isEmailValid","isCriteriaValid","location","hasAnyLocationCriteriaSet","isFormValid","showSubscribeToNewsletterCheckbox","htmlFor","autoFocus","id","type","defaultValue","onChange","onEmailChange","$23pNT","CheckBox","labelKey","value","valueChanged","setState","$isXKP","onStartEdit","onStartEditingCriteria","$icxVu","Button","disabled","e","input","currentTarget","length","isValidEmail","updateData","preventDefault","$622f45f4f6f1e43c$export$2e2bcd8739ae039","$0c0b973faffefb24$export$2e2bcd8739ae039","contactPolicyResourceKey","isCurrentCustomer","$e3EsW","apartments","clearStates","$jwOO8","addTelemetryEventGA4","event","GA4EventType","sign_up","category","GA4EventCategory","subscriptions","action","GA4EventAction","hakuvahti","getMunicipalityNamesFromApartments","map","a","find","m","municipalityId","filter","name","criteria","results","push","municipalitySubAreas","municipalityIds","ms","indexOf","businessEntityIds","businessEntities","b"],"version":3,"file":"SearchWatchCreatePage.3bc1acd4.js.map"}