{"version":3,"sources":["enquirySummary/dialogs/FollowUpDialog.tsx","enquirySummary/dialogs/AssignDialog.tsx","enquirySummary/dialogs/CreateClientDialog.tsx","enquirySummary/dialogs/BookMeetingEmailDialog.tsx","enquirySummary/dialogs/MarkClientAndMatterCreatedDialog.tsx","enquirySummary/dialogs/ScrubEnquiryDataDialog.tsx","enquirySummary/dialogs/MessageAssigneeDialog.tsx"],"names":["useStyles","theme","root","textField","width","flex","dialogTitle","color","TemplateColor","Primary","display","margin","justifyContent","alignItems","padding","fontSize","hideDate","startTimeWrapper","formControlLabel","marginLeft","marginRight","textFieldWrapper","staffWrapper","divider","selector","height","customFieldGrid","toggleFieldWrapepr","FollowUpDialog","props","classes","isLoading","setIsLoading","isSubmitting","setIsSubmitting","regionSettings","guid","createdDate","toDate","createdByName","lastUpdated","isClosed","isContactCreated","isMatterCreated","firstName","lastName","email","gender","initialEnquiryDate","phone","mobile","sourceGuidID","source","isSourceReferrer","officeGuidID","office","sourceNotes","organisation","positionAtOrganisation","areaOfLaw","practiceAreaGuidID","natureOfEnquiry","internalNotes","files","assignedTo","assignedToName","assignedToEmailAddress","assignedBy","assignedByName","assignedByEmailAddress","dateAssigned","followUpDueDate","assignmentReminderOffset","followUpActionGuidID","followUpAction","followUpActionSystemName","followUpSystemAction","followUpDate","outcomeGuidID","outcome","outcomeDate","outcomeNotes","reasonGuidID","reason","followUpNotes","isKeyOpportunity","referrerGuid","referrerName","nameGuid","nameTitle","organisationGuid","estimatedFees","isEstimatedFeesIncludesTax","estimatedDisbursements","isEstimatedDisbursementsIncludesTax","enquiryQuality","likelihoodToProceed","clientFirstName","clientLastName","dOB","isMarketingConsent","isTermsAndConditionsApproved","isPrivacyStatementProvided","isConflictCheckPerformed","isNoConflict","isIdentityCheckPerformed","addressName","floor","number","street","clientAddressStreet2","suburb","state","postcode","country","pOBox","postalSuburb","postalState","postalPostCode","postalCountry","referredToFirmGuid","referredToFirmName","notProceedingOutcomeNotes","clientRelationshipToEnquirer","matterId","matterGuid","matterTitle","matterFileNumber","assignedToIsStaff","assignedToStaffGuid","assignedToStaffName","otherPartyFirstName","otherPartyLastName","otherPartyNotes","otherPartyEmail","otherPartyPhone","otherPartyMobile","otherPartyOrganisation","enquiryNotes","pOBoxType","integrationContactId","integrationClientId","integrationOtherPartyId","integrationMatterId","integrationMatterDocumentId","otherPartyDOB","otherPartyAddressName","otherPartyFloor","otherPartyNumber","otherPartyStreet","otherPartyStreet2","otherPartySuburb","otherPartyState","otherPartyPostcode","otherPartyCountry","otherPartyPOBoxType","otherPartyPOBox","otherPartyPostalSuburb","otherPartyPostalState","otherPartyPostalPostCode","otherPartyPostalCountry","otherPartyNameGuid","otherPartyOrganisationGuid","isRiskAssessed","riskLevel","riskLevelGuid","riskNotes","secondClientFirstName","secondClientLastName","secondClientRelationshipToEnquirer","secondClientGender","secondClientSuburb","secondClientState","secondClientPostCode","secondClientIsMarketingConsent","secondClientIsTermsAndConditionsApproved","secondClientIsPrivacyStatementProvided","secondClientIsConflictCheckPerformed","secondClientIsIdentityCheckPerformed","secondClientIsNoConflict","secondClientCountry","secondClientAddressName","secondClientFloor","secondClientNumber","secondClientStreet1","secondClientStreet2","secondClientDOB","secondClientPOBoxType","secondClientPOBox","secondClientPostalSuburb","secondClientPostalState","secondClientPostalPostCode","secondClientPostalCountry","secondClientGuid","responseText","eventAndCampaignGuid","eventAndCampaignName","eventAndCampaignNotes","eventAndCampaignNotesGuid","isNameFromDataSource","isOrganisationFromDataSource","isOtherSideFromDataSource","isSecondClientFromDataSource","clientTitle","otherPartyTitle","secondClientTitle","title","clientEmail","clientGuid","clientMobile","clientPhone","secondClientEmail","secondClientMobile","secondClientPhone","customFields","clickThroughUrl","utmSource","utmMedium","utmCampaign","utmContent","utmKeyword","googleClickIdentifier","facebookClickIdentifier","enquiryDetails","setEnquiryDetails","appUser","setAppUser","showDiscard","isFormChanged","currency","isSendEmailDialogOpen","setState","fetchCurrency","fetchEnquiryDefaultSettings","fetchAppUserOnEffect","fetchEnquiryDetails","data","onDataCurrency","prevState","options","currencySymbol","symbol","onDataEnquiryDefaultSettingsRetrieved","settings","systems","enquiryDefaults","config","enquiryDefaultConfig","handleAppUserFetch","undefined","isAdministrator","prevAppUser","userId","name","userName","displayLoader","enquiryQueryParams","onDataRetrieved","enquiry","detail","required","value","requiredDateValidator","date","isValid","year","onToggleBookMeetingEmailDialog","form","isOpen","change","saveBookMetting","values","startDate","startTime","endDate","endTime","startDateValue","endDateValue","locationUtcOffset","officeLocation","baseUtcOffset","uiUtcOffset","Date","getTimezoneOffset","difference","add","isAssignedToTeam","staff","entityType","mutate","mutation","variables","input","enquiryGuid","isAllDay","location","label","feeApplicable","sendConfirmation","isSendConfirmation","staffEntityType","meetingNotes","then","results","error","onFollowUpClosed","catch","saveFollowUp","getFollowUpEnquiryInput","reasonGuid","reminderOffset","followUpDueReminder","updateFollowUpDueForInternalNote","notProceedingNotes","onClose","onDialogClose","onDateTimePickerChange","formApi","defaultMeetingMinutes","meetingLengthSplit","defaultMeetingLength","split","onChange","batch","onOutcomeDateChange","onChangeAllDay","event","checked","set","hours","minutes","seconds","milliseconds","CustomPopper","popperProps","placement","getOutcomeDefaultTime","defaultTime","setHours","isManualEntry","timeOfDay","toLowerCase","timeOfDaySplit","Number","onChangeSelection","selection","hasOwnProperty","TEAM","STAFF","timezone","timezoneDescription","timezoneSelector","secondaryValue","timeZone","content","show","isAgree","agree","disAgreeLabel","agreeLabel","open","className","fullWidth","maxWidth","scroll","loading","onSubmit","initialValues","hasFollowUpNotesMentions","validTimeOfDay","isCalculatedDays","addDays","isCalculatedHours","addhours","addHours","getOutcomeDateDefaultValue","emailTemplate","reminder","outcomeDateChanged","isBookMeetingEmailDialogOpen","initialValuesEqual","subscription","submitting","pristine","validate","errors","rason","followUpDateError","outcomeDateError","render","handleSubmit","changeProps","onFormValueChanged","fromAddress","toAddresses","id","format","dividers","container","spacing","item","xs","onRadioButtonChange","systemAction","followUpActionValue","currentTarget","onFollowUpChange","md","touched","meta","onSelection","onBlur","disablePortal","helperText","control","checkedIcon","showAllOffice","placeholder","animateYearScrolling","autoOk","variant","inputProps","autocomplete","InputLabelProps","shrink","minDate","initialFocusedDate","type","multiline","autoComplete","prefix","component","onEmailTemplateChange","PopperComponent","emailType","EMAIL_RESPONSE","emailTemplateGuid","emailTemplateName","fromEmailAddress","toEmailAddress","onSendEmailDialogClose","canCreateMatter","markup","newValue","newPlainTextValue","mentions","length","onlyUsedByEnquiries","isLoadData","hasNameGuid","console","log","onOutcomeChange","allowKeyboardControl","showIcon","valueGuid","onDropdownChange","getFieldState","disabled","isShowNotProceedingReferrer","isNotProceedingReferrerSwitched","referredToFirmSelector","referredToFirmSelectorValue","onDropDownSelect","onClick","onSwitch","isNotProceeding","isModifyAndSendPassRequirements","HasAccess","hasBookMeetingEmailPreview","actionButton","overflowY","AssignDialog","enquiryDetail","followUpDueValue","getFollowUpDueDefaultValue","assignLawyer","getAssignStaffToEnquiryInput","onAssignClosed","assignmentFollowUpDueReminder","keepDirtyOnReinitialize","isGuidAsValue","displayLabel","isExternal","isAuthorized","isStaffOnly","formRoot","expandablePanelDetails","paddingBottom","AccordionSummary","heading","typography","pxToRem","headingIcon","infoContainer","paddingLeft","fontWeight","textOverflow","whiteSpace","overflow","textAlign","BrandColors","TemplatePrimary","buttonContainer","button","hidden","organisationFieldWrapepr","fieldAndCheckbox","loaderWrapper","minWidth","CreateClientDialog","organisationText","showAlert","isForceClosed","showConfirmed","isSwitched","recordCount","nameSummary","isFormSubmit","isOrganisationExpandPanel","isOrgnisationPostralAddressExpandPanel","isPersonExpandPanel","isPersonPostalAddressExpandPanel","isCreateMatterExpandPanel","isOrganisationPanelDisabled","isPersonPanelDisabled","isPerson2ExpandPanel","isPerson2PanelDisabled","isPerson2PostalAddressExpandPanel","tasks","actualRowCountForSearch","leadDetailsHistoryForMatterCreation","setLeadDetailsHistoryForMatterCreation","fetchLeadDetailsHistoryForMatterCreation","fetchData","partyQueryParams","filter","offset","first","includeOrganisation","includeIndividual","includeStaff","onRetrieveParty","party","nameSummaries","map","guidID","toString","leadQueryParams","sortColumn","sortDirection","entityGuidID","onEnquiryHistoryDataRetrievedForMatterCreation","task","summaryList","personTitle","orgAddress","orgBuildingName","orgUnitLevel","orgNumber","orgStreet1","orgStreet2","orgCitySuburb","orgState","orgPostalCode","orgCountry","orgPoBoxType","poBoxType","orgPostalPOBox","orgPostalCitySuburb","orgPostalState","orgPostalPostalCode","orgPostalCountry","generalNotes","address","buildingName","unitLevel","street1","street2","citySuburb","postalCode","postalPoBoxType","postalPOBox","postalCitySuburb","postalPostalCode","birthDate","useRecurringMatter","recurringMatter","matterCategory","matterTypeState","matterType","personResponsible","personActing","personAssisting","credit","referrer","costAgreementRequired","workObtained","reportingGroup","matterTypeTree","secondPersonTitle","secondPersonFirstName","secondPersonLastName","secondPersonEmail","secondPersonMobile","secondPersonPhone","secondPersonGeneralNotes","secondPersonAddress","secondPersonBuildingName","secondPersonUnitLevel","secondPersonNumber","secondPersonStreet1","secondPersonStreet2","secondPersonCitySuburb","secondPersonState","secondPersonPostalCode","secondPersonCountry","secondPersonPostalPoBoxType","secondPersonPostalPOBox","secondPersonPostalCitySuburb","secondPersonPostalState","secondPersonPostalPostalCode","secondPersonPostalCountry","secondPersonBirthDate","secondPersonGender","secondPersonIsMarketingConsent","enquiryActions","createClientTitle","canCreateContactForLostEnquiry","createClientMessage","isPoBoxRequired","isOrganisation","isSecondClientPoBoxRequired","closePanel","onCreateClientClosed","placeType","locality","administrativeAreaLevel1","premise","route","streetNumber","structured_formatting","main_text","onInputChanged","createCreateAndContact","saveCreateAndContact","customFieldByHierarchy","createCreateClientContact","saveCreateClientContact","createContact","saveCreateClient","historyDocument","getCreateContactInput","getCreateClientContactInput","getCreateClientAndContactInput","closeForNonLeap","matterTypeId","secondClientDobFinal","otherPartyDob","getNameGuid","companyGuid","companyName","orgAddressBuildingName","orgAddressLevel","orgAddressNumber","orgAddressStreet1","orgAddressStreet2","orgAddressSuburb","orgAddressState","orgAddressPostCode","orgAddressCountry","orgPostalPoBoxType","orgPostalPoBox","orgPostalSuburb","orgPostalPostCode","reportingGroupGuid","recurringMatterTemplateId","personCredit","isCreditAgreementRequired","estimatedDisb","isEstimatedDisbIncludeTax","otherPartyCompanyGuid","historyFile","file","status","personAddressBuildingName","personAddressLevel","personAddressNumber","personAddressStreet1","personAddressStreet2","personAddressSuburb","personAddressState","personAddressPostCode","personAddressCountry","personPostalPoBoxType","personPostalPoBox","personPostalSuburb","personPostalState","personPostalPostCode","personPostalCountry","getAddressLabelForPanel","level","addressState","postCode","birthDateValidator","reset","onReset","disabledAddress","disabledPersonAddress","onCheckboxChanged","setConfig","onSelectionChanged","matterTypeValue","matterTypeName","tempReferrer","referrerValue","responsibleGuid","responsibleValue","responsibleName","actingGuid","actingValue","actingName","assistingValue","assistingName","assistingGuid","creditGuid","creditValue","creditName","costsEstimate","disbursementsEstimate","onExpandPanel","panel","expanded","orgAddressPanel","defaultExpanded","expandIcon","freeSolo","homeCountry","orgPostalAddressPanel","placeTypes","person2ExpandablePanel","maxDate","address2Panel","postalAddress2Panel","addressPanel","postalAddressPanel","anchor","Object","keys","openErrorPanel","onDiscardChanges","setTimeout","sourceSystem","trim","onConfirmed","stopPropagation","onFocus","allowNull","localStorage","getItem","PersonResponsible","PersonActing","includeNonPmsContacts","includePmsContacts","createMatterExpandablePanel","organisationExpandablePanel","personExpandablePanel","ControlType","commendField","dropzone","paddingTop","matterLabel","radioIcon","radioGroup","flexFlow","dropZoneFont","minHeight","dropZone","BookMeetingEmailDialog","applicationSettingsQuery","controlType","quill","fileSizeLimit","applications","systemOptions","emailSizeLimit","NEW_MEETING_NOTIFICATION","MEETING_BOOKING","bookMettingEmailTemplateQuery","BookEmailTemplateQuery","isMeetingAllDay","meetingLocation","meetingEnd","meetingStart","meetingTimezone","meetingFeeApplicable","isMeetingAssignedToTeam","meetingStaffEmail","emailAddress","meetingStaffGuid","meetingStaffName","createMeetingBooking","createMeetingBookingResult","message","called","GetFiles","document","sm","lg","justify","EmailValidateWithRequiredNew","emails","i","test","Fragment","emailContent","emailSubject","toEmailAddresses","ccEmailAddresses","ccAddresses","templates","emailDetail","emailStyle","EmailValidate","disableEnforceFocus","validating","onEditorChange","maxFileSize","showFileNames","useChipsForPreview","filesLimit","dropzoneText","dropzoneClass","existingFiles","newFiles","some","forEach","documentFile","url","push","onDelete","filteredFiles","onDrop","initialFiles","submit","matterSelectorWrapper","MarkClientAndMatterCreatedDialog","matter","formState","setFormState","tempMatter","fileNumber","isStandAlone","rootClassName","textLimit","description","SrcubOptionsEnum","closeButton","position","right","top","palette","grey","loadingWrapper","stepContent","stepInnerContent","contentDescription","marginBottom","waringDescription","enquiryName","finishIcon","enquirySelector","scrubDescription","ScrubEnquiryDataDialog","useState","activeStep","setActiveStep","scrubData","setScrubData","longerThanSixMonth","isScrubSubmitLoading","selectedEnquiries","isComplete","enquiriesScrubbed","totalEnquiries","scrubEnquiryDataMutation","SCRUB_ENQUIRY_DATA_MUTATION","scrubEnquiryDataByEnquiryMutation","SCRUB_ENQUIRY_DATA_BY_ENQUIRY_MUTATION","useEffect","enquiryScrubbingInProgressNotificationSubscriptionObj","subscribe","fetchPolicy","query","ENQUIRY_SCRUBBING_INPROGRESS_NOTIFICATION","next","tempNotification","enquiryScrubbingInProgressNotification","err","enquiryScrubbingCompleteNotificationSubscriptionObj","ENQUIRY_SCRUBBING_COMPLETE_NOTIFICATION","enquiryScrubbingCompleteNotification","unsubscribe","handleChange","prevSate","target","onChangeTextField","onSelectEnquiry","scrubOptionsSteps","selectFromEnquiry","multiple","disableCloseOnSelect","disableTypography","key","join","stepsContent","prevActiveStep","result","scrubEnquiryData","guids","selectedEnquiry","scrubEnquiryDataByEnquiry","MessageAssigneeDialog","messageAssignee","rows"],"mappings":"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","file":"static/js/main~c0916ec3.8aeee3aa.chunk.js","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { makeStyles, Theme, createStyles, Grid, FormControlLabel, Checkbox, TextField, Divider, Popper, PopperProps, Tooltip, Typography, IconButton } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\nimport { mainTheme } from '../../Theme';\r\nimport { Form, Field, FormSpy, FieldInputProps } from 'react-final-form';\r\nimport { AnyObject, FormApi } from 'final-form';\r\n// import { ActionTypeSelector } from '../selectors/ActionType';\r\n// import { OutcomeSelector } from '../selectors/OutcomeSelector';\r\nimport { ReasonSelector } from '../selectors/ReasonSelector';\r\nimport { client } from '../..';\r\nimport { showNotification } from '../../App';\r\nimport {\r\n FollowUpEnquiryMutation,\r\n EnquiryDetailsQueryParams,\r\n retrieveEnquiryDetailsData,\r\n CreateMeetingBookingTaskMutation,\r\n fetchAppUserData,\r\n AppUserData,\r\n AppUser,\r\n EnquiryDefaultConfig,\r\n retrieveEnquiryDefaultSettings,\r\n EnquiryDefaultSettings,\r\n} from '../EnquirySummaryRepository';\r\nimport moment from 'moment';\r\nimport { RvLoader } from '../../components/Loader';\r\nimport { EnquiryDetail, EnquiryData } from '../models/Enquiry';\r\nimport DialogBox from '../../Dashboard/Component/DialogBox';\r\nimport { KeyboardDateTimePicker } from '@material-ui/pickers/DateTimePicker/DateTimePicker';\r\nimport { ActionTypeRadio } from '../radio/ActionTypeRadio';\r\nimport { OutcomeRadio } from '../radio/OutcomeRadio';\r\nimport { TextFieldWithMention } from '../../components/TextFieldWithMention';\r\nimport { MentionItem } from 'react-mentions';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\r\nimport { CurrencyInput } from '../../components/CurrencyInput';\r\nimport { CurrencySymbolData, retrieveCurrencySymbolData } from '../../ClientAndContactDetails/referrals/ReferralsDetailsRepository';\r\nimport { SendEmailDialog } from './SendEmailDialog';\r\nimport { EmailTemplateTypeEnum } from '../../emailTemplatesConfiguration/EmailTemplateRespository';\r\nimport { EmailTemplateSelector } from '../selectors/EmailTemplateSelector';\r\nimport { addBusinessDays } from '../drawers/EnquiryFormDrawer';\r\nimport { ReminderSelector } from '../../components/ReminderSelector';\r\nimport { DocumentFile } from '../../types/DocumentFile';\r\nimport { ReferredToSelector } from '../selectors/ReferredToSelector';\r\nimport { IndividualNameSummary } from '../selectors/IndividualSelector';\r\nimport SyncAltIcon from '@material-ui/icons/SyncAlt';\r\nimport { IDownShiftItem } from 'mui-downshift';\r\nimport { OfficeLocationSelector } from '../selectors/OfficeLocationSelector';\r\nimport { TimezoneSelector } from '../../lookupConfiguration/selectors/TimezoneSelector';\r\nimport { EntityTypeEnum, UserStaffAndTeamAutoCompleteSelector } from '../selectors/UserStaffAndTeamAutoCompleteSelector';\r\nimport { useRegionSettings } from '../../hooks/useRegionSettings';\r\nimport { BookMeetingEmailDialog } from './BookMeetingEmailDialog';\r\nimport { UserFeature, UserFeatureEnum } from '../../types/UserFeature';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n // width: '100%',\r\n // show autocomplete when overlapping the dialog container\r\n // '& .MuiDialog-container > div': {\r\n // overflowY: 'visible'\r\n // },\r\n // '& .MuiDialogContent-root': {\r\n // overflowY: 'inherit'\r\n // }\r\n },\r\n textField: {\r\n width: '100%',\r\n flex: 1,\r\n },\r\n dialogTitle: {\r\n color: mainTheme.TemplateColor.Primary,\r\n '& .MuiTypography-root': {\r\n display: 'flex',\r\n margin: '0 -10px',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n '& .col': {\r\n padding: '0 10px',\r\n fontSize: '12px',\r\n color: '#000',\r\n },\r\n },\r\n },\r\n hideDate: {\r\n display: 'none',\r\n },\r\n startTimeWrapper: {\r\n display: 'flex',\r\n flex: 1,\r\n alignItems: 'center',\r\n },\r\n formControlLabel: {\r\n marginLeft: 0,\r\n marginRight: 0,\r\n },\r\n textFieldWrapper: {\r\n flex: 1,\r\n },\r\n staffWrapper: {\r\n fontSize: 16,\r\n color: mainTheme.TemplateColor.Primary,\r\n },\r\n divider: {\r\n width: '100%',\r\n },\r\n selector: {\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'flex-end',\r\n },\r\n customFieldGrid: {\r\n // paddingTop: '0px !important',\r\n },\r\n toggleFieldWrapepr: {\r\n display: 'flex',\r\n alignItems: 'flex-end',\r\n flex: 1,\r\n '& .field': {\r\n flex: 1,\r\n },\r\n '& .switcher': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n },\r\n }),\r\n);\r\n\r\nexport interface FollowUp {\r\n guid?: string;\r\n followUpAction: string | null;\r\n followUpActionSystemName: string | null;\r\n followUpSystemAction: string | null;\r\n followUpDate: Date | null;\r\n followUpNotes: string;\r\n hasFollowUpNotesMentions: boolean;\r\n outcome: string | null;\r\n outcomeDate: Date | null;\r\n outcomeNotes: string | null;\r\n reason: string | null;\r\n reasonGuidID: string | null;\r\n isFormChanged: boolean;\r\n staff: IAutoCompleteItem | null;\r\n startTime: Date | null;\r\n endTime: Date | null;\r\n isAllDay: boolean;\r\n officeLocation: IAutoCompleteItem | null;\r\n feeApplicable: number | null;\r\n isSendConfirmation: boolean;\r\n meetingNotes: string | null;\r\n timezone: IAutoCompleteItem | null;\r\n\r\n emailContent: string | null;\r\n emailSubject: string | null;\r\n fromEmailAddress: string | null;\r\n toEmailAddress: string | null;\r\n ccEmailAddress: string | null;\r\n\r\n emailTemplate: IAutoCompleteItem | null;\r\n\r\n followUpDueReminder: IAutoCompleteItem | null;\r\n\r\n updateFollowUpDueForInternalNote: boolean;\r\n outcomeDateChanged: boolean;\r\n files: DocumentFile[];\r\n\r\n isShowNotProceedingReferrer: boolean;\r\n isNotProceedingReferrerSwitched: boolean;\r\n referredToFirmSelector: IAutoCompleteItem | null;\r\n referredToFirmGuid: string | null;\r\n referredToFirmName: string | null;\r\n notProceedingOutcomeNotes: string | null;\r\n}\r\n\r\ninterface FollowUpDialogProps {\r\n guid?: string;\r\n onDialogClose?: () => void;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n canCreateMatter: boolean;\r\n followUpAction?: string;\r\n followUpActionSystemName?: string;\r\n followUpSystemAction?: string;\r\n}\r\n\r\ninterface FollowUpDialogState {\r\n isFormChanged: boolean;\r\n showDiscard: boolean;\r\n currency: string;\r\n isSendEmailDialogOpen: boolean;\r\n enquiryDefaultConfig?: EnquiryDefaultConfig;\r\n}\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const FollowUpDialog: React.FunctionComponent = (props) => {\r\n const classes = useStyles();\r\n // tslint:disable-next-line: no-any\r\n // const { isFollowUpOpen, onFollowUpClose }: any = useContext(EnquirySummaryContext);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const regionSettings = useRegionSettings();\r\n\r\n const [enquiryDetails, setEnquiryDetails] = useState({\r\n guid: props.guid,\r\n createdDate: moment().toDate(),\r\n createdByName: '',\r\n lastUpdated: moment().toDate(),\r\n isClosed: false,\r\n isContactCreated: false,\r\n isMatterCreated: false,\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n gender: 'Unknown',\r\n initialEnquiryDate: moment().toDate(),\r\n phone: '',\r\n mobile: '',\r\n sourceGuidID: null,\r\n source: '',\r\n isSourceReferrer: false,\r\n officeGuidID: null,\r\n office: '',\r\n sourceNotes: '',\r\n\r\n organisation: '',\r\n positionAtOrganisation: '',\r\n\r\n areaOfLaw: '',\r\n practiceAreaGuidID: null,\r\n natureOfEnquiry: '',\r\n\r\n internalNotes: null,\r\n files: [],\r\n\r\n assignedTo: null,\r\n assignedToName: null, // Display Name\r\n assignedToEmailAddress: null,\r\n assignedBy: null,\r\n assignedByName: null, // Display Name\r\n assignedByEmailAddress: null,\r\n dateAssigned: moment().toDate(),\r\n followUpDueDate: null,\r\n assignmentReminderOffset: null,\r\n\r\n followUpActionGuidID: null,\r\n followUpAction: null,\r\n followUpActionSystemName: null,\r\n followUpSystemAction: null,\r\n followUpDate: null,\r\n outcomeGuidID: null,\r\n outcome: null,\r\n outcomeDate: null,\r\n outcomeNotes: '',\r\n reasonGuidID: null,\r\n reason: null,\r\n followUpNotes: null,\r\n isKeyOpportunity: false,\r\n referrerGuid: null,\r\n referrerName: null,\r\n nameGuid: null,\r\n nameTitle: null,\r\n organisationGuid: null,\r\n\r\n estimatedFees: null,\r\n isEstimatedFeesIncludesTax: false,\r\n estimatedDisbursements: null,\r\n isEstimatedDisbursementsIncludesTax: false,\r\n enquiryQuality: null,\r\n likelihoodToProceed: null,\r\n clientFirstName: null,\r\n clientLastName: null,\r\n dOB: null,\r\n isMarketingConsent: false,\r\n isTermsAndConditionsApproved: false,\r\n isPrivacyStatementProvided: false,\r\n isConflictCheckPerformed: false,\r\n isNoConflict: false,\r\n isIdentityCheckPerformed: false,\r\n addressName: null,\r\n floor: null,\r\n number: null,\r\n street: null,\r\n clientAddressStreet2: null,\r\n suburb: null,\r\n state: null,\r\n postcode: null,\r\n country: null,\r\n pOBox: null,\r\n postalSuburb: null,\r\n postalState: null,\r\n postalPostCode: null,\r\n postalCountry: null,\r\n\r\n referredToFirmGuid: null,\r\n referredToFirmName: '',\r\n notProceedingOutcomeNotes: null,\r\n\r\n clientRelationshipToEnquirer: null,\r\n\r\n matterId: null,\r\n matterGuid: null,\r\n matterTitle: null,\r\n matterFileNumber: null,\r\n\r\n assignedToIsStaff: false,\r\n assignedToStaffGuid: null,\r\n assignedToStaffName: null,\r\n\r\n otherPartyFirstName: null,\r\n otherPartyLastName: null,\r\n otherPartyNotes: null,\r\n otherPartyEmail: null,\r\n otherPartyPhone: null,\r\n otherPartyMobile: null,\r\n otherPartyOrganisation: null,\r\n\r\n enquiryNotes: null,\r\n\r\n pOBoxType: null,\r\n\r\n integrationContactId: null,\r\n integrationClientId: null,\r\n integrationOtherPartyId: null,\r\n integrationMatterId: null,\r\n integrationMatterDocumentId: null,\r\n otherPartyDOB: null,\r\n otherPartyAddressName: null,\r\n otherPartyFloor: null,\r\n otherPartyNumber: null,\r\n otherPartyStreet: null,\r\n otherPartyStreet2: null,\r\n otherPartySuburb: null,\r\n otherPartyState: null,\r\n otherPartyPostcode: null,\r\n otherPartyCountry: null,\r\n\r\n otherPartyPOBoxType: null,\r\n otherPartyPOBox: null,\r\n otherPartyPostalSuburb: null,\r\n otherPartyPostalState: null,\r\n otherPartyPostalPostCode: null,\r\n otherPartyPostalCountry: null,\r\n otherPartyNameGuid: null,\r\n otherPartyOrganisationGuid: null,\r\n isRiskAssessed: null,\r\n riskLevel: null,\r\n riskLevelGuid: null,\r\n riskNotes: null,\r\n\r\n secondClientFirstName: null,\r\n secondClientLastName: null,\r\n secondClientRelationshipToEnquirer: null,\r\n secondClientGender: null,\r\n secondClientSuburb: null,\r\n secondClientState: null,\r\n secondClientPostCode: null,\r\n secondClientIsMarketingConsent: false,\r\n secondClientIsTermsAndConditionsApproved: false,\r\n secondClientIsPrivacyStatementProvided: false,\r\n secondClientIsConflictCheckPerformed: false,\r\n secondClientIsIdentityCheckPerformed: false,\r\n secondClientIsNoConflict: false,\r\n secondClientCountry: null,\r\n secondClientAddressName: null,\r\n secondClientFloor: null,\r\n secondClientNumber: null,\r\n secondClientStreet1: null,\r\n secondClientStreet2: null,\r\n secondClientDOB: null,\r\n secondClientPOBoxType: null,\r\n secondClientPOBox: null,\r\n secondClientPostalSuburb: null,\r\n secondClientPostalState: null,\r\n secondClientPostalPostCode: null,\r\n secondClientPostalCountry: null,\r\n secondClientGuid: null,\r\n\r\n responseText: null,\r\n\r\n eventAndCampaignGuid: null,\r\n eventAndCampaignName: null,\r\n eventAndCampaignNotes: null,\r\n eventAndCampaignNotesGuid: null,\r\n // hasFollowUpNotesMentions: false\r\n\r\n isNameFromDataSource: null,\r\n isOrganisationFromDataSource: null,\r\n isOtherSideFromDataSource: null,\r\n isSecondClientFromDataSource: null,\r\n\r\n clientTitle: null,\r\n otherPartyTitle: null,\r\n secondClientTitle: null,\r\n title: null,\r\n clientEmail: null,\r\n clientGuid: null,\r\n clientMobile: null,\r\n clientPhone: null,\r\n secondClientEmail: null,\r\n secondClientMobile: null,\r\n secondClientPhone: null,\r\n\r\n customFields: [],\r\n\r\n clickThroughUrl: null,\r\n utmSource: null,\r\n utmMedium: null,\r\n utmCampaign: null,\r\n utmContent: null,\r\n utmKeyword: null,\r\n googleClickIdentifier: null,\r\n facebookClickIdentifier: null,\r\n });\r\n\r\n const [appUser, setAppUser] = useState();\r\n\r\n const [state, setState] = useState({\r\n showDiscard: false,\r\n isFormChanged: false,\r\n currency: '$',\r\n isSendEmailDialogOpen: false,\r\n });\r\n\r\n useEffect(() => {\r\n // - Ran only once\r\n // If we recieve a guid, then fetch EnquiryDetails\r\n if (props.guid) {\r\n setIsLoading(true);\r\n fetchCurrency();\r\n fetchEnquiryDefaultSettings();\r\n fetchAppUserOnEffect();\r\n fetchEnquiryDetails(props.guid);\r\n }\r\n // tslint:disable-next-line: align\r\n }, [props.guid]);\r\n\r\n const fetchCurrency = () => {\r\n retrieveCurrencySymbolData(\r\n false,\r\n // tslint:disable-next-line: no-any\r\n (data: any) => onDataCurrency(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n },\r\n );\r\n };\r\n\r\n const onDataCurrency = (data: CurrencySymbolData) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n currency: data.options.currencySymbol.symbol,\r\n };\r\n });\r\n };\r\n\r\n const fetchEnquiryDefaultSettings = () => {\r\n retrieveEnquiryDefaultSettings(\r\n false,\r\n // tslint:disable-next-line: no-any\r\n (data: any) => onDataEnquiryDefaultSettingsRetrieved(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n },\r\n );\r\n };\r\n\r\n const onDataEnquiryDefaultSettingsRetrieved = (data: EnquiryDefaultSettings) => {\r\n if (data && data.settings && data.settings.systems && data.settings.systems.enquiryDefaults && data.settings.systems.enquiryDefaults.config) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n enquiryDefaultConfig: data.settings.systems.enquiryDefaults.config,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const fetchAppUserOnEffect = () => {\r\n fetchAppUserData(\r\n false,\r\n (data: AppUserData) => {\r\n handleAppUserFetch(data);\r\n },\r\n (reason) => {\r\n showNotification('Failed to Fetch App User Settings', reason, 'error');\r\n },\r\n );\r\n };\r\n\r\n const handleAppUserFetch = (data?: AppUserData) => {\r\n if (data !== null && data?.appUser !== undefined && data.appUser.isAdministrator !== undefined) {\r\n setAppUser((prevAppUser) => {\r\n // Object.assign would also work\r\n return {\r\n ...prevAppUser,\r\n userId: data.appUser.userId,\r\n name: data.appUser.name,\r\n isAdministrator: data.appUser.isAdministrator,\r\n userName: data.appUser.userName,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const displayLoader = () => {\r\n if (isLoading) {\r\n return ;\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n const fetchEnquiryDetails = (guid: string) => {\r\n var enquiryQueryParams: EnquiryDetailsQueryParams = {\r\n guid: guid,\r\n };\r\n\r\n retrieveEnquiryDetailsData(\r\n enquiryQueryParams,\r\n true,\r\n (data) => onDataRetrieved(data),\r\n // tslint:disable-next-line\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n setIsLoading(false);\r\n },\r\n );\r\n };\r\n\r\n const onDataRetrieved = (data: EnquiryData) => {\r\n setIsLoading(false);\r\n setEnquiryDetails(data.enquiry.detail);\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const required = (value: any) => {\r\n return value ? undefined : 'Required';\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const requiredDateValidator = (value: any) => {\r\n if (value) {\r\n // check for a valid date and check for sql's min date\r\n var date = moment(value);\r\n\r\n if (date.isValid() && date.year() >= 1753) {\r\n return undefined;\r\n } else {\r\n return 'Incorrect Date';\r\n }\r\n } else {\r\n return 'Required';\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onToggleBookMeetingEmailDialog = (form: FormApi, isOpen: boolean) => {\r\n form.change('isBookMeetingEmailDialogOpen', isOpen);\r\n };\r\n\r\n const actionButton = (\r\n // tslint:disable-next-line: no-any\r\n form: FormApi,\r\n submitting: boolean,\r\n pristine: boolean,\r\n // tslint:disable-next-line: no-any\r\n values: any,\r\n ) => {\r\n\r\n const isModifyAndSendPassRequirements = values.followUpSystemAction === 'BookMeeting' && values.staff \r\n && values.officeLocation && values.timezone && values.startTime && values.endTime\r\n && UserFeature.HasAccess(UserFeatureEnum.hasBookMeetingEmailPreview);\r\n\r\n return (\r\n
\r\n {isModifyAndSendPassRequirements && (\r\n onToggleBookMeetingEmailDialog(form, true)}\r\n >\r\n Review & Send\r\n \r\n )}\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n const onSubmit = (values: FollowUp) => {\r\n if (values.followUpActionSystemName === 'BookMeeting') {\r\n saveBookMetting(values);\r\n } else {\r\n saveFollowUp(values);\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const saveBookMetting = (values: any) => {\r\n let startDate = values.startTime === null ? moment() : moment(values.startTime);\r\n let endDate = values.endTime === null ? moment() : moment(values.endTime);\r\n\r\n let startDateValue = values.startTime === null ? moment().toDate() : moment(values.startTime).toDate();\r\n let endDateValue = values.endTime === null ? moment().toDate() : moment(values.endTime).toDate();\r\n\r\n // If UI timezone is different from location's timezone, then add the offset difference to start and end time.\r\n let locationUtcOffset = values.officeLocation.baseUtcOffset;\r\n let uiUtcOffset = new Date().getTimezoneOffset() * -1; // comparing with UI's offset because the graphql will convert to UTC based on the UI timezone\r\n\r\n if (locationUtcOffset !== uiUtcOffset && locationUtcOffset > 0) {\r\n let difference = uiUtcOffset - locationUtcOffset;\r\n startDateValue = moment(startDate).add(difference, 'minutes').toDate();\r\n endDateValue = moment(endDate).add(difference, 'minutes').toDate();\r\n }\r\n\r\n var isAssignedToTeam = (values.staff ? values.staff.entityType : 0) === 6;\r\n\r\n // book meeting\r\n client\r\n .mutate({\r\n mutation: CreateMeetingBookingTaskMutation,\r\n variables: {\r\n input: {\r\n enquiryGuid: props.guid ? props.guid : null,\r\n assignedTo: isAssignedToTeam ? (values.staff ? values.staff!.value : null) : enquiryDetails.assignedTo, // appUser ? appUser!.userId : null,\r\n followUpAction: values.followUpAction,\r\n followUpActionSystemName: values.followUpActionSystemName,\r\n startDate: startDateValue,\r\n endDate: endDateValue,\r\n isAllDay: values.isAllDay,\r\n location: values.officeLocation ? values.officeLocation!.label : null,\r\n feeApplicable: values.feeApplicable ? values.feeApplicable : null,\r\n sendConfirmation: values.isSendConfirmation,\r\n staff: values.staff ? values.staff!.value : null,\r\n staffEntityType: values.staff ? values.staff.entityType : null,\r\n meetingNotes: values.meetingNotes ? values.meetingNotes : null,\r\n },\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info');\r\n\r\n onFollowUpClosed();\r\n } else {\r\n showNotification('Failed to Save Follow up', results.data.error, 'error');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Save Follow up', reason, 'error');\r\n });\r\n };\r\n\r\n const saveFollowUp = (values: FollowUp) => {\r\n // Save the File\r\n client\r\n .mutate({\r\n mutation: FollowUpEnquiryMutation,\r\n variables: {\r\n input: getFollowUpEnquiryInput(values),\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info');\r\n\r\n onFollowUpClosed();\r\n } else {\r\n showNotification('Failed to Save Follow up', results.data.error, 'error');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Save Follow up', reason, 'error');\r\n });\r\n };\r\n\r\n const getFollowUpEnquiryInput = (values: FollowUp) => {\r\n return {\r\n enquiryGuid: props.guid,\r\n followUpAction: values.followUpAction,\r\n followUpActionSystemName: values.followUpActionSystemName,\r\n followUpDate: values.followUpDate === null ? null : moment(values.followUpDate).toDate(),\r\n outcome: values.outcome,\r\n outcomeDate:\r\n values.outcome === 'New Client' || values.outcome === 'New Matter' || values.outcome === 'Not Proceeding'\r\n ? !values.followUpDate\r\n ? null\r\n : moment(values.followUpDate).toDate()\r\n : !values.outcomeDate\r\n ? null\r\n : moment(values.outcomeDate).toDate(),\r\n outcomeNotes: values.outcomeNotes,\r\n reason: values.reason,\r\n reasonGuid: values.reasonGuidID,\r\n followUpNotes: values.followUpNotes,\r\n reminderOffset: values.outcome === 'More Follow Up' ? (values.followUpDueReminder ? values.followUpDueReminder.value : null) : null,\r\n updateFollowUpDueForInternalNote: values.updateFollowUpDueForInternalNote,\r\n\r\n referredToFirmName: values.referredToFirmName,\r\n referredToFirmGuid: values.referredToFirmGuid,\r\n notProceedingNotes: values.notProceedingOutcomeNotes,\r\n };\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onFormValueChanged = (form: FormApi, changeProps: any) => {\r\n if (!changeProps.pristine) {\r\n form.change('isFormChanged', true);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isFormChanged: true,\r\n };\r\n });\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onFollowUpChange = (form: FormApi, values: any, event: React.ChangeEvent, checked: boolean, value: string, systemAction: string) => {\r\n // tslint:disable-next-line: no-console\r\n // console.log(event);\r\n\r\n const followUpActionValue = event && event.currentTarget && event.currentTarget.value ? event.currentTarget.value : '';\r\n const followUpActionSystemName = value ? value : '';\r\n const followUpSystemAction = systemAction ? systemAction : '';\r\n\r\n form.batch(() => {\r\n form.change('followUpAction', followUpActionValue);\r\n form.change('followUpActionSystemName', followUpActionSystemName);\r\n form.change('followUpSystemAction', followUpSystemAction);\r\n\r\n if (systemAction && systemAction.toLowerCase() === 'internalnotes') {\r\n if (values.hasFollowUpNotesMentions === true && values.outcomeDateChanged === false) {\r\n form.change('updateFollowUpDueForInternalNote', true);\r\n } else {\r\n form.change('updateFollowUpDueForInternalNote', true);\r\n }\r\n }\r\n\r\n if (followUpSystemAction === 'CreateEmail') {\r\n setIsSubmitting(true);\r\n } else {\r\n setIsSubmitting(false);\r\n form.change('emailTemplate', null);\r\n }\r\n\r\n if (followUpActionValue && !values.outcome) {\r\n form.change('outcome', followUpActionValue ? 'More Follow Up' : '');\r\n }\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onOutcomeChange = (form: FormApi, values: any, event: React.ChangeEvent, checked: boolean) => {\r\n // tslint:disable-next-line: no-console\r\n console.log(event);\r\n\r\n const outcome = event && event.currentTarget && event.currentTarget.value ? event.currentTarget.value : '';\r\n form.batch(() => {\r\n form.change('outcome', outcome);\r\n\r\n if (outcome !== 'Not Proceeding') {\r\n form.change('reason', null);\r\n form.change('reasonGuidID', null);\r\n form.change('isShowNotProceedingReferrer', false);\r\n }\r\n });\r\n\r\n // if (outcome && !values.outcomeDate) {\r\n // form.change('outcomeDate', null);\r\n // }\r\n };\r\n\r\n const onClose = () => {\r\n if (state.isFormChanged) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: true,\r\n };\r\n });\r\n } else {\r\n onFollowUpClosed();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onDiscardChanges = (agree: boolean) => {\r\n if (agree) {\r\n onFollowUpClosed();\r\n } else {\r\n // showDiscard false\r\n // form.change('showDiscard', false);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: false,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onFollowUpClosed = () => {\r\n if (props.onDialogClose) {\r\n props.onDialogClose();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any max-line-length\r\n const onDateTimePickerChange = (input: FieldInputProps, formApi: FormApi) => (date: MaterialUiPickersDate, value?: string | null | undefined) => {\r\n let defaultMeetingMinutes = 60;\r\n\r\n if (state.enquiryDefaultConfig) {\r\n var defaultMeetingLength = state.enquiryDefaultConfig.defaultMeetingLength;\r\n var meetingLengthSplit = defaultMeetingLength.split(':'); // split it at the colons\r\n defaultMeetingMinutes = +meetingLengthSplit[0] * 60 + +meetingLengthSplit[1];\r\n }\r\n\r\n input.onChange(date);\r\n formApi.batch(() => {\r\n formApi.change('endTime', moment(date).add(defaultMeetingMinutes, 'minute').toDate());\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onOutcomeDateChange = (input: FieldInputProps, formApi: FormApi) => (date: MaterialUiPickersDate, value?: string | null | undefined) => {\r\n input.onChange(date);\r\n\r\n formApi.batch(() => {\r\n formApi.change('updateFollowUpDueForInternalNote', true);\r\n formApi.change('outcomeDateChanged', true);\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: max-line-length no-any\r\n const onChangeAllDay = (input: FieldInputProps, formApi: FormApi, values: AnyObject) => (event: React.ChangeEvent, checked: boolean) => {\r\n input.onChange(checked);\r\n if (checked) {\r\n const startDate = moment(values.startTime).set({ hours: 9, minutes: 0, seconds: 0, milliseconds: 0 }).toDate();\r\n const endDate = moment(values.endTime).set({ hours: 17, minutes: 0, seconds: 0, milliseconds: 0 }).toDate();\r\n formApi.batch(() => {\r\n formApi.change('startTime', startDate);\r\n formApi.change('endTime', endDate);\r\n });\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onDropdownChange = (selection: IAutoCompleteItem, name: string, input: FieldInputProps, form: FormApi, valueGuid: string) => {\r\n input.onChange(selection.label.length > 0 ? selection.label : null);\r\n\r\n if (name === 'reason') {\r\n form.change('reasonGuidID', valueGuid.length > 0 ? valueGuid : null);\r\n } else if (name === 'notProceedingReason') {\r\n form.change('notProceedingReasonGuid', valueGuid.length > 0 ? valueGuid : null);\r\n }\r\n\r\n if (selection.secondaryValue) {\r\n form.change('isShowNotProceedingReferrer', selection.secondaryValue);\r\n } else {\r\n form.change('isShowNotProceedingReferrer', false);\r\n\r\n form.change('referredToFirmSelector', null);\r\n form.change('referredToFirmName', '');\r\n form.change('referredToFirmGuid', null);\r\n form.change('isNotProceedingReferrerSwitched', false);\r\n }\r\n };\r\n // tslint:disable-next-line: no-any max-line-length\r\n const onDropDownSelect = (form: FormApi, values: AnyObject, input: FieldInputProps, selection: IndividualNameSummary | IDownShiftItem | any, name: string) => {\r\n if (name === 'referredToFirmSelector') {\r\n form.batch(() => {\r\n const referredToFirmSelectorValue: IAutoCompleteItem = {\r\n label: selection && selection.label ? selection.label : '',\r\n value: selection && selection.value ? selection.value : null,\r\n };\r\n\r\n form.change('referredToFirmSelector', referredToFirmSelectorValue);\r\n form.change('referredToFirmName', selection && selection.label ? selection.label : '');\r\n form.change('referredToFirmGuid', selection && selection.value ? selection.value : null);\r\n });\r\n }\r\n };\r\n\r\n const onSwitch = (form: FormApi, values: AnyObject, name: string) => {\r\n if (name === 'referredToFirm') {\r\n form.batch(() => {\r\n form.change('isNotProceedingReferrerSwitched', !values.isNotProceedingReferrerSwitched);\r\n // form.change('isShowNotProceedingReferrer', !values.isShowNotProceedingReferrer);\r\n form.change('referredToFirmSelector', null);\r\n form.change('referredToFirmGuid', null);\r\n form.change('referredToFirmName', '');\r\n });\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onEmailTemplateChange = (form: FormApi, selection: IAutoCompleteItem) => {\r\n form.change('emailTemplate', selection);\r\n\r\n if (selection && selection.value) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isSendEmailDialogOpen: true,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const CustomPopper = function (popperProps: PopperProps) {\r\n return ;\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onSendEmailDialogClose = (form: FormApi) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isSendEmailDialogOpen: false,\r\n };\r\n });\r\n\r\n // Change back to default value\r\n form.batch(() => {\r\n form.change('emailTemplate', null);\r\n form.change('followUpAction', 'Emailed');\r\n form.change('followUpActionSystemName', 'Emailed');\r\n form.change('followUpSystemAction', null);\r\n });\r\n };\r\n\r\n const getReminderValue = () => {\r\n if (enquiryDetails && enquiryDetails.assignmentReminderOffset) {\r\n return { label: enquiryDetails.assignmentReminderOffset, value: enquiryDetails.assignmentReminderOffset };\r\n } else if (state.enquiryDefaultConfig && state.enquiryDefaultConfig.reminder) {\r\n return { label: state.enquiryDefaultConfig.reminder, value: state.enquiryDefaultConfig.reminder };\r\n } else {\r\n return { label: 'None', value: 'None' };\r\n }\r\n };\r\n\r\n const getOutcomeDateDefaultValue = () => {\r\n // check outcome date (FollowUpDue)\r\n let outcomeDate: Date | null = null;\r\n\r\n if (state.enquiryDefaultConfig) {\r\n let hours = 0;\r\n let minutes = 0;\r\n let validTimeOfDay = false;\r\n\r\n if (state.enquiryDefaultConfig.timeOfDay && state.enquiryDefaultConfig.timeOfDay.toLowerCase() !== 'invalid date') {\r\n var timeOfDaySplit = state.enquiryDefaultConfig.timeOfDay ? state.enquiryDefaultConfig.timeOfDay.split(':') : null;\r\n\r\n if (timeOfDaySplit) {\r\n validTimeOfDay = true;\r\n hours = Number(timeOfDaySplit[0]);\r\n minutes = Number(timeOfDaySplit[1]);\r\n }\r\n }\r\n\r\n if (state.enquiryDefaultConfig.isCalculatedDays) {\r\n let date = addBusinessDays(moment().toDate(), state.enquiryDefaultConfig.addDays ? state.enquiryDefaultConfig.addDays : 0);\r\n\r\n if (validTimeOfDay) {\r\n outcomeDate = date.set('hour', hours).set('minute', minutes).toDate();\r\n } else {\r\n outcomeDate = date.toDate();\r\n }\r\n } else if (state.enquiryDefaultConfig.isCalculatedHours) {\r\n let addhours = state.enquiryDefaultConfig.addHours ? state.enquiryDefaultConfig.addHours : 0;\r\n\r\n outcomeDate = moment().add(addhours, 'hour').toDate();\r\n }\r\n\r\n // Manual default time is set through getOutcomeDefaultTime()\r\n }\r\n\r\n return outcomeDate;\r\n };\r\n\r\n const getOutcomeDefaultTime = () => {\r\n let defaultTime = new Date().setHours(17, 0, 0, 0);\r\n\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (\r\n state.enquiryDefaultConfig &&\r\n state.enquiryDefaultConfig.isManualEntry &&\r\n state.enquiryDefaultConfig.timeOfDay &&\r\n state.enquiryDefaultConfig.timeOfDay.toLowerCase() !== 'invalid date'\r\n ) {\r\n var timeOfDaySplit = state.enquiryDefaultConfig.timeOfDay ? state.enquiryDefaultConfig.timeOfDay.split(':') : null;\r\n\r\n if (timeOfDaySplit) {\r\n hours = Number(timeOfDaySplit[0]);\r\n minutes = Number(timeOfDaySplit[1]);\r\n }\r\n\r\n defaultTime = new Date().setHours(hours, minutes, 0, 0);\r\n }\r\n\r\n return defaultTime;\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onChangeSelection = (selection: any, input: FieldInputProps, form: FormApi, name: string) => {\r\n form.batch(() => {\r\n if (name === 'staff') {\r\n input.onChange(selection);\r\n if (selection) {\r\n if (selection.hasOwnProperty('entityType') && selection.entityType === EntityTypeEnum.TEAM) {\r\n form.change('isSendConfirmation', false);\r\n }\r\n if (selection.hasOwnProperty('entityType') && selection.entityType === EntityTypeEnum.STAFF) {\r\n form.change('isSendConfirmation', true);\r\n }\r\n } else {\r\n form.change('isSendConfirmation', true);\r\n }\r\n }\r\n\r\n if (name === 'officeLocation') {\r\n input.onChange(selection);\r\n\r\n if (selection && selection.hasOwnProperty('timezone') && selection.hasOwnProperty('timezoneDescription') && selection.timezone && selection.timezoneDescription) {\r\n const timezoneSelector = {\r\n label: selection.timezoneDescription,\r\n value: selection.timezone,\r\n secondaryValue: selection.baseUtcOffset,\r\n };\r\n form.change('timezone', timezoneSelector);\r\n } else {\r\n\r\n const { timeZone, timeZoneDescription, baseUtcOffset } = regionSettings.data!.settings.systems.regionSettings.config;\r\n\r\n const timezoneSelector = {\r\n label: timeZoneDescription,\r\n value: timeZone,\r\n secondaryValue: baseUtcOffset,\r\n };\r\n\r\n form.change('timezone', timezoneSelector);\r\n }\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isLoading || regionSettings.loading ? (\r\n displayLoader()\r\n ) : (\r\n true}\r\n // keepDirtyOnReinitialize={true}\r\n subscription={{ submitting: true, pristine: true, values: true }}\r\n validate={(values) => {\r\n let errors = {\r\n followUpDate: '',\r\n outcomeDate: '',\r\n rason: '',\r\n endTime: '',\r\n };\r\n\r\n if (values.followUpAction) {\r\n let followUpDateError = requiredDateValidator(values.followUpDate);\r\n errors.followUpDate = followUpDateError !== undefined ? followUpDateError : '';\r\n }\r\n\r\n if (!values.hasFollowUpNotesMentions && values.followUpDate && values.outcome === 'More Follow Up') {\r\n let outcomeDateError = requiredDateValidator(values.followUpDate);\r\n errors.outcomeDate = outcomeDateError !== undefined ? outcomeDateError : '';\r\n }\r\n\r\n if (values.outcome && values.outcome === 'Not Proceeding') {\r\n errors.rason = values.reason ? '' : 'Reason is required';\r\n }\r\n\r\n if (errors.followUpDate === '' && errors.outcomeDate === '' && errors.rason === '') {\r\n return undefined;\r\n }\r\n\r\n return errors;\r\n }}\r\n render={({ handleSubmit, form, submitting, pristine, values }) => (\r\n
\r\n {displayLoader()}\r\n {\r\n onFormValueChanged(form, props);\r\n }}\r\n />\r\n\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n <>\r\n {values.isBookMeetingEmailDialogOpen && (\r\n onToggleBookMeetingEmailDialog(form, false)}\r\n open={values.isBookMeetingEmailDialogOpen}\r\n staff={values.staff}\r\n officeLocation={values.officeLocation ? values.officeLocation.value : null}\r\n timezone={values.timezone ? values.timezone.value : null}\r\n startTime={values.startTime}\r\n endTime={values.endTime}\r\n isAllDay={values.isAllDay}\r\n meetingNotes={values.meetingNotes}\r\n feeApplicable={values.feeApplicable}\r\n assignedTo={enquiryDetails.assignedTo}\r\n />\r\n )}\r\n \r\n )}\r\n \r\n \r\n
Follow Up
\r\n
\r\n {enquiryDetails.assignedTo\r\n ? 'Assigned to ' +\r\n enquiryDetails.assignedToName +\r\n (enquiryDetails.followUpDueDate && enquiryDetails.followUpDueDate !== null\r\n ? ', due by ' + (enquiryDetails.followUpDueDate ? moment(enquiryDetails.followUpDueDate).format('DD MMM YYYY') : 'None')\r\n : '')\r\n : ''}\r\n
\r\n
\r\n \r\n \r\n {!!!props.followUpAction && (\r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n ,\r\n checked: boolean,\r\n value: string,\r\n systemAction: string,\r\n ) => onFollowUpChange(form, values, event, checked, value, systemAction)}\r\n />\r\n )}\r\n \r\n \r\n )}\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => {\r\n if (values.followUpActionSystemName === 'BookMeeting') {\r\n return (\r\n <>\r\n {!!!props.followUpAction && }\r\n \r\n \r\n {!!(props.firstName && props.lastName && props.email) && (\r\n \r\n \r\n {`Meeting booking for ${props.firstName} ${props.lastName} (${props.email})`}\r\n \r\n \r\n )}\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n onChangeSelection(selection, input, form, name)\r\n }\r\n onBlur={input.onBlur}\r\n error={meta.error && meta.touched}\r\n disablePortal={false}\r\n className={classes.textField}\r\n helperText={\r\n meta.error && meta.touched\r\n ? 'Staff or Team is required'\r\n : 'The person or team in the firm who the meeting is with'\r\n }\r\n />\r\n
\r\n )}\r\n \r\n
\r\n \r\n {!!(values.staff && values.staff.entityType === EntityTypeEnum.STAFF) && (\r\n \r\n {({ input, meta }) => (\r\n }\r\n />\r\n }\r\n label=\"Send Confirmation\"\r\n />\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n onChangeSelection(selection, input, form, name)\r\n }\r\n // tslint:disable-next-line: max-line-length\r\n // onSelection={(selection: IAutoCompleteItem, name: string) =>\r\n // input.onChange(selection)\r\n // }\r\n onBlur={input.onBlur}\r\n helperText={meta.error && meta.touched ? 'Location is required' : undefined}\r\n showAllOffice={true}\r\n disablePortal={false}\r\n />\r\n
\r\n )}\r\n \r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(selection)}\r\n className={classes.textField}\r\n disablePortal={false}\r\n onBlur={input.onBlur}\r\n error={meta.error && meta.touched}\r\n helperText={meta.error && meta.touched ? 'Timezone is required' : undefined}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n {({ input, meta }) => (\r\n }\r\n />\r\n }\r\n label=\"All day\"\r\n />\r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n } else if (values.followUpSystemAction === 'CreateEmail') {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n onEmailTemplateChange(form, selection)\r\n }\r\n onBlur={input.onBlur}\r\n helperText={meta.error && meta.touched ? 'Email Template is required' : undefined}\r\n PopperComponent={CustomPopper}\r\n areaOfLaw={enquiryDetails.areaOfLaw ? enquiryDetails.areaOfLaw : ''}\r\n emailType={EmailTemplateTypeEnum.EMAIL_RESPONSE}\r\n disablePortal={false}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n <>\r\n {values.followUpSystemAction === 'CreateEmail' && values.emailTemplate && (\r\n onSendEmailDialogClose(form)}\r\n isSendEmailDialogOpen={state.isSendEmailDialogOpen}\r\n enquiryDefaultConfig={state.enquiryDefaultConfig}\r\n canCreateMatter={props.canCreateMatter}\r\n />\r\n )}\r\n \r\n
\r\n
\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {/* Without FormSpy, rules will not update in Realtime */}\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n
\r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(newValue);\r\n\r\n if (mentions && mentions.length > 0) {\r\n form.batch(() => {\r\n // tslint:disable-next-line: max-line-length\r\n // If we have mentions, change the Follow Up Action to - Internal Note\r\n // And mark Follow Up Due as not mandatory\r\n form.change('followUpAction', 'Internal Note');\r\n form.change('followUpActionSystemName', 'InternalNote');\r\n\r\n form.change('hasFollowUpNotesMentions', true);\r\n form.change('updateFollowUpDueForInternalNote', true);\r\n // tslint:disable-next-line: max-line-length\r\n });\r\n } else {\r\n form.change('hasFollowUpNotesMentions', false);\r\n }\r\n }}\r\n onlyUsedByEnquiries={true}\r\n isLoadData={true}\r\n />\r\n // \r\n )}\r\n \r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n , checked: boolean) =>\r\n onOutcomeChange(form, values, event, checked)\r\n }\r\n />\r\n )}\r\n \r\n \r\n\r\n {/* Without FormSpy, rules will not update in Realtime */}\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable max-line-length*/}\r\n {({ values }) => values.outcome === 'More Follow Up' && (\r\n \r\n \r\n \r\n
\r\n \r\n {({ input, meta }) => (\r\n \r\n // tslint:disable-next-line:max-line-length\r\n //
\r\n\r\n //
\r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n {\r\n input.onChange(selection);\r\n }}\r\n error={meta.error && meta.touched}\r\n helperText={meta.error && meta.touched ? meta.error : ''}\r\n showIcon={true}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => values.outcome === 'Not Proceeding' && (\r\n <>\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n {\r\n // tslint:disable-next-line: max-line-length\r\n onDropdownChange(selection, name, input, form, reasonGuid);\r\n }}\r\n required={form.getFieldState('outcome')?.value === 'Not Proceeding' ? true : false}\r\n disabled={form.getFieldState('outcome')?.value !== 'Not Proceeding' ? true : false}\r\n disablePortal={false}\r\n />\r\n
\r\n )}\r\n \r\n
\r\n {values.isShowNotProceedingReferrer && (\r\n \r\n
\r\n
\r\n {values.isNotProceedingReferrerSwitched ? (\r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection);\r\n onDropDownSelect(form, values, input, selection, name);\r\n }}\r\n />\r\n )}\r\n \r\n )}\r\n
\r\n
\r\n \r\n Switch to select an existing client & contact\r\n \r\n ) : (\r\n // tslint:disable-next-line: max-line-length\r\n \r\n Switch to enter the referred to name\r\n \r\n )\r\n }\r\n >\r\n {\r\n // Another approach.\r\n onSwitch(form, values, 'referredToFirm');\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n )}\r\n
\r\n \r\n );\r\n }\r\n }}\r\n
\r\n
\r\n {/* {printJson(values)} */}\r\n
\r\n {actionButton(form, submitting, pristine, values)}\r\n \r\n )}\r\n />\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\n// function printJson(values: FollowUp) {\r\n// if (values) {\r\n// return (\r\n// <>\r\n//
\r\n//                     {JSON.stringify(values, undefined, 2)}\r\n//                 
\r\n// \r\n// );\r\n// } else {\r\n// return (\r\n// <>\r\n// \r\n// {/* tslint:disable-next-line: no-shadowed-variable */}\r\n// {({ values }) => (\r\n//
\r\n//                             {JSON.stringify(values, undefined, 2)}\r\n//                             {/*  */}\r\n//                         
\r\n// )}\r\n//
\r\n// \r\n// );\r\n// }\r\n// }\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { makeStyles, Theme, createStyles, Grid } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport UserSelector from '../../components/UserSelector';\r\nimport { IDownShiftItem } from 'mui-downshift';\r\nimport { mainTheme } from '../../Theme';\r\nimport { Form, Field, FormSpy, FieldInputProps, AnyObject } from 'react-final-form';\r\nimport { FormApi } from 'final-form';\r\nimport {\r\n AssignStaffToEnquiryMutation,\r\n EnquiryDefaultConfig,\r\n EnquiryDefaultSettings,\r\n EnquiryDetailsQueryParams,\r\n retrieveEnquiryDefaultSettings,\r\n retrieveEnquiryDetailsData,\r\n} from '../EnquirySummaryRepository';\r\nimport { client } from '../..';\r\nimport { showNotification } from '../../App';\r\nimport moment from 'moment';\r\nimport { RvLoader } from '../../components/Loader';\r\nimport { EnquiryDetail, EnquiryData } from '../models/Enquiry';\r\nimport DialogBox from '../../Dashboard/Component/DialogBox';\r\nimport { KeyboardDateTimePicker } from '@material-ui/pickers/DateTimePicker/DateTimePicker';\r\nimport { addBusinessDays } from '../drawers/EnquiryFormDrawer';\r\nimport { ReminderSelector } from '../../components/ReminderSelector';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n // show autocomplete when overlapping the dialog container\r\n '& .MuiDialog-container > div': {\r\n overflowY: 'visible',\r\n },\r\n },\r\n textField: {\r\n width: '100%',\r\n },\r\n dialogTitle: {\r\n color: mainTheme.TemplateColor.Primary,\r\n '& .MuiTypography-root': {\r\n display: 'flex',\r\n margin: '0 -10px',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n '& .col': {\r\n padding: '0 10px',\r\n fontSize: '12px',\r\n color: '#000',\r\n },\r\n },\r\n },\r\n selector: {\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'flex-end',\r\n },\r\n })\r\n);\r\n\r\nexport interface AssignLawyer {\r\n guid?: string;\r\n\r\n dateAssigned: Date | null;\r\n assignedTo: string | null;\r\n assignedToName: string | null;\r\n followUpDueDate: Date | null;\r\n assignedBy: string | null;\r\n assignedByName: string | null;\r\n assignmentFollowUpDueReminder: IAutoCompleteItem | null;\r\n}\r\n\r\ninterface AssignDialogProps {\r\n guid?: string;\r\n assignedBy: string;\r\n assignedByName: string;\r\n onDialogClose?: () => void;\r\n}\r\n\r\ninterface AssignDialogState {\r\n isFormChanged: boolean;\r\n showDiscard: boolean;\r\n enquiryDefaultConfig?: EnquiryDefaultConfig;\r\n}\r\n\r\n// tslint:disable-next-line: no-anyW\r\nexport const AssignDialog: React.FC = (props) => {\r\n const classes = useStyles();\r\n // tslint:disable-next-line: no-any\r\n // const { isAssignOpen, onAssignClose }: any = useContext(EnquirySummaryContext);\r\n\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [enquiryDetail, setEnquiryDetails] = useState({\r\n guid: props.guid,\r\n createdDate: moment().toDate(),\r\n createdByName: '',\r\n lastUpdated: moment().toDate(),\r\n isClosed: false,\r\n isContactCreated: false,\r\n isMatterCreated: false,\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n gender: 'Unknown',\r\n initialEnquiryDate: moment().toDate(),\r\n phone: '',\r\n mobile: '',\r\n sourceGuidID: null,\r\n source: '',\r\n isSourceReferrer: false,\r\n officeGuidID: null,\r\n office: '',\r\n sourceNotes: '',\r\n\r\n organisation: '',\r\n positionAtOrganisation: '',\r\n\r\n areaOfLaw: '',\r\n practiceAreaGuidID: null,\r\n natureOfEnquiry: '',\r\n\r\n internalNotes: null,\r\n files: [],\r\n\r\n assignedTo: null,\r\n assignedToName: null, // Display Name\r\n assignedToEmailAddress: null,\r\n assignedBy: null,\r\n assignedByName: null, // Display Name\r\n assignedByEmailAddress: null,\r\n dateAssigned: moment().toDate(),\r\n followUpDueDate: null,\r\n assignmentReminderOffset: null,\r\n\r\n followUpActionGuidID: null,\r\n followUpAction: null,\r\n followUpActionSystemName: null,\r\n followUpSystemAction: null,\r\n followUpDate: null,\r\n outcomeGuidID: null,\r\n outcome: null,\r\n outcomeDate: null,\r\n outcomeNotes: null,\r\n reasonGuidID: null,\r\n reason: null,\r\n followUpNotes: null,\r\n isKeyOpportunity: false,\r\n referrerGuid: null,\r\n referrerName: null,\r\n nameGuid: null,\r\n nameTitle: null,\r\n organisationGuid: null,\r\n\r\n estimatedFees: null,\r\n isEstimatedFeesIncludesTax: false,\r\n estimatedDisbursements: null,\r\n isEstimatedDisbursementsIncludesTax: false,\r\n enquiryQuality: null,\r\n likelihoodToProceed: null,\r\n clientFirstName: null,\r\n clientLastName: null,\r\n dOB: null,\r\n isMarketingConsent: false,\r\n isTermsAndConditionsApproved: false,\r\n isPrivacyStatementProvided: false,\r\n isConflictCheckPerformed: false,\r\n isNoConflict: false,\r\n isIdentityCheckPerformed: false,\r\n addressName: null,\r\n floor: null,\r\n number: null,\r\n street: null,\r\n clientAddressStreet2: null,\r\n suburb: null,\r\n state: null,\r\n postcode: null,\r\n country: null,\r\n pOBox: null,\r\n postalSuburb: null,\r\n postalState: null,\r\n postalPostCode: null,\r\n postalCountry: null,\r\n\r\n referredToFirmGuid: null,\r\n referredToFirmName: '',\r\n notProceedingOutcomeNotes: null,\r\n\r\n clientRelationshipToEnquirer: null,\r\n\r\n matterId: null,\r\n matterGuid: null,\r\n matterTitle: null,\r\n matterFileNumber: null,\r\n\r\n assignedToIsStaff: false,\r\n assignedToStaffGuid: null,\r\n assignedToStaffName: null,\r\n\r\n otherPartyFirstName: null,\r\n otherPartyLastName: null,\r\n otherPartyNotes: null,\r\n otherPartyEmail: null,\r\n otherPartyPhone: null,\r\n otherPartyMobile: null,\r\n otherPartyOrganisation: null,\r\n\r\n enquiryNotes: null,\r\n\r\n pOBoxType: null,\r\n\r\n integrationContactId: null,\r\n integrationClientId: null,\r\n integrationOtherPartyId: null,\r\n integrationMatterId: null,\r\n integrationMatterDocumentId: null,\r\n otherPartyDOB: null,\r\n otherPartyAddressName: null,\r\n otherPartyFloor: null,\r\n otherPartyNumber: null,\r\n otherPartyStreet: null,\r\n otherPartyStreet2: null,\r\n otherPartySuburb: null,\r\n otherPartyState: null,\r\n otherPartyPostcode: null,\r\n otherPartyCountry: null,\r\n\r\n otherPartyPOBoxType: null,\r\n otherPartyPOBox: null,\r\n otherPartyPostalSuburb: null,\r\n otherPartyPostalState: null,\r\n otherPartyPostalPostCode: null,\r\n otherPartyPostalCountry: null, \r\n otherPartyNameGuid: null,\r\n otherPartyOrganisationGuid: null,\r\n\r\n isRiskAssessed: null,\r\n riskLevel: null,\r\n riskLevelGuid: null,\r\n riskNotes: null,\r\n\r\n secondClientFirstName: null,\r\n secondClientLastName: null,\r\n secondClientRelationshipToEnquirer: null,\r\n secondClientGender: null,\r\n secondClientSuburb: null,\r\n secondClientState: null,\r\n secondClientPostCode: null,\r\n secondClientIsMarketingConsent: false,\r\n secondClientIsTermsAndConditionsApproved: false,\r\n secondClientIsPrivacyStatementProvided: false,\r\n secondClientIsConflictCheckPerformed: false,\r\n secondClientIsIdentityCheckPerformed: false,\r\n secondClientIsNoConflict: false,\r\n secondClientCountry: null,\r\n secondClientAddressName: null,\r\n secondClientFloor: null,\r\n secondClientNumber: null,\r\n secondClientStreet1: null,\r\n secondClientStreet2: null,\r\n secondClientDOB: null,\r\n secondClientPOBoxType: null,\r\n secondClientPOBox: null,\r\n secondClientPostalSuburb: null,\r\n secondClientPostalState: null,\r\n secondClientPostalPostCode: null,\r\n secondClientPostalCountry: null,\r\n secondClientGuid: null,\r\n\r\n responseText: null,\r\n\r\n eventAndCampaignGuid: null,\r\n eventAndCampaignName: null,\r\n eventAndCampaignNotes: null,\r\n eventAndCampaignNotesGuid: null,\r\n\r\n isNameFromDataSource: null,\r\n isOrganisationFromDataSource: null,\r\n isOtherSideFromDataSource: null,\r\n isSecondClientFromDataSource: null,\r\n\r\n clientTitle: null,\r\n otherPartyTitle: null,\r\n secondClientTitle: null,\r\n title: null,\r\n clientEmail: null,\r\n clientGuid: null,\r\n clientMobile: null,\r\n clientPhone: null,\r\n secondClientEmail: null,\r\n secondClientMobile: null,\r\n secondClientPhone: null,\r\n\r\n customFields: [],\r\n\r\n clickThroughUrl: null,\r\n utmSource: null,\r\n utmMedium: null,\r\n utmCampaign: null,\r\n utmContent: null,\r\n utmKeyword: null,\r\n googleClickIdentifier: null,\r\n facebookClickIdentifier: null,\r\n });\r\n\r\n const [state, setState] = useState({\r\n showDiscard: false,\r\n isFormChanged: false,\r\n });\r\n\r\n useEffect(() => {\r\n // - Ran only once\r\n // If we recieve a guid, then fetch EnquiryDetails\r\n if (props.guid) {\r\n fetchEnquiryDefaultSettings();\r\n fetchEnquiryDetails(props.guid);\r\n setIsLoading(true);\r\n }\r\n // tslint:disable-next-line: align\r\n }, [props.guid]);\r\n\r\n const displayLoader = () => {\r\n if (isLoading) {\r\n return ;\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n const fetchEnquiryDefaultSettings = () => {\r\n retrieveEnquiryDefaultSettings(\r\n true,\r\n // tslint:disable-next-line: no-any\r\n (data: any) => onDataEnquiryDefaultSettingsRetrieved(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n }\r\n );\r\n };\r\n\r\n const onDataEnquiryDefaultSettingsRetrieved = (data: EnquiryDefaultSettings) => {\r\n if (data && data.settings && data.settings.systems && data.settings.systems.enquiryDefaults && data.settings.systems.enquiryDefaults.config) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n enquiryDefaultConfig: data.settings.systems.enquiryDefaults.config,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const fetchEnquiryDetails = (guid: string) => {\r\n var enquiryQueryParams: EnquiryDetailsQueryParams = {\r\n guid: guid,\r\n };\r\n\r\n retrieveEnquiryDetailsData(\r\n enquiryQueryParams,\r\n true,\r\n (data) => onDataRetrieved(data),\r\n // tslint:disable-next-line\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n setIsLoading(false);\r\n }\r\n );\r\n };\r\n\r\n const onDataRetrieved = (data: EnquiryData) => {\r\n setIsLoading(false);\r\n setEnquiryDetails(data.enquiry.detail);\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const required = (value: any) => {\r\n return value ? undefined : 'Required';\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onDropDownSelect = (\r\n // tslint:disable-next-line: no-any\r\n form: FormApi,\r\n values: AnyObject,\r\n // tslint:disable-next-line: no-any\r\n input: FieldInputProps,\r\n selection: IDownShiftItem,\r\n name: string\r\n ) => {\r\n if (name === 'assignedTo') {\r\n form.batch(() => {\r\n form.change('assignedTo', selection.value ? selection.value : null);\r\n form.change('assignedToName', selection.label ? selection.label : null);\r\n\r\n if (selection.value !== undefined) {\r\n // only set assignment's follow up due value when we select assigned to value\r\n let followUpDueValue = getFollowUpDueDefaultValue();\r\n form.change('followUpDueDate', followUpDueValue);\r\n }\r\n });\r\n } else if (name === 'assignedBy') {\r\n form.change('assignedBy', selection.value ? selection.value : null);\r\n form.change('assignedByName', selection.label ? selection.label : null);\r\n }\r\n };\r\n\r\n const actionButton = (\r\n // tslint:disable-next-line: no-any\r\n form: FormApi,\r\n submitting: boolean,\r\n pristine: boolean,\r\n // tslint:disable-next-line: no-any\r\n values: any\r\n ) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n const onSubmit = (values: AssignLawyer) => {\r\n assignLawyer(values);\r\n };\r\n\r\n const assignLawyer = (values: AssignLawyer) => {\r\n // Save the File\r\n client\r\n .mutate({\r\n mutation: AssignStaffToEnquiryMutation,\r\n variables: {\r\n input: getAssignStaffToEnquiryInput(values),\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info');\r\n\r\n onAssignClosed();\r\n } else {\r\n showNotification('Failed to Save Assign Lawyer', results.data.error, 'error');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Save Assign Lawyer', reason, 'error');\r\n });\r\n };\r\n\r\n const getAssignStaffToEnquiryInput = (values: AssignLawyer) => {\r\n return {\r\n enquiryGuid: props.guid,\r\n assignedTo: values.assignedTo,\r\n assignedBy: values.assignedBy,\r\n dateAssigned: values.dateAssigned === null ? null : moment(values.dateAssigned).toDate(),\r\n followUpDueDate: values.followUpDueDate === null ? null : moment(values.followUpDueDate).toDate(),\r\n reminderOffset: values.assignmentFollowUpDueReminder ? values.assignmentFollowUpDueReminder.value : null,\r\n };\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onFormValueChanged = (changeProps: any) => {\r\n if (!changeProps.pristine) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isFormChanged: true,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n if (state.isFormChanged) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: true,\r\n };\r\n });\r\n } else {\r\n onAssignClosed();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onDiscardChanges = (agree: boolean) => {\r\n if (agree) {\r\n onAssignClosed();\r\n } else {\r\n // showDiscard false\r\n // form.change('showDiscard', false);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: false,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onAssignClosed = () => {\r\n if (props.onDialogClose) {\r\n props.onDialogClose();\r\n }\r\n };\r\n\r\n const getReminderValue = () => {\r\n if (enquiryDetail && enquiryDetail.assignmentReminderOffset) {\r\n return { label: enquiryDetail.assignmentReminderOffset, value: enquiryDetail.assignmentReminderOffset };\r\n } else if (state.enquiryDefaultConfig && state.enquiryDefaultConfig.reminder) {\r\n return { label: state.enquiryDefaultConfig.reminder, value: state.enquiryDefaultConfig.reminder };\r\n } else {\r\n return { label: 'None', value: 'None' };\r\n }\r\n };\r\n\r\n const getFollowUpDueDefaultValue = () => {\r\n // check outcome date (FollowUpDue)\r\n let outcomeDate: Date | null = null;\r\n\r\n if (state.enquiryDefaultConfig) {\r\n let hours = 0;\r\n let minutes = 0;\r\n let validTimeOfDay = false;\r\n\r\n if (state.enquiryDefaultConfig.timeOfDay && state.enquiryDefaultConfig.timeOfDay.toLowerCase() !== 'invalid date') {\r\n var timeOfDaySplit = state.enquiryDefaultConfig.timeOfDay ? state.enquiryDefaultConfig.timeOfDay.split(':') : null;\r\n\r\n if (timeOfDaySplit) {\r\n validTimeOfDay = true;\r\n hours = Number(timeOfDaySplit[0]);\r\n minutes = Number(timeOfDaySplit[1]);\r\n }\r\n }\r\n\r\n if (state.enquiryDefaultConfig.isCalculatedDays) {\r\n let date = addBusinessDays(moment().toDate(), state.enquiryDefaultConfig.addDays ? state.enquiryDefaultConfig.addDays : 0);\r\n\r\n if (validTimeOfDay) {\r\n outcomeDate = date.set('hour', hours).set('minute', minutes).toDate();\r\n } else {\r\n outcomeDate = date.toDate();\r\n }\r\n } else if (state.enquiryDefaultConfig.isCalculatedHours) {\r\n let addhours = state.enquiryDefaultConfig.addHours ? state.enquiryDefaultConfig.addHours : 0;\r\n\r\n outcomeDate = moment().add(addhours, 'hour').toDate();\r\n }\r\n\r\n // Manual default time is set through getOutcomeDefaultTime()\r\n }\r\n\r\n return outcomeDate;\r\n };\r\n\r\n const getOutcomeDefaultTime = () => {\r\n let defaultTime = new Date().setHours(17, 0, 0, 0);\r\n\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (\r\n state.enquiryDefaultConfig &&\r\n state.enquiryDefaultConfig.isManualEntry &&\r\n state.enquiryDefaultConfig.timeOfDay &&\r\n state.enquiryDefaultConfig.timeOfDay.toLowerCase() !== 'invalid date'\r\n ) {\r\n var timeOfDaySplit = state.enquiryDefaultConfig.timeOfDay ? state.enquiryDefaultConfig.timeOfDay.split(':') : null;\r\n\r\n if (timeOfDaySplit) {\r\n hours = Number(timeOfDaySplit[0]);\r\n minutes = Number(timeOfDaySplit[1]);\r\n }\r\n\r\n defaultTime = new Date().setHours(hours, minutes, 0, 0);\r\n }\r\n\r\n return defaultTime;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isLoading ? (\r\n displayLoader()\r\n ) : (\r\n true}\r\n keepDirtyOnReinitialize={true}\r\n subscription={{\r\n submitting: true,\r\n pristine: true,\r\n }}\r\n render={({ handleSubmit, form, submitting, pristine, values }) => (\r\n
\r\n {displayLoader()}\r\n {\r\n onFormValueChanged(props);\r\n }}\r\n />\r\n \r\n
Assignment
\r\n
\r\n {enquiryDetail.assignedTo\r\n ? 'Assigned to ' +\r\n enquiryDetail.assignedToName +\r\n (enquiryDetail.dateAssigned && enquiryDetail.dateAssigned !== null\r\n ? ' on ' + moment(enquiryDetail.dateAssigned).format('DD MMM YYYY')\r\n : '')\r\n : ''}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n
\r\n \r\n {({ input, meta }) => (\r\n
\r\n {/* */}\r\n {\r\n // input.onChange(selection.value);\r\n // Another approach.\r\n onDropDownSelect(form, values, input, selection, name);\r\n }}\r\n isGuidAsValue={true}\r\n displayLabel={values.assignedToName === null ? undefined : values.assignedToName}\r\n isExternal={false}\r\n isAuthorized={true}\r\n />\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n
\r\n {/* tslint:disable-next-line */}\r\n {/* {console.log(form.getFieldState('dateAssigned')?.value)} */}\r\n\r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n {({ input, meta }) => (\r\n
\r\n {\r\n input.onChange(selection);\r\n }}\r\n error={meta.error && meta.touched}\r\n helperText={meta.error && meta.touched ? meta.error : ''}\r\n showIcon={true}\r\n />\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n
\r\n \r\n {({ input, meta }) => (\r\n
\r\n {/* */}\r\n {\r\n // input.onChange(selection.value);\r\n // Another approach.\r\n onDropDownSelect(form, values, input, selection, name);\r\n }}\r\n value={values.assignedBy}\r\n displayLabel={values.assignedByName}\r\n isGuidAsValue={true}\r\n isStaffOnly={true}\r\n isAuthorized={true}\r\n // displayLabel={values.assignedByName === null\r\n // ? undefined : values.assignedByName}\r\n />\r\n
\r\n )}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n {/* tslint:disable-next-line: no-console */}\r\n {/* {console.log({...input})} */}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n {actionButton(form, submitting, pristine, values)}\r\n {/* {printJson(values)} */}\r\n \r\n )}\r\n />\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\n// function printJson(values: AssignLawyer) {\r\n// if (values) {\r\n// return (\r\n// <>\r\n//
\r\n//                     {JSON.stringify(values, undefined, 2)}\r\n//                 
\r\n// \r\n// );\r\n// } else {\r\n// return (\r\n// <>\r\n// \r\n// {/* tslint:disable-next-line: no-shadowed-variable */}\r\n// {({ values }) => (\r\n//
\r\n//                             {JSON.stringify(values, undefined, 2)}\r\n//                             {/*  */}\r\n//                         
\r\n// )}\r\n//
\r\n// \r\n// );\r\n// }\r\n// }\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState, useEffect } from 'react';\r\nimport {\r\n makeStyles,\r\n Theme,\r\n createStyles,\r\n Drawer,\r\n Accordion,\r\n AccordionSummary,\r\n Typography,\r\n AccordionDetails,\r\n Grid,\r\n TextField,\r\n Button,\r\n IconButton,\r\n Tooltip,\r\n FormControlLabel,\r\n Checkbox,\r\n} from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { Field, Form, FormSpy, AnyObject, FieldInputProps } from 'react-final-form';\r\nimport { mainTheme } from '../../Theme';\r\nimport { FormApi, ValidationErrors } from 'final-form';\r\nimport { OrganisationSelector, PartyQueryParams, retrievePartyData, PartyData } from '../selectors/OrganisationSelector';\r\nimport DialogBox from '../../Dashboard/Component/DialogBox';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\nimport { AddressSelector, PlaceType, Address } from '../selectors/AddressSelector';\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport AccessibilityIcon from '@material-ui/icons/Accessibility';\r\nimport ContactMailIcon from '@material-ui/icons/ContactMail';\r\nimport LocalPostOfficeIcon from '@material-ui/icons/LocalPostOffice';\r\nimport SyncAltIcon from '@material-ui/icons/SyncAlt';\r\nimport { showNotification } from '../../App';\r\nimport { CreateContactMutation, CreateClientContactMutation, CreateClientAndContactMutation } from '../EnquirySummaryRepository';\r\nimport { client } from '../..';\r\nimport { Actions, EnquiryDetail } from '../models/Enquiry';\r\nimport SubjectIcon from '@material-ui/icons/Subject';\r\n// import { client } from '../..';\r\n// import { CreateClientAndContactMutation, CreateClientContactMutation, CreateContactMutation } from '../EnquirySummaryRepository';\r\n// import { keys } from 'ts-transformer-keys';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { CurrencyInput } from '../../components/CurrencyInput';\r\nimport { CurrencySymbolData, retrieveCurrencySymbolData } from '../../ClientAndContactDetails/referrals/ReferralsDetailsRepository';\r\n// import { KeyboardDatePicker } from '@material-ui/pickers/DatePicker/DatePicker';\r\n// import { GenderSelector } from '../selectors/GenderSelector';\r\n// import { MatterTypeSelector } from '../selectors/MatterTypeSelector';\r\nimport { ClientAndContactSelector } from '../../components/ClientAndContactSelector';\r\n// import { MatterCategorySelector } from '../selectors/MatterCategorySelector';\r\nimport { MatterTypeStateSelector } from '../selectors/MatterTypeStateSelector';\r\nimport { RecurringMatterItem, RecurringMatterSelector } from '../selectors/RecurringMatterSelector';\r\nimport { StaffSelector } from '../selectors/StaffSelector';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers/DatePicker/DatePicker';\r\nimport { GenderSelector } from '../selectors/GenderSelector';\r\nimport moment from 'moment';\r\nimport { POBoxTypeSelector } from '../../lookupConfiguration/selectors/POBoxTypeSelector';\r\n// import { HistoryFile } from '../common/HistoryFile';\r\nimport { TimezoneOption } from '../../lookupConfiguration/selectors/TimezoneSelector';\r\nimport { LeadDetailsHistoryData, LeadDetailsHistoryQueryParams, retrieveLeadDetailsHistoryData, TaskSummaryList } from '../../leadsDetail/LeadsDetailRepository';\r\nimport { HistoryFile } from '../common/HistoryFile';\r\nimport { TitleAutocompleteSelector } from '../selectors/TitleAutocompleteSelector';\r\nimport { ReportingGroupSelector } from '../selectors/ReportingGroupSelector';\r\nimport { MatterTreeTypeSelector } from '../selectors/MatterTreeTypeSelector';\r\nimport { TreeSelectNode } from '../../components/TreeSelect';\r\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\r\nimport { formatDateString } from '../../helpers/DateHelper';\r\nimport { LocalStorageEnum } from '../../enums/LocalStorageEnum';\r\nimport { CustomFieldByHierarchy } from '../../enquiryCustomFields/CustomFieldRepositores';\r\n// import { RvLoader } from '../../components/Loader';\r\n// import { WorkObtainedSelector } from '../selectors/WorkObtainedSelector';\r\n// import { HistoryActivityWidth } from '../common/HistoryActivity';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '& > .MuiDrawer-paper': {\r\n maxWidth: '700px',\r\n },\r\n },\r\n formRoot: {\r\n width: '100%',\r\n padding: '20px 15px',\r\n },\r\n expandablePanelDetails: {\r\n paddingBottom: '15px',\r\n '& .downshift-wrapper': {\r\n padding: '0px !important',\r\n maxWidth: 'auto !important',\r\n },\r\n },\r\n AccordionSummary: {\r\n '& .MuiAccordionSummary-content': {\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n // fontWeight: theme.typography.fontWeightRegular,\r\n color: mainTheme.TemplateColor.Primary,\r\n display: 'flex',\r\n alignItems: 'flex-end',\r\n },\r\n headingIcon: {\r\n marginRight: '10px',\r\n },\r\n infoContainer: {\r\n display: 'flex',\r\n margin: '0 -10px',\r\n paddingLeft: '10px',\r\n '& .col': {\r\n padding: '0 10px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n '& .label': {\r\n marginRight: '10px',\r\n },\r\n '& .files': {\r\n fontWeight: 600,\r\n },\r\n '& .ellipsis': {\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n width: '250px',\r\n textAlign: 'right',\r\n },\r\n '& .value': {\r\n color: mainTheme.BrandColors.TemplatePrimary,\r\n textAlign: 'right',\r\n width: '400px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n },\r\n },\r\n textField: {\r\n width: '100%',\r\n },\r\n buttonContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n button: {\r\n margin: theme.spacing(1),\r\n },\r\n hidden: {\r\n display: 'none',\r\n },\r\n margin: {\r\n margin: theme.spacing(1),\r\n },\r\n organisationFieldWrapepr: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n '& .field': {\r\n flex: 1,\r\n },\r\n '& .switcher': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n },\r\n fieldAndCheckbox: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n customFieldGrid: {\r\n // paddingTop: '0px !important',\r\n },\r\n formControlLabel: {\r\n // marginLeft: 0,\r\n // marginRight: 0,\r\n },\r\n loaderWrapper: {\r\n display: 'flex',\r\n flex: 1,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '100%',\r\n minWidth: '700px'\r\n }\r\n }),\r\n);\r\n\r\ninterface CreateClientDialogProps {\r\n anchor?: 'left' | 'top' | 'right' | 'bottom';\r\n\r\n guid?: string;\r\n homeCountry?: string;\r\n sourceSystem?: string;\r\n onDialogClose?: () => void;\r\n\r\n title: string | null;\r\n firstName: string;\r\n lastName: string;\r\n organisation: string;\r\n email: string;\r\n mobile: string;\r\n phone: string;\r\n sourceNotes: string;\r\n source: string | null;\r\n enquiryActions?: Actions;\r\n enquiryDetail: EnquiryDetail;\r\n poBoxType: string | null;\r\n timezone: TimezoneOption[];\r\n customFieldByHierarchy?: CustomFieldByHierarchy[];\r\n}\r\n\r\ninterface Organisation {\r\n organisation: IAutoCompleteItem | null;\r\n organisationText: string;\r\n orgAddress: string;\r\n orgBuildingName: string;\r\n orgUnitLevel: string;\r\n orgNumber: string;\r\n orgStreet1: string;\r\n orgStreet2: string;\r\n orgCitySuburb: string;\r\n orgState: string;\r\n orgPostalCode: string;\r\n orgCountry: string;\r\n\r\n orgPoBoxType: string | null;\r\n orgPostalPOBox: string;\r\n orgPostalCitySuburb: string;\r\n orgPostalState: string;\r\n orgPostalPostalCode: string;\r\n orgPostalCountry: string;\r\n\r\n isOrganisationFromDataSource: boolean | null;\r\n}\r\n\r\ninterface Person {\r\n title: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n mobile: string;\r\n phone: string;\r\n generalNotes: string;\r\n address: string;\r\n buildingName: string;\r\n unitLevel: string;\r\n number: string;\r\n street1: string;\r\n street2: string;\r\n citySuburb: string;\r\n state: string;\r\n postalCode: string;\r\n country: string;\r\n\r\n postalPoBoxType: string | null;\r\n postalPOBox: string;\r\n postalCitySuburb: string;\r\n postalState: string;\r\n postalPostalCode: string;\r\n postalCountry: string;\r\n\r\n birthDate: Date | null;\r\n gender: string | null;\r\n isMarketingConsent: boolean;\r\n\r\n isNameFromDataSource: boolean | null;\r\n}\r\n\r\ninterface Person2 {\r\n\r\n secondPersonTitle: string;\r\n secondPersonFirstName: string;\r\n secondPersonLastName: string;\r\n secondPersonEmail: string;\r\n secondPersonMobile: string;\r\n secondPersonPhone: string;\r\n secondPersonGeneralNotes: string;\r\n secondPersonAddress: string;\r\n secondPersonBuildingName: string;\r\n secondPersonUnitLevel: string;\r\n secondPersonNumber: string;\r\n secondPersonStreet1: string;\r\n secondPersonStreet2: string;\r\n secondPersonCitySuburb: string;\r\n secondPersonState: string;\r\n secondPersonPostalCode: string;\r\n secondPersonCountry: string;\r\n\r\n secondPersonPostalPoBoxType: string | null;\r\n secondPersonPostalPOBox: string;\r\n secondPersonPostalCitySuburb: string;\r\n secondPersonPostalState: string;\r\n secondPersonPostalPostalCode: string;\r\n secondPersonPostalCountry: string;\r\n\r\n secondPersonBirthDate: Date | null;\r\n secondPersonGender: string | null;\r\n secondPersonIsMarketingConsent: boolean;\r\n\r\n isOtherSideFromDataSource: boolean | null;\r\n isSecondClientFromDataSource: boolean | null;\r\n}\r\n\r\ninterface CreateMatterProps {\r\n useRecurringMatter: boolean;\r\n recurringMatter: IAutoCompleteItem | null;\r\n matterCategory: IAutoCompleteItem | null;\r\n matterTypeState: IAutoCompleteItem | null;\r\n matterType: IAutoCompleteItem | null;\r\n personResponsible: IAutoCompleteItem | null;\r\n personActing: IAutoCompleteItem | null;\r\n personAssisting: IAutoCompleteItem | null;\r\n credit: IAutoCompleteItem | null;\r\n matterTitle: string | null;\r\n referrer: IAutoCompleteItem | null;\r\n costAgreementRequired: boolean;\r\n estimatedFees: number | null;\r\n estimatedDisbursements: number | null;\r\n isEstimatedFeesIncludesTax: boolean;\r\n isEstimatedDisbursementsIncludesTax: boolean;\r\n matterTypeTree: TreeSelectNode | null;\r\n}\r\n\r\ninterface CreateClientForm extends Organisation, Person, CreateMatterProps, Person2 {\r\n workObtained: IAutoCompleteItem | null;\r\n reportingGroup: IAutoCompleteItem | null;\r\n}\r\n\r\ninterface CreateClientState {\r\n showAlert: boolean;\r\n isForceClosed: boolean;\r\n showConfirmed: boolean;\r\n isFormChanged: boolean;\r\n isSwitched: boolean;\r\n isLoading: boolean;\r\n recordCount: number;\r\n nameSummary: IAutoCompleteItem | null;\r\n currency: string;\r\n isFormSubmit: boolean;\r\n\r\n isOrganisationExpandPanel: boolean;\r\n isOrganisationPanelDisabled: boolean;\r\n isOrgnisationPostralAddressExpandPanel: boolean;\r\n isPersonExpandPanel: boolean;\r\n isPersonPanelDisabled: boolean;\r\n isPersonPostalAddressExpandPanel: boolean;\r\n isCreateMatterExpandPanel: boolean;\r\n\r\n isPerson2ExpandPanel: boolean;\r\n isPerson2PanelDisabled: boolean;\r\n isPerson2PostalAddressExpandPanel: boolean;\r\n}\r\n// tslint:disable-next-line: no-anyW\r\nexport const CreateClientDialog: React.FC = (props) => {\r\n const classes = useStyles();\r\n\r\n const organisationGuid = props.enquiryDetail.organisationGuid;\r\n const organisationText = props.organisation;\r\n const { nameGuid, clientGuid, secondClientGuid } = props.enquiryDetail;\r\n\r\n // const tenantQuery = useTenant();\r\n\r\n const [state, setState] = useState({\r\n showAlert: false,\r\n isForceClosed: false,\r\n showConfirmed: false,\r\n isFormChanged: false,\r\n isSwitched: false,\r\n isLoading: false,\r\n recordCount: 0,\r\n nameSummary: null,\r\n currency: '$',\r\n isFormSubmit: false,\r\n\r\n isOrganisationExpandPanel: organisationGuid ? false : organisationText ? true : false,\r\n isOrgnisationPostralAddressExpandPanel: false,\r\n isPersonExpandPanel: nameGuid || clientGuid ? false : true,\r\n isPersonPostalAddressExpandPanel: false,\r\n isCreateMatterExpandPanel: true,\r\n isOrganisationPanelDisabled: organisationGuid ? true : false,\r\n isPersonPanelDisabled: nameGuid || clientGuid ? true : false,\r\n\r\n isPerson2ExpandPanel: nameGuid || secondClientGuid ? false : true,\r\n isPerson2PanelDisabled: nameGuid || secondClientGuid ? true : false,\r\n isPerson2PostalAddressExpandPanel: false\r\n });\r\n\r\n const [leadDetailsHistoryForMatterCreation, setLeadDetailsHistoryForMatterCreation] = useState({\r\n tasks: [],\r\n actualRowCountForSearch: 0,\r\n recordCount: 0,\r\n });\r\n\r\n // console.log('props.enquiryDetail', props.enquiryDetail);\r\n // const orgProperties = keys();\r\n\r\n // const {\r\n // isCreateClientOpen,\r\n // onCreateClientClose,\r\n // selectedEnquiry\r\n // }: // tslint:disable-next-line: no-any\r\n // any = useContext(EnquirySummaryContext);\r\n\r\n useEffect(() => {\r\n fetchCurrency();\r\n\r\n if (props.guid) {\r\n fetchLeadDetailsHistoryForMatterCreation(props.guid);\r\n }\r\n\r\n if (props.organisation.length > 0) {\r\n fetchData();\r\n }\r\n // tslint:disable-next-line: align\r\n }, []);\r\n\r\n const fetchCurrency = () => {\r\n retrieveCurrencySymbolData(\r\n false,\r\n // tslint:disable-next-line: no-any\r\n (data: any) => onDataCurrency(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n },\r\n );\r\n };\r\n\r\n const onDataCurrency = (data: CurrencySymbolData) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n currency: data.options.currencySymbol.symbol,\r\n };\r\n });\r\n };\r\n\r\n const fetchData = () => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isLoading: true,\r\n };\r\n });\r\n\r\n const partyQueryParams: PartyQueryParams = {\r\n filter: props.organisation,\r\n offset: 0,\r\n first: 20,\r\n includeOrganisation: true,\r\n includeIndividual: null,\r\n includeStaff: null,\r\n };\r\n\r\n retrievePartyData(\r\n partyQueryParams,\r\n true, // this.state.isRefresh, -- Since we are updating and creating, we do not fetch cached data\r\n // tslint:disable-next-line: no-console\r\n (data) => onRetrieveParty(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n },\r\n );\r\n };\r\n\r\n const onRetrieveParty = (data: PartyData) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n recordCount: data.party.nameSummaries.recordCount,\r\n nameSummary: data.party.nameSummaries.nameSummary.map((source) => ({ label: source.name, value: source.guidID.toString() }))[0],\r\n isSwitched: data.party.nameSummaries.recordCount > 0 ? false : true,\r\n isLoading: false,\r\n };\r\n });\r\n };\r\n\r\n const fetchLeadDetailsHistoryForMatterCreation = (guid: string) => {\r\n var leadQueryParams: LeadDetailsHistoryQueryParams = {\r\n offset: null,\r\n first: null,\r\n filter: null,\r\n sortColumn: 'CreatedDate',\r\n sortDirection: 'DESC',\r\n entityGuidID: guid,\r\n };\r\n\r\n retrieveLeadDetailsHistoryData(\r\n leadQueryParams,\r\n true,\r\n // tslint:disable-next-line: no-any\r\n (data: any) => onEnquiryHistoryDataRetrievedForMatterCreation(data),\r\n // tslint:disable-next-line\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n },\r\n );\r\n };\r\n\r\n const onEnquiryHistoryDataRetrievedForMatterCreation = (data: LeadDetailsHistoryData) => {\r\n setLeadDetailsHistoryForMatterCreation(data.task.summaryList);\r\n };\r\n\r\n const personTitle =\r\n (props.enquiryDetail.clientTitle === 'None' || props.enquiryDetail.clientTitle?.length === 0) && !props.enquiryDetail.clientFirstName && !props.enquiryDetail.clientLastName\r\n ? props.title ?? 'None'\r\n : props.enquiryDetail.clientTitle ?? 'None';\r\n\r\n const initialValues: CreateClientForm = {\r\n organisation: props.enquiryDetail.organisationGuid ? { value: props.enquiryDetail.organisationGuid, label: props.enquiryDetail.organisation } : null,\r\n organisationText: props.enquiryDetail.organisation,\r\n\r\n orgAddress: '',\r\n orgBuildingName: props.enquiryDetail.addressName ? props.enquiryDetail.addressName : '',\r\n orgUnitLevel: props.enquiryDetail.floor ? props.enquiryDetail.floor : '',\r\n orgNumber: props.enquiryDetail.number ? props.enquiryDetail.number : '',\r\n orgStreet1: props.enquiryDetail.street ? props.enquiryDetail.street : '',\r\n orgStreet2: props.enquiryDetail.clientAddressStreet2 ? props.enquiryDetail.clientAddressStreet2 : '',\r\n orgCitySuburb: props.enquiryDetail.suburb ? props.enquiryDetail.suburb : '',\r\n orgState: props.enquiryDetail.state ? props.enquiryDetail.state : '',\r\n orgPostalCode: props.enquiryDetail.postcode ? props.enquiryDetail.postcode : '',\r\n orgCountry: props.enquiryDetail.country ? props.enquiryDetail.country : '',\r\n\r\n orgPoBoxType: props.poBoxType,\r\n orgPostalPOBox: props.enquiryDetail.pOBox ? props.enquiryDetail.pOBox : '',\r\n orgPostalCitySuburb: props.enquiryDetail.postalSuburb ? props.enquiryDetail.postalSuburb : '',\r\n orgPostalState: props.enquiryDetail.postalState ? props.enquiryDetail.postalState : '',\r\n orgPostalPostalCode: props.enquiryDetail.postalPostCode ? props.enquiryDetail.postalPostCode : '',\r\n orgPostalCountry: props.enquiryDetail.postalCountry ? props.enquiryDetail.postalCountry : '',\r\n\r\n title: personTitle ? personTitle : 'None',\r\n firstName: props.enquiryDetail.clientFirstName ? props.enquiryDetail.clientFirstName : props.firstName ? props.firstName : '',\r\n lastName: props.enquiryDetail.clientLastName ? props.enquiryDetail.clientLastName : props.lastName ? props.lastName : '',\r\n email: props.enquiryDetail.clientEmail ? props.enquiryDetail.clientEmail : props.email ? props.email : '',\r\n mobile: props.enquiryDetail.clientMobile ? props.enquiryDetail.clientMobile : props.mobile ? props.mobile : '',\r\n phone: props.enquiryDetail.clientPhone ? props.enquiryDetail.clientPhone : props.phone ? props.phone : '',\r\n generalNotes:\r\n props.source && props.sourceNotes\r\n ? props.source + ' - ' + props.sourceNotes\r\n : props.source && props.sourceNotes === ''\r\n ? props.source\r\n : props.source === '' && props.sourceNotes\r\n ? props.sourceNotes\r\n : props.enquiryDetail.clientFirstName && props.enquiryDetail.clientLastName\r\n ? `${props.firstName} ${props.lastName} ${props.enquiryDetail.clientRelationshipToEnquirer ? `- ${props.enquiryDetail.clientRelationshipToEnquirer}` : ''}`\r\n : '',\r\n address: '',\r\n buildingName: props.enquiryDetail.addressName ? props.enquiryDetail.addressName : '',\r\n unitLevel: props.enquiryDetail.floor ? props.enquiryDetail.floor : '',\r\n number: props.enquiryDetail.number ? props.enquiryDetail.number : '',\r\n street1: props.enquiryDetail.street ? props.enquiryDetail.street : '',\r\n street2: props.enquiryDetail.clientAddressStreet2 ? props.enquiryDetail.clientAddressStreet2 : '',\r\n citySuburb: props.enquiryDetail.suburb ? props.enquiryDetail.suburb : '',\r\n state: props.enquiryDetail.state ? props.enquiryDetail.state : '',\r\n postalCode: props.enquiryDetail.postcode ? props.enquiryDetail.postcode : '',\r\n country: props.enquiryDetail.country ? props.enquiryDetail.country : '',\r\n // postalStreet1: '',\r\n // postalStreet2: '',\r\n postalPoBoxType: props.poBoxType,\r\n postalPOBox: props.enquiryDetail.pOBox ? props.enquiryDetail.pOBox : '',\r\n postalCitySuburb: props.enquiryDetail.postalSuburb ? props.enquiryDetail.postalSuburb : '',\r\n postalState: props.enquiryDetail.postalState ? props.enquiryDetail.postalState : '',\r\n postalPostalCode: props.enquiryDetail.postalPostCode ? props.enquiryDetail.postalPostCode : '',\r\n postalCountry: props.enquiryDetail.postalCountry ? props.enquiryDetail.postalCountry : '',\r\n\r\n birthDate: props.enquiryDetail.dOB ? props.enquiryDetail.dOB : null,\r\n gender: props.enquiryDetail.gender ? props.enquiryDetail.gender : null,\r\n isMarketingConsent: props.enquiryDetail.isMarketingConsent,\r\n\r\n // create matter\r\n useRecurringMatter: false,\r\n recurringMatter: null,\r\n matterCategory: null,\r\n matterTypeState: null,\r\n matterType: null,\r\n // tslint:disable-next-line: max-line-length\r\n personResponsible:\r\n props.enquiryDetail && props.enquiryDetail.assignedToIsStaff && props.enquiryDetail.assignedToStaffName && props.enquiryDetail.assignedToStaffGuid\r\n ? { label: props.enquiryDetail.assignedToStaffName, value: props.enquiryDetail.assignedToStaffGuid }\r\n : null,\r\n // tslint:disable-next-line: max-line-length\r\n personActing:\r\n props.enquiryDetail && props.enquiryDetail.assignedToIsStaff && props.enquiryDetail.assignedToStaffName && props.enquiryDetail.assignedToStaffGuid\r\n ? { label: props.enquiryDetail.assignedToStaffName, value: props.enquiryDetail.assignedToStaffGuid }\r\n : null,\r\n personAssisting: null,\r\n credit: null,\r\n matterTitle: null,\r\n // tslint:disable-next-line: max-line-length\r\n referrer:\r\n props.enquiryDetail && props.enquiryDetail.referrerName && props.enquiryDetail.referrerGuid\r\n ? { label: props.enquiryDetail.referrerName, value: props.enquiryDetail.referrerGuid }\r\n : null,\r\n costAgreementRequired: false,\r\n estimatedFees: props.enquiryDetail && props.enquiryDetail.estimatedFees ? props.enquiryDetail.estimatedFees : null,\r\n estimatedDisbursements: props.enquiryDetail && props.enquiryDetail.estimatedDisbursements ? props.enquiryDetail.estimatedDisbursements : null,\r\n isEstimatedFeesIncludesTax: props.enquiryDetail.isEstimatedFeesIncludesTax,\r\n isEstimatedDisbursementsIncludesTax: props.enquiryDetail.isEstimatedDisbursementsIncludesTax,\r\n workObtained: null,\r\n reportingGroup: null,\r\n matterTypeTree: null,\r\n \r\n secondPersonTitle: props.enquiryDetail.secondClientTitle ? props.enquiryDetail.secondClientTitle : 'None',\r\n secondPersonFirstName: props.enquiryDetail.secondClientFirstName ? props.enquiryDetail.secondClientFirstName : '',\r\n secondPersonLastName: props.enquiryDetail.secondClientLastName ? props.enquiryDetail.secondClientLastName : '',\r\n secondPersonEmail: props.enquiryDetail.secondClientEmail ? props.enquiryDetail.secondClientEmail : '',\r\n secondPersonMobile: props.enquiryDetail.secondClientMobile ? props.enquiryDetail.secondClientMobile : '',\r\n secondPersonPhone: props.enquiryDetail.secondClientPhone ? props.enquiryDetail.secondClientPhone : '',\r\n secondPersonGeneralNotes:\r\n props.source && props.sourceNotes\r\n ? props.source + ' - ' + props.sourceNotes\r\n : props.source && props.sourceNotes === ''\r\n ? props.source\r\n : props.source === '' && props.sourceNotes\r\n ? props.sourceNotes\r\n : props.enquiryDetail.secondClientFirstName && props.enquiryDetail.secondClientLastName\r\n ? `${props.firstName} ${props.lastName} ${props.enquiryDetail.secondClientRelationshipToEnquirer ? `- ${props.enquiryDetail.secondClientRelationshipToEnquirer}` : ''}`\r\n : '',\r\n secondPersonAddress: '',\r\n secondPersonBuildingName: props.enquiryDetail.secondClientAddressName ? props.enquiryDetail.secondClientAddressName : '',\r\n secondPersonUnitLevel: props.enquiryDetail.secondClientFloor ? props.enquiryDetail.secondClientFloor : '',\r\n secondPersonNumber: props.enquiryDetail.secondClientNumber ? props.enquiryDetail.secondClientNumber : '',\r\n secondPersonStreet1: props.enquiryDetail.secondClientStreet1 ? props.enquiryDetail.secondClientStreet1 : '',\r\n secondPersonStreet2: props.enquiryDetail.secondClientStreet2 ? props.enquiryDetail.secondClientStreet2 : '',\r\n secondPersonCitySuburb: props.enquiryDetail.secondClientSuburb ? props.enquiryDetail.secondClientSuburb : '',\r\n secondPersonState: props.enquiryDetail.secondClientState ? props.enquiryDetail.secondClientState : '',\r\n secondPersonPostalCode: props.enquiryDetail.secondClientPostCode ? props.enquiryDetail.secondClientPostCode : '',\r\n secondPersonCountry: props.enquiryDetail.secondClientCountry ? props.enquiryDetail.secondClientCountry : '',\r\n\r\n secondPersonPostalPoBoxType: props.enquiryDetail.secondClientPOBoxType ?? props.poBoxType,\r\n secondPersonPostalPOBox: props.enquiryDetail.secondClientPOBox ? props.enquiryDetail.secondClientPOBox : '',\r\n secondPersonPostalCitySuburb: props.enquiryDetail.secondClientPostalSuburb ? props.enquiryDetail.secondClientPostalSuburb : '',\r\n secondPersonPostalState: props.enquiryDetail.secondClientPostalState ? props.enquiryDetail.secondClientPostalState : '',\r\n secondPersonPostalPostalCode: props.enquiryDetail.secondClientPostalPostCode ? props.enquiryDetail.secondClientPostalPostCode : '',\r\n secondPersonPostalCountry: props.enquiryDetail.secondClientPostalCountry ? props.enquiryDetail.secondClientPostalCountry : '',\r\n\r\n secondPersonBirthDate: props.enquiryDetail.secondClientDOB ? props.enquiryDetail.secondClientDOB : null,\r\n secondPersonGender: props.enquiryDetail.secondClientGender ? props.enquiryDetail.secondClientGender : null,\r\n secondPersonIsMarketingConsent: props.enquiryDetail.secondClientIsMarketingConsent,\r\n\r\n isNameFromDataSource: props.enquiryDetail.isNameFromDataSource,\r\n isOrganisationFromDataSource: props.enquiryDetail.isOrganisationFromDataSource,\r\n isOtherSideFromDataSource: props.enquiryDetail.isOtherSideFromDataSource,\r\n isSecondClientFromDataSource: props.enquiryDetail.isSecondClientFromDataSource,\r\n };\r\n\r\n const canCreateMatter = props.enquiryActions ? props.enquiryActions.canCreateMatter : false;\r\n\r\n const createClientTitle = props.enquiryActions?.canCreateContactForLostEnquiry ? 'Create Contact' : `Create ${canCreateMatter ? 'Matter' : 'Client'}`;\r\n const createClientMessage = props.enquiryActions?.canCreateContactForLostEnquiry\r\n ? 'Are you sure you want to create a contact?'\r\n : `Are you sure you want to create a ${canCreateMatter ? 'matter' : 'client'}?`;\r\n\r\n // tslint:disable-next-line: no-any\r\n const required = (value: any) => {\r\n return value ? undefined : 'Required';\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const isPoBoxRequired = (values: any, isOrganisation: boolean) => {\r\n if (isOrganisation) {\r\n if (values.orgPostalCitySuburb || values.orgPostalState || values.orgPostalPostalCode || values.orgPostalCountry) {\r\n return true;\r\n }\r\n } else {\r\n if (values.postalCitySuburb || values.postalState || values.postalPostalCode || values.postalCountry) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const isSecondClientPoBoxRequired = (values: any) => {\r\n if (values.secondPersonPostalCitySuburb || values.secondPersonPostalState || values.secondPersonPostalPostalCode || values.secondPersonPostalCountry) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onCloseDrawer = (/*form: FormApi, values: any, isForceClose: boolean*/) => () => {\r\n if (state.isFormChanged && !state.isForceClosed) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showAlert: true,\r\n };\r\n });\r\n } else {\r\n onCreateClientClosed();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line\r\n const onFormValueChanged = (form: FormApi, props: any) => {\r\n if (!props.pristine) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isFormChanged: true,\r\n };\r\n });\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onDiscardChanges = (form: FormApi, agree: boolean) => {\r\n if (agree) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isFormChanged: false,\r\n showAlert: false,\r\n };\r\n });\r\n\r\n onCreateClientClosed();\r\n } else {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showAlert: false,\r\n };\r\n });\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const closePanel = (form: FormApi, values: any) => {\r\n if (state.isFormChanged && !state.isForceClosed) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showAlert: true,\r\n };\r\n });\r\n } else {\r\n onCreateClientClosed();\r\n }\r\n };\r\n\r\n const onSwitch = () => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isSwitched: !prevState.isSwitched,\r\n };\r\n });\r\n };\r\n\r\n // tslint:disable-next-line\r\n // const emailRegex = /^(([^<>()\\\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\n // tslint:disable-next-line: no-any\r\n // const EmailValidateWithRequired = (value: any) => {\r\n // let error;\r\n\r\n // if (value === undefined) {\r\n // return value ? undefined : 'Email is required';\r\n // } else if (value.length === 0) {\r\n // return value ? undefined : 'Email is required';\r\n // } else if (!emailRegex.test(value)) {\r\n // error = 'Email is not valid';\r\n // }\r\n // return error;\r\n // };\r\n\r\n const onClickSave = (form: FormApi, values: CreateClientForm) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isFormSubmit: true,\r\n };\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onReset = (form: FormApi, values: CreateClientForm) => {\r\n // tslint:disable-next-line: no-unused-expression\r\n form.reset();\r\n };\r\n\r\n // tslint:disable-next-line: no-any max-line-length\r\n const onSelection = (form: FormApi, values: AnyObject) => (placeType: PlaceType | null, address: Address, name: string) => {\r\n if (name === 'orgStreet1') {\r\n form.change('orgCountry', address.country ? address.country : values.orgCountry ? values.orgCountry : '');\r\n form.change('orgPostalCode', address.postalCode ? address.postalCode : values.orgPostalCode ? values.orgPostalCode : '');\r\n form.change('orgCitySuburb', address.locality ? address.locality : values.orgCitySuburb ? values.orgCitySuburb : '');\r\n // tslint:disable-next-line: max-line-length\r\n form.change('orgState', address.administrativeAreaLevel1 ? address.administrativeAreaLevel1 : values.orgState ? values.orgState : '');\r\n form.change('orgBuildingName', address.premise ? address.premise : values.orgBuildingName ? values.orgBuildingName : '');\r\n // form.change('orgStreet1', placeType?.structured_formatting.main_text);\r\n form.change('orgStreet1', address.route ? address.route : values.orgStreet1 ? values.orgStreet1 : '');\r\n form.change('orgNumber', address.streetNumber ? address.streetNumber : values.orgNumber ? values.orgNumber : '');\r\n form.change('orgUnitLevel', address.floor ? address.floor : values.orgUnitLevel ? values.orgUnitLevel : '');\r\n }\r\n\r\n if (name === 'orgStreet2') {\r\n form.change('orgStreet2', placeType?.structured_formatting.main_text);\r\n }\r\n\r\n // if (name === 'orgPostalStreet1') {\r\n // form.change('orgPostalCountry', address.country ? address.country : values.orgPostalCountry ? values.orgPostalCountry : '');\r\n // tslint:disable-next-line: max-line-length\r\n // form.change('orgPostalPostalCode', address.postalCode ? address.postalCode : values.orgPostalPostalCode ? values.orgPostalPostalCode : '');\r\n // form.change('orgPostalCitySuburb', address.locality ? address.locality : values.orgPostalCitySuburb ? values.orgPostalCitySuburb : '');\r\n // tslint:disable-next-line: max-line-length\r\n // form.change('orgPostalState', address.administrativeAreaLevel1 ? address.administrativeAreaLevel1 : values.orgPostalState ? values.orgPostalState : '');\r\n // tslint:disable-next-line: max-line-length\r\n // form.change('orgPostalBuildingName', address.premise ? address.premise : values.orgPostalBuildingName ? values.orgPostalBuildingName : '');\r\n // form.change('orgPostalStreet1', placeType?.structured_formatting.main_text);\r\n // form.change('orgPostalNumber', address.floor ? address.floor : values.orgPostalNumber ? values.orgPostalNumber : '');\r\n // }\r\n // if (name === 'orgPostalStreet2') {\r\n // form.change('orgPostalStreet2', placeType?.structured_formatting.main_text);\r\n // }\r\n\r\n if (name === 'street1') {\r\n form.change('country', address.country ? address.country : values.country ? values.country : '');\r\n form.change('postalCode', address.postalCode ? address.postalCode : values.postalCode ? values.postalCode : '');\r\n form.change('citySuburb', address.locality ? address.locality : values.citySuburb ? values.citySuburb : '');\r\n // tslint:disable-next-line: max-line-length\r\n form.change('state', address.administrativeAreaLevel1 ? address.administrativeAreaLevel1 : values.state ? values.state : '');\r\n form.change('buildingName', address.premise ? address.premise : values.buildingName ? values.buildingName : '');\r\n // form.change('street1', placeType?.structured_formatting.main_text);\r\n form.change('street1', address.route ? address.route : values.street1 ? values.street1 : '');\r\n form.change('number', address.streetNumber ? address.streetNumber : values.number ? values.number : '');\r\n form.change('unitLevel', address.floor ? address.floor : values.unitLevel ? values.unitLevel : '');\r\n }\r\n\r\n if (name === 'street2') {\r\n form.change('street2', placeType?.structured_formatting.main_text);\r\n }\r\n\r\n // if (name === 'postalStreet1') {\r\n // form.change('postalCountry', address.country ? address.country : values.postalCountry ? values.postalCountry : '');\r\n // form.change('postalPostalCode', address.postalCode ? address.postalCode : values.postalPostalCode ? values.postalPostalCode : '');\r\n // form.change('postalCitySuburb', address.locality ? address.locality : values.postalCitySuburb ? values.postalCitySuburb : '');\r\n // // tslint:disable-next-line: max-line-length\r\n // form.change('postalState', address.administrativeAreaLevel1\r\n // ? address.administrativeAreaLevel1 : values.postalState ? values.postalState : '');\r\n // form.change('postalBuildingName', address.premise ? address.premise : values.postalBuildingName ? values.postalBuildingName : '');\r\n // form.change('postalStreet1', placeType?.structured_formatting.main_text);\r\n // form.change('postalNumber', address.floor ? address.floor : values.postalNumber ? values.postalNumber : '');\r\n // }\r\n // if (name === 'postalStreet2') {\r\n // form.change('postalStreet2', placeType?.structured_formatting.main_text);\r\n // }\r\n\r\n if (name === 'orgPostalCitySuburb') {\r\n form.change('orgPostalCitySuburb', address.locality ? address.locality : values.orgPostalCitySuburb ? values.orgPostalCitySuburb : '');\r\n form.change('orgPostalPostalCode', address.postalCode ? address.postalCode : values.orgPostalPostalCode ? values.orgPostalPostalCode : '');\r\n form.change('orgPostalCountry', address.country ? address.country : values.orgPostalCountry ? values.orgPostalCountry : '');\r\n form.change('orgPostalState', address.administrativeAreaLevel1 ? address.administrativeAreaLevel1 : values.orgPostalState ? values.orgPostalState : '');\r\n }\r\n\r\n if (name === 'postalCitySuburb') {\r\n form.change('postalCitySuburb', address.locality ? address.locality : values.postalCitySuburb ? values.postalCitySuburb : '');\r\n form.change('postalPostalCode', address.postalCode ? address.postalCode : values.postalPostalCode ? values.postalPostalCode : '');\r\n form.change('postalCountry', address.country ? address.country : values.postalCountry ? values.postalCountry : '');\r\n form.change('postalState', address.administrativeAreaLevel1 ? address.administrativeAreaLevel1 : values.postalState ? values.postalState : '');\r\n }\r\n\r\n // person 2\r\n if (name === 'secondPersonStreet1') {\r\n form.change('secondPersonCountry', address.country ? address.country : values.secondPersonCountry ? values.secondPersonCountry : '');\r\n form.change('secondPersonPostalCode', address.postalCode ? address.postalCode : values.secondPersonPostalCode ? values.secondPersonPostalCode : '');\r\n form.change('secondPersonCitySuburb', address.locality ? address.locality : values.secondPersonCitySuburb ? values.secondPersonCitySuburb : '');\r\n // tslint:disable-next-line: max-line-length\r\n form.change('secondPersonState', address.administrativeAreaLevel1 ? address.administrativeAreaLevel1 : values.secondPersonState ? values.secondPersonState : '');\r\n form.change('secondPersonBuildingName', address.premise ? address.premise : values.secondPersonBuildingName ? values.secondPersonBuildingName : '');\r\n // form.change('street1', placeType?.structured_formatting.main_text);\r\n form.change('secondPersonStreet1', address.route ? address.route : values.secondPersonStreet1 ? values.secondPersonStreet1 : '');\r\n form.change('secondPersonNumber', address.streetNumber ? address.streetNumber : values.secondPersonNumber ? values.secondPersonNumber : '');\r\n form.change('secondPersonUnitLevel', address.floor ? address.floor : values.secondPersonUnitLevel ? values.secondPersonUnitLevel : '');\r\n }\r\n\r\n if (name === 'secondPersonStreet2') {\r\n form.change('secondPersonStreet2', placeType?.structured_formatting.main_text);\r\n }\r\n\r\n if (name === 'secondPersonPostalCitySuburb') {\r\n form.change('secondPersonPostalCitySuburb', address.locality ? address.locality : values.secondPersonPostalCitySuburb ? values.secondPersonPostalCitySuburb : '');\r\n form.change('secondPersonPostalPostalCode', address.postalCode ? address.postalCode : values.secondPersonPostalPostalCode ? values.secondPersonPostalPostalCode : '');\r\n form.change('secondPersonPostalCountry', address.country ? address.country : values.secondPersonPostalCountry ? values.secondPersonPostalCountry : '');\r\n form.change('secondPersonPostalState', address.administrativeAreaLevel1 ? address.administrativeAreaLevel1 : \r\n values.secondPersonPostalState ? values.secondPersonPostalState : '');\r\n }\r\n\r\n };\r\n\r\n const onDropDownSelect = (\r\n // tslint:disable-next-line: no-any\r\n form: FormApi,\r\n // tslint:disable-next-line: no-any\r\n selection: IAutoCompleteItem,\r\n name: string,\r\n ) => {\r\n // input.OnChange(selection.value);\r\n if (name === 'organisation') {\r\n form.change('organisation', selection);\r\n }\r\n if (name === 'matterType') {\r\n form.change('matterType', selection);\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onInputChanged = (form: FormApi, name: string | any) => (value: string) => {\r\n form.change(name, value);\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onSubmit = (form: FormApi, values: CreateClientForm) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showConfirmed: true,\r\n };\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onConfirmed = (form: FormApi, values: any, agree: boolean) => {\r\n if (agree) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showConfirmed: false,\r\n };\r\n });\r\n\r\n setTimeout(() => {\r\n if (props.sourceSystem?.toLowerCase() === 'leap') {\r\n if (\r\n (state.isSwitched || !(values.isOrganisationFromDataSource ?? true)) &&\r\n (values.organisationText !== null || values.organisationText !== undefined || values.organisationText.trim() !== '')\r\n ) {\r\n // create organisation and add new person\r\n createCreateAndContact(form, values);\r\n } else if (!state.isSwitched && values.organisation !== null) {\r\n // add new person to existing organisation\r\n createCreateClientContact(form, values);\r\n } else {\r\n // person only\r\n createContact(form, values);\r\n }\r\n } else {\r\n closeForNonLeap(form, values);\r\n }\r\n\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isForceClosed: true,\r\n };\r\n });\r\n\r\n onCreateClientClosed();\r\n // tslint:disable-next-line: align\r\n }, 500);\r\n } else {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showConfirmed: false,\r\n };\r\n });\r\n }\r\n };\r\n\r\n // create organisation and add new person\r\n const createCreateAndContact = (form: FormApi, values: CreateClientForm) => {\r\n // Generate the history Document.\r\n let documentBlob: Blob | undefined;\r\n HistoryFile(props.enquiryDetail, 'DESC', state.currency, props.timezone, leadDetailsHistoryForMatterCreation, (results) => {\r\n // console.log('blob in getHistoryStringFile', results);\r\n documentBlob = results;\r\n saveCreateAndContact(form, values, documentBlob);\r\n },\r\n props.customFieldByHierarchy ? props.customFieldByHierarchy : []);\r\n };\r\n\r\n // add new person to existing organisation\r\n const createCreateClientContact = (form: FormApi, values: CreateClientForm) => {\r\n // Generate the history Document.\r\n let documentBlob: Blob | undefined;\r\n HistoryFile(props.enquiryDetail, 'DESC', state.currency, props.timezone, leadDetailsHistoryForMatterCreation, (results) => {\r\n // console.log('blob in getHistoryStringFile', results);\r\n documentBlob = results;\r\n saveCreateClientContact(form, values, documentBlob);\r\n },\r\n props.customFieldByHierarchy ? props.customFieldByHierarchy : []);\r\n };\r\n\r\n // person only\r\n const createContact = (form: FormApi, values: CreateClientForm) => {\r\n // Generate the history Document.\r\n let documentBlob: Blob | undefined;\r\n HistoryFile(props.enquiryDetail, 'DESC', state.currency, props.timezone, leadDetailsHistoryForMatterCreation, (results) => {\r\n // console.log('blob in getHistoryStringFile', results);\r\n documentBlob = results;\r\n saveCreateClient(form, values, documentBlob);\r\n },\r\n props.customFieldByHierarchy ? props.customFieldByHierarchy : []);\r\n };\r\n\r\n const saveCreateClient = (form: FormApi, values: CreateClientForm, historyDocument?: Blob) => {\r\n client\r\n .mutate({\r\n mutation: CreateContactMutation,\r\n variables: {\r\n input: getCreateContactInput(values, historyDocument),\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info');\r\n closePanel(form, values);\r\n } else {\r\n showNotification('Failed to Save Create Contact', results.data.error, 'error');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Save Create Contact', reason, 'error');\r\n });\r\n };\r\n\r\n const saveCreateClientContact = (form: FormApi, values: CreateClientForm, historyDocument?: Blob) => {\r\n client\r\n .mutate({\r\n mutation: CreateClientContactMutation,\r\n variables: {\r\n input: getCreateClientContactInput(values, historyDocument),\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info');\r\n closePanel(form, values);\r\n } else {\r\n showNotification('Failed to Save Create Client Contact', results.data.error, 'error');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Save Create Client Contact', reason, 'error');\r\n });\r\n };\r\n\r\n const saveCreateAndContact = (form: FormApi, values: CreateClientForm, historyDocument?: Blob) => {\r\n // Save the File\r\n client\r\n .mutate({\r\n mutation: CreateClientAndContactMutation,\r\n variables: {\r\n input: getCreateClientAndContactInput(values, historyDocument),\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info');\r\n closePanel(form, values);\r\n } else {\r\n showNotification('Failed to Save Create Client and Contact', results.data.error, 'error');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Failed to Save Create Client and Contact', reason, 'error');\r\n });\r\n };\r\n\r\n const closeForNonLeap = (form: FormApi, values: CreateClientForm) => {\r\n closePanel(form, values);\r\n showNotification('Integration warning!', 'Integration is not completed for this Tenant!', 'warning');\r\n };\r\n\r\n // Creating a new organisation and add a new person to it.\r\n const getCreateClientAndContactInput = (values: CreateClientForm, historyDocument?: Blob) => {\r\n\r\n // const matterTypeId = tenantQuery.data?.tenant.tenantId === '0010' ||\r\n // tenantQuery.data?.tenant.tenantId === '0099' ? values.matterTypeTree?.value : values.matterType?.value;\r\n const matterTypeId = values.matterTypeTree?.value;\r\n\r\n let birthDate = formatDateString(values.birthDate);\r\n let secondClientDobFinal = formatDateString(values.secondPersonBirthDate);\r\n let otherPartyDob = formatDateString(props.enquiryDetail.otherPartyDOB);\r\n // tslint:disable-next-line: no-shadowed-variable\r\n const nameGuid = getNameGuid(props.enquiryDetail);\r\n\r\n return {\r\n enquiryGuid: props.guid,\r\n\r\n companyGuid: props.enquiryDetail.organisationGuid,\r\n nameGuid: nameGuid,\r\n\r\n companyName: values.organisationText,\r\n orgAddressBuildingName: values.orgBuildingName,\r\n orgAddressLevel: values.orgUnitLevel,\r\n orgAddressNumber: values.orgNumber,\r\n orgAddressStreet1: values.orgStreet1,\r\n orgAddressStreet2: values.orgStreet2,\r\n orgAddressSuburb: values.orgCitySuburb,\r\n orgAddressState: values.orgState,\r\n orgAddressPostCode: values.orgPostalCode,\r\n orgAddressCountry: values.orgCountry,\r\n\r\n orgPostalPoBoxType: values.orgPoBoxType,\r\n orgPostalPoBox: values.orgPostalPOBox,\r\n orgPostalSuburb: values.orgPostalCitySuburb,\r\n orgPostalState: values.orgPostalState,\r\n orgPostalPostCode: values.orgPostalPostalCode,\r\n orgPostalCountry: values.orgPostalCountry,\r\n\r\n title: values.title === 'None' ? '' : values.title,\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n email: values.email,\r\n mobile: values.mobile,\r\n phone: values.phone,\r\n generalNotes: values.generalNotes,\r\n isMarketingConsent: values.isMarketingConsent,\r\n reportingGroupGuid: values.reportingGroup ? values.reportingGroup.value : null,\r\n workObtained: values.workObtained ? values.workObtained : null,\r\n\r\n recurringMatterTemplateId: values.recurringMatter?.value,\r\n matterTypeId: matterTypeId,\r\n matterTypeState: values.matterTypeState?.label,\r\n personResponsible: values.personResponsible?.value,\r\n personActing: values.personActing?.value,\r\n personAssisting: values.personAssisting?.value,\r\n personCredit: values.credit?.value,\r\n matterTitle: values.matterTitle,\r\n referrerGuid: values.referrer?.value,\r\n isCreditAgreementRequired: values.costAgreementRequired,\r\n estimatedFees: values.estimatedFees,\r\n isEstimatedFeesIncludesTax: values.isEstimatedFeesIncludesTax,\r\n estimatedDisb: values.estimatedDisbursements,\r\n isEstimatedDisbIncludeTax: values.isEstimatedDisbursementsIncludesTax,\r\n\r\n gender: values.gender,\r\n birthDate: birthDate,\r\n \r\n otherPartyTitle: props.enquiryDetail.otherPartyTitle === 'None' ? '' : props.enquiryDetail.otherPartyTitle,\r\n clientRelationshipToEnquirer: props.enquiryDetail.clientRelationshipToEnquirer,\r\n otherPartyFirstName: props.enquiryDetail.otherPartyFirstName,\r\n otherPartyLastName: props.enquiryDetail.otherPartyLastName,\r\n otherPartyNotes: props.enquiryDetail.otherPartyNotes,\r\n otherPartyOrganisation: props.enquiryDetail.otherPartyOrganisation,\r\n otherPartyEmail: props.enquiryDetail.otherPartyEmail,\r\n otherPartyPhone: props.enquiryDetail.otherPartyPhone,\r\n otherPartyMobile: props.enquiryDetail.otherPartyMobile,\r\n otherPartyDOB: otherPartyDob,\r\n otherPartyAddressName: props.enquiryDetail.otherPartyAddressName,\r\n otherPartyFloor: props.enquiryDetail.otherPartyFloor,\r\n otherPartyNumber: props.enquiryDetail.otherPartyNumber,\r\n otherPartyStreet: props.enquiryDetail.otherPartyStreet,\r\n otherPartyStreet2: props.enquiryDetail.otherPartyStreet2,\r\n otherPartySuburb: props.enquiryDetail.otherPartySuburb,\r\n otherPartyState: props.enquiryDetail.otherPartyState,\r\n otherPartyPostcode: props.enquiryDetail.otherPartyPostcode,\r\n otherPartyCountry: props.enquiryDetail.otherPartyCountry,\r\n\r\n otherPartyPOBoxType: props.enquiryDetail.otherPartyPOBoxType,\r\n otherPartyPOBox: props.enquiryDetail.otherPartyPOBox,\r\n otherPartyPostalSuburb: props.enquiryDetail.otherPartyPostalSuburb,\r\n otherPartyPostalState: props.enquiryDetail.otherPartyPostalState,\r\n otherPartyPostalPostCode: props.enquiryDetail.otherPartyPostalPostCode,\r\n otherPartyPostalCountry: props.enquiryDetail.otherPartyPostalCountry,\r\n otherPartyNameGuid: props.enquiryDetail.otherPartyNameGuid,\r\n otherPartyCompanyGuid: props.enquiryDetail.otherPartyOrganisationGuid,\r\n\r\n historyFile: {\r\n file: historyDocument,\r\n name: 'RedView CRM Enquiry History.pdf', // if this is renamed, make sure to change a condition in the mutation as well.\r\n guidID: null,\r\n status: 1, // new file.\r\n },\r\n\r\n // second person\r\n secondClientPhone: values.secondPersonPhone,\r\n secondClientEmail: values.secondPersonEmail,\r\n secondClientTitle: values.secondPersonTitle === 'None' ? '' : values.secondPersonTitle,\r\n secondClientMobile: values.secondPersonMobile,\r\n secondClientFirstName: values.secondPersonFirstName ? values.secondPersonFirstName : null,\r\n secondClientLastName: values.secondPersonLastName ? values.secondPersonLastName : null,\r\n secondClientGuid: props.enquiryDetail.secondClientGuid,\r\n secondClientRelationshipToEnquirer: props.enquiryDetail.secondClientRelationshipToEnquirer,\r\n secondClientDOB: secondClientDobFinal,\r\n secondClientGender: values.secondPersonGender ?? null,\r\n secondClientIsMarketingConsent: values.secondPersonIsMarketingConsent,\r\n secondClientIsTermsAndConditionsApproved: props.enquiryDetail.secondClientIsTermsAndConditionsApproved,\r\n secondClientIsPrivacyStatementProvided: props.enquiryDetail.secondClientIsPrivacyStatementProvided,\r\n secondClientIsConflictCheckPerformed: props.enquiryDetail.secondClientIsConflictCheckPerformed,\r\n secondClientIsIdentityCheckPerformed: props.enquiryDetail.secondClientIsIdentityCheckPerformed,\r\n secondClientIsNoConflict: props.enquiryDetail.secondClientIsNoConflict,\r\n secondClientAddressName: values.secondPersonAddress ?? null,\r\n secondClientFloor: values.secondPersonUnitLevel ?? null,\r\n secondClientNumber: values.secondPersonNumber ?? null,\r\n secondClientStreet1: values.secondPersonStreet1 ?? null,\r\n secondClientStreet2: values.secondPersonStreet2 ?? null,\r\n secondClientSuburb: values.secondPersonCitySuburb ?? null,\r\n secondClientState: values.secondPersonState ?? null,\r\n secondClientPostCode: values.secondPersonPostalCode ?? null,\r\n secondClientCountry: values.secondPersonCountry ?? null,\r\n secondClientPOBoxType: values.secondPersonPostalPoBoxType ?? null,\r\n secondClientPOBox: values.secondPersonPostalPOBox ?? null,\r\n secondClientPostalSuburb: values.secondPersonPostalCitySuburb ?? null,\r\n secondClientPostalState: values.secondPersonPostalState ?? null,\r\n secondClientPostalPostCode: values.secondPersonPostalPostalCode ?? null,\r\n secondClientPostalCountry: values.secondPersonPostalCountry ?? null,\r\n\r\n isNameFromDataSource: values.isNameFromDataSource ?? props.enquiryDetail.isNameFromDataSource ?? null,\r\n isOrganisationFromDataSource: values.isOrganisationFromDataSource ?? props.enquiryDetail.isOrganisationFromDataSource ?? null,\r\n isOtherSideFromDataSource: values.isOtherSideFromDataSource ?? props.enquiryDetail.isOtherSideFromDataSource ?? null,\r\n isSecondClientFromDataSource: values.isSecondClientFromDataSource ?? props.enquiryDetail.isSecondClientFromDataSource ?? null\r\n };\r\n };\r\n\r\n const getNameGuid = (enquiryDetail: EnquiryDetail) => {\r\n // tslint:disable-next-line: no-shadowed-variable\r\n const { clientGuid, clientFirstName, clientLastName, nameGuid } = enquiryDetail;\r\n \r\n let tempNameGuid: string | null = null;\r\n\r\n if (clientGuid) {\r\n tempNameGuid = clientGuid;\r\n } else if (!clientGuid && !clientFirstName && !clientLastName && nameGuid) {\r\n tempNameGuid = nameGuid;\r\n } else {\r\n tempNameGuid = null;\r\n }\r\n\r\n return tempNameGuid;\r\n };\r\n\r\n // Add new Person to a existing Organisation\r\n const getCreateClientContactInput = (values: CreateClientForm, historyDocument?: Blob) => {\r\n\r\n // const matterTypeId = tenantQuery.data?.tenant.tenantId === '0010' \r\n // || tenantQuery.data?.tenant.tenantId === '0099' ? values.matterTypeTree?.value : values.matterType?.value;\r\n\r\n let birthDate = formatDateString(values.birthDate);\r\n let secondClientDobFinal = formatDateString(values.secondPersonBirthDate);\r\n let otherPartyDob = formatDateString(props.enquiryDetail.otherPartyDOB);\r\n\r\n const matterTypeId = values.matterTypeTree?.value;\r\n\r\n // tslint:disable-next-line: no-shadowed-variable\r\n const nameGuid = getNameGuid(props.enquiryDetail);\r\n\r\n return {\r\n enquiryGuid: props.guid,\r\n\r\n companyGuid: values.organisation?.value, // Organisation Guid.\r\n nameGuid: nameGuid,\r\n\r\n title: values.title === 'None' ? '' : values.title,\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n email: values.email,\r\n mobile: values.mobile,\r\n phone: values.phone,\r\n generalNotes: values.generalNotes,\r\n isMarketingConsent: values.isMarketingConsent,\r\n reportingGroupGuid: values.reportingGroup ? values.reportingGroup.value : null,\r\n workObtained: values.workObtained ? values.workObtained : null,\r\n\r\n recurringMatterTemplateId: values.recurringMatter?.value,\r\n matterTypeId: matterTypeId,\r\n matterTypeState: values.matterTypeState?.label,\r\n personResponsible: values.personResponsible?.value,\r\n personActing: values.personActing?.value,\r\n personAssisting: values.personAssisting?.value,\r\n personCredit: values.credit?.value,\r\n matterTitle: values.matterTitle,\r\n referrerGuid: values.referrer?.value,\r\n isCreditAgreementRequired: values.costAgreementRequired,\r\n estimatedFees: values.estimatedFees,\r\n isEstimatedFeesIncludesTax: values.isEstimatedFeesIncludesTax,\r\n estimatedDisb: values.estimatedDisbursements,\r\n isEstimatedDisbIncludeTax: values.isEstimatedDisbursementsIncludesTax,\r\n\r\n gender: values.gender,\r\n birthDate: birthDate,\r\n\r\n otherPartyTitle: props.enquiryDetail.otherPartyTitle === 'None' ? '' : props.enquiryDetail.otherPartyTitle,\r\n clientRelationshipToEnquirer: props.enquiryDetail.clientRelationshipToEnquirer,\r\n otherPartyFirstName: props.enquiryDetail.otherPartyFirstName,\r\n otherPartyLastName: props.enquiryDetail.otherPartyLastName,\r\n otherPartyNotes: props.enquiryDetail.otherPartyNotes,\r\n otherPartyOrganisation: props.enquiryDetail.otherPartyOrganisation,\r\n otherPartyEmail: props.enquiryDetail.otherPartyEmail,\r\n otherPartyPhone: props.enquiryDetail.otherPartyPhone,\r\n otherPartyMobile: props.enquiryDetail.otherPartyMobile,\r\n\r\n otherPartyDOB: otherPartyDob,\r\n otherPartyAddressName: props.enquiryDetail.otherPartyAddressName,\r\n otherPartyFloor: props.enquiryDetail.otherPartyFloor,\r\n otherPartyNumber: props.enquiryDetail.otherPartyNumber,\r\n otherPartyStreet: props.enquiryDetail.otherPartyStreet,\r\n otherPartyStreet2: props.enquiryDetail.otherPartyStreet2,\r\n otherPartySuburb: props.enquiryDetail.otherPartySuburb,\r\n otherPartyState: props.enquiryDetail.otherPartyState,\r\n otherPartyPostcode: props.enquiryDetail.otherPartyPostcode,\r\n otherPartyCountry: props.enquiryDetail.otherPartyCountry,\r\n\r\n otherPartyPOBoxType: props.enquiryDetail.otherPartyPOBoxType,\r\n otherPartyPOBox: props.enquiryDetail.otherPartyPOBox,\r\n otherPartyPostalSuburb: props.enquiryDetail.otherPartyPostalSuburb,\r\n otherPartyPostalState: props.enquiryDetail.otherPartyPostalState,\r\n otherPartyPostalPostCode: props.enquiryDetail.otherPartyPostalPostCode,\r\n otherPartyPostalCountry: props.enquiryDetail.otherPartyPostalCountry,\r\n otherPartyNameGuid: props.enquiryDetail.otherPartyNameGuid,\r\n otherPartyCompanyGuid: props.enquiryDetail.otherPartyOrganisationGuid,\r\n\r\n historyFile: {\r\n file: historyDocument,\r\n name: 'RedView CRM Enquiry History.pdf', // if this is renamed, make sure to change a condition in the mutation as well.\r\n guidID: null,\r\n status: 1, // new file.\r\n },\r\n\r\n // secondPerson\r\n secondClientPhone: values.secondPersonPhone,\r\n secondClientEmail: values.secondPersonEmail,\r\n secondClientTitle: values.secondPersonTitle === 'None' ? '' : values.secondPersonTitle,\r\n secondClientMobile: values.secondPersonMobile,\r\n secondClientFirstName: values.secondPersonFirstName ? values.secondPersonFirstName : null,\r\n secondClientLastName: values.secondPersonLastName ? values.secondPersonLastName : null,\r\n secondClientGuid: props.enquiryDetail.secondClientGuid,\r\n secondClientRelationshipToEnquirer: props.enquiryDetail.secondClientRelationshipToEnquirer,\r\n secondClientDOB: secondClientDobFinal,\r\n secondClientGender: values.secondPersonGender ?? null,\r\n secondClientIsMarketingConsent: values.secondPersonIsMarketingConsent,\r\n secondClientIsTermsAndConditionsApproved: props.enquiryDetail.secondClientIsTermsAndConditionsApproved,\r\n secondClientIsPrivacyStatementProvided: props.enquiryDetail.secondClientIsPrivacyStatementProvided,\r\n secondClientIsConflictCheckPerformed: props.enquiryDetail.secondClientIsConflictCheckPerformed,\r\n secondClientIsIdentityCheckPerformed: props.enquiryDetail.secondClientIsIdentityCheckPerformed,\r\n secondClientIsNoConflict: props.enquiryDetail.secondClientIsNoConflict,\r\n secondClientAddressName: values.secondPersonAddress ?? null,\r\n secondClientFloor: values.secondPersonUnitLevel ?? null,\r\n secondClientNumber: values.secondPersonNumber ?? null,\r\n secondClientStreet1: values.secondPersonStreet1 ?? null,\r\n secondClientStreet2: values.secondPersonStreet2 ?? null,\r\n secondClientSuburb: values.secondPersonCitySuburb ?? null,\r\n secondClientState: values.secondPersonState ?? null,\r\n secondClientPostCode: values.secondPersonPostalCode ?? null,\r\n secondClientCountry: values.secondPersonCountry ?? null,\r\n secondClientPOBoxType: values.secondPersonPostalPoBoxType ?? null,\r\n secondClientPOBox: values.secondPersonPostalPOBox ?? null,\r\n secondClientPostalSuburb: values.secondPersonPostalCitySuburb ?? null,\r\n secondClientPostalState: values.secondPersonPostalState ?? null,\r\n secondClientPostalPostCode: values.secondPersonPostalPostalCode ?? null,\r\n secondClientPostalCountry: values.secondPersonPostalCountry ?? null,\r\n\r\n isNameFromDataSource: values.isNameFromDataSource ?? props.enquiryDetail.isNameFromDataSource ?? null,\r\n isOrganisationFromDataSource: values.isOrganisationFromDataSource ?? props.enquiryDetail.isOrganisationFromDataSource ?? null,\r\n isOtherSideFromDataSource: values.isOtherSideFromDataSource ?? props.enquiryDetail.isOtherSideFromDataSource ?? null,\r\n isSecondClientFromDataSource: values.isSecondClientFromDataSource ?? props.enquiryDetail.isSecondClientFromDataSource ?? null\r\n };\r\n };\r\n\r\n // Person only\r\n const getCreateContactInput = (values: CreateClientForm, historyDocument?: Blob) => {\r\n // const pdfFile = HistoryFile(props.enquiryDetail, 'DESC', state.currency, props.timezone,\r\n // props.leadDetailsHistory, HistoryActivityWidth.FULL_WIDTH);\r\n\r\n // const matterTypeId = tenantQuery.data?.tenant.tenantId === '0010' \r\n // || tenantQuery.data?.tenant.tenantId === '0099' ? values.matterTypeTree?.value : values.matterType?.value;\r\n const matterTypeId = values.matterTypeTree?.value;\r\n\r\n let birthDate = formatDateString(values.birthDate);\r\n let secondClientDobFinal = formatDateString(values.secondPersonBirthDate);\r\n let otherPartyDob = formatDateString(props.enquiryDetail.otherPartyDOB);\r\n\r\n // tslint:disable-next-line: no-shadowed-variable\r\n const nameGuid = getNameGuid(props.enquiryDetail);\r\n\r\n return {\r\n enquiryGuid: props.guid,\r\n\r\n nameGuid: nameGuid,\r\n\r\n title: values.title === 'None' ? '' : values.title,\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n email: values.email,\r\n mobile: values.mobile,\r\n phone: values.phone,\r\n generalNotes: values.generalNotes,\r\n reportingGroupGuid: values.reportingGroup ? values.reportingGroup.value : null,\r\n workObtained: values.workObtained ? values.workObtained : null,\r\n\r\n personAddressBuildingName: values.buildingName,\r\n personAddressLevel: values.unitLevel,\r\n personAddressNumber: values.number,\r\n personAddressStreet1: values.street1,\r\n personAddressStreet2: values.street2,\r\n personAddressSuburb: values.citySuburb,\r\n personAddressState: values.state,\r\n personAddressPostCode: values.postalCode,\r\n personAddressCountry: values.country,\r\n\r\n personPostalPoBoxType: values.postalPoBoxType,\r\n personPostalPoBox: values.postalPOBox,\r\n personPostalSuburb: values.postalCitySuburb,\r\n personPostalState: values.postalState,\r\n personPostalPostCode: values.postalPostalCode,\r\n personPostalCountry: values.postalCountry,\r\n isMarketingConsent: values.isMarketingConsent,\r\n\r\n recurringMatterTemplateId: values.recurringMatter?.value,\r\n matterTypeId: matterTypeId,\r\n matterTypeState: values.matterTypeState?.label,\r\n personResponsible: values.personResponsible?.value,\r\n personActing: values.personActing?.value,\r\n personAssisting: values.personAssisting?.value,\r\n personCredit: values.credit?.value,\r\n matterTitle: values.matterTitle,\r\n referrerGuid: values.referrer?.value,\r\n isCreditAgreementRequired: values.costAgreementRequired,\r\n estimatedFees: values.estimatedFees,\r\n isEstimatedFeesIncludesTax: values.isEstimatedFeesIncludesTax,\r\n estimatedDisb: values.estimatedDisbursements,\r\n isEstimatedDisbIncludeTax: values.isEstimatedDisbursementsIncludesTax,\r\n\r\n gender: values.gender,\r\n birthDate: birthDate,\r\n clientRelationshipToEnquirer: props.enquiryDetail.clientRelationshipToEnquirer,\r\n\r\n otherPartyTitle: props.enquiryDetail.otherPartyTitle === 'None' ? '' : props.enquiryDetail.otherPartyTitle,\r\n otherPartyFirstName: props.enquiryDetail.otherPartyFirstName,\r\n otherPartyLastName: props.enquiryDetail.otherPartyLastName,\r\n otherPartyNotes: props.enquiryDetail.otherPartyNotes,\r\n otherPartyOrganisation: props.enquiryDetail.otherPartyOrganisation,\r\n otherPartyEmail: props.enquiryDetail.otherPartyEmail,\r\n otherPartyPhone: props.enquiryDetail.otherPartyPhone,\r\n otherPartyMobile: props.enquiryDetail.otherPartyMobile,\r\n\r\n otherPartyDOB: otherPartyDob,\r\n otherPartyAddressName: props.enquiryDetail.otherPartyAddressName,\r\n otherPartyFloor: props.enquiryDetail.otherPartyFloor,\r\n otherPartyNumber: props.enquiryDetail.otherPartyNumber,\r\n otherPartyStreet: props.enquiryDetail.otherPartyStreet,\r\n otherPartyStreet2: props.enquiryDetail.otherPartyStreet2,\r\n otherPartySuburb: props.enquiryDetail.otherPartySuburb,\r\n otherPartyState: props.enquiryDetail.otherPartyState,\r\n otherPartyPostcode: props.enquiryDetail.otherPartyPostcode,\r\n otherPartyCountry: props.enquiryDetail.otherPartyCountry,\r\n\r\n otherPartyPOBoxType: props.enquiryDetail.otherPartyPOBoxType,\r\n otherPartyPOBox: props.enquiryDetail.otherPartyPOBox,\r\n otherPartyPostalSuburb: props.enquiryDetail.otherPartyPostalSuburb,\r\n otherPartyPostalState: props.enquiryDetail.otherPartyPostalState,\r\n otherPartyPostalPostCode: props.enquiryDetail.otherPartyPostalPostCode,\r\n otherPartyPostalCountry: props.enquiryDetail.otherPartyPostalCountry,\r\n otherPartyNameGuid: props.enquiryDetail.otherPartyNameGuid,\r\n otherPartyCompanyGuid: props.enquiryDetail.otherPartyOrganisationGuid,\r\n\r\n historyFile: {\r\n file: historyDocument,\r\n name: 'RedView CRM Enquiry History.pdf', // if this is renamed, make sure to change a condition in the mutation as well.\r\n guidID: null,\r\n status: 1, // new file.\r\n },\r\n\r\n // secondPerson\r\n secondClientPhone: values.secondPersonPhone,\r\n secondClientEmail: values.secondPersonEmail,\r\n secondClientTitle: values.secondPersonTitle === 'None' ? '' : values.secondPersonTitle,\r\n secondClientMobile: values.secondPersonMobile,\r\n secondClientFirstName: values.secondPersonFirstName ? values.secondPersonFirstName : null,\r\n secondClientLastName: values.secondPersonLastName ? values.secondPersonLastName : null,\r\n secondClientGuid: props.enquiryDetail.secondClientGuid,\r\n secondClientRelationshipToEnquirer: props.enquiryDetail.secondClientRelationshipToEnquirer,\r\n secondClientDOB: secondClientDobFinal,\r\n secondClientGender: values.secondPersonGender ?? null,\r\n secondClientIsMarketingConsent: values.secondPersonIsMarketingConsent,\r\n secondClientIsTermsAndConditionsApproved: props.enquiryDetail.secondClientIsTermsAndConditionsApproved,\r\n secondClientIsPrivacyStatementProvided: props.enquiryDetail.secondClientIsPrivacyStatementProvided,\r\n secondClientIsConflictCheckPerformed: props.enquiryDetail.secondClientIsConflictCheckPerformed,\r\n secondClientIsIdentityCheckPerformed: props.enquiryDetail.secondClientIsIdentityCheckPerformed,\r\n secondClientIsNoConflict: props.enquiryDetail.secondClientIsNoConflict,\r\n secondClientAddressName: values.secondPersonAddress ?? null,\r\n secondClientFloor: values.secondPersonUnitLevel ?? null,\r\n secondClientNumber: values.secondPersonNumber ?? null,\r\n secondClientStreet1: values.secondPersonStreet1 ?? null,\r\n secondClientStreet2: values.secondPersonStreet2 ?? null,\r\n secondClientSuburb: values.secondPersonCitySuburb ?? null,\r\n secondClientState: values.secondPersonState ?? null,\r\n secondClientPostCode: values.secondPersonPostalCode ?? null,\r\n secondClientCountry: values.secondPersonCountry ?? null,\r\n secondClientPOBoxType: values.secondPersonPostalPoBoxType ?? null,\r\n secondClientPOBox: values.secondPersonPostalPOBox ?? null,\r\n secondClientPostalSuburb: values.secondPersonPostalCitySuburb ?? null,\r\n secondClientPostalState: values.secondPersonPostalState ?? null,\r\n secondClientPostalPostCode: values.secondPersonPostalPostalCode ?? null,\r\n secondClientPostalCountry: values.secondPersonPostalCountry ?? null,\r\n\r\n isNameFromDataSource: values.isNameFromDataSource ?? props.enquiryDetail.isNameFromDataSource ?? null,\r\n isOrganisationFromDataSource: values.isOrganisationFromDataSource ?? props.enquiryDetail.isOrganisationFromDataSource ?? null,\r\n isOtherSideFromDataSource: values.isOtherSideFromDataSource ?? props.enquiryDetail.isOtherSideFromDataSource ?? null,\r\n isSecondClientFromDataSource: values.isSecondClientFromDataSource ?? props.enquiryDetail.isSecondClientFromDataSource ?? null\r\n };\r\n };\r\n\r\n const getAddressLabelForPanel = (\r\n buildingName: string,\r\n level: string,\r\n streetNumber: string,\r\n street1: string,\r\n street2: string,\r\n suburb: string,\r\n addressState: string,\r\n postCode: string,\r\n country: string,\r\n ) => {\r\n let address = buildingName ? buildingName : '';\r\n if (level && level.length > 0) {\r\n address = address.length > 0 ? address + ', ' + level : level;\r\n }\r\n if (streetNumber && streetNumber.length > 0) {\r\n address = address.length > 0 ? address + (level && level.length > 0 ? '/' : ' ') + streetNumber : streetNumber;\r\n }\r\n if (street1 && street1.length > 0) {\r\n address = address.length > 0 ? address + ' ' + street1 : street1;\r\n }\r\n if (street2 && street2.length > 0) {\r\n address = address.length > 0 ? address + ', ' + street2 : street2;\r\n }\r\n if (suburb && suburb.length > 0) {\r\n address = address.length > 0 ? address + ', ' + suburb : suburb;\r\n }\r\n if (addressState && addressState.length > 0) {\r\n address = address.length > 0 ? address + ', ' + addressState : addressState;\r\n }\r\n if (postCode && postCode.length > 0) {\r\n address = address.length > 0 ? address + ', ' + postCode : postCode;\r\n }\r\n if (country && country.length > 0) {\r\n address = address.length > 0 ? address + ', ' + country : country;\r\n }\r\n\r\n return address;\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const birthDateValidator = (value: any) => {\r\n if (value) {\r\n // check for a valid date and check for sql's min date\r\n var date = moment(value);\r\n\r\n if (date.isValid() && date.year() >= 1753 && date.toDate() <= moment().toDate()) {\r\n return undefined;\r\n } else {\r\n return 'Incorrect Date';\r\n }\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n const actionButton = (\r\n // tslint:disable-next-line: no-any\r\n form: FormApi,\r\n submitting: boolean,\r\n pristine: boolean,\r\n // tslint:disable-next-line: no-any\r\n values: any,\r\n ) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n const disabledAddress = (values: AnyObject) => {\r\n if (!state.isSwitched && values.organisation !== null) {\r\n return true;\r\n } else if (state.isSwitched && (values.organisationText === '' || values.organisationText === undefined)) {\r\n return true;\r\n } else if (!state.isSwitched && values.organisation === null) {\r\n return false;\r\n }\r\n return false;\r\n };\r\n\r\n const disabledPersonAddress = (values: AnyObject) => {\r\n if (state.isSwitched && (values.organisationText === '' || values.organisationText === undefined)) {\r\n return false;\r\n } else if (!state.isSwitched && values.organisation === null) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n // tslint:disable-next-line: max-line-length no-any\r\n const onCheckboxChanged = (input: FieldInputProps, form: FormApi, values: AnyObject) => (event: React.ChangeEvent<{}>, checked: boolean) => {\r\n input.onChange(checked);\r\n\r\n form.setConfig('keepDirtyOnReinitialize', false);\r\n form.batch(() => {\r\n form.change('recurringMatter', null);\r\n form.change('matterCategory', null);\r\n form.change('matterTypeState', null);\r\n form.change('matterType', null);\r\n });\r\n form.setConfig('keepDirtyOnReinitialize', true);\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onSelectionChanged = (selection: any, name: string, input: FieldInputProps, form: FormApi, values: AnyObject) => {\r\n\r\n form.setConfig('keepDirtyOnReinitialize', false);\r\n\r\n form.batch(() => {\r\n if (name === 'recurringMatter') {\r\n if (selection) {\r\n input.onChange(selection);\r\n\r\n if (selection.hasOwnProperty('matterTypeId') && selection.hasOwnProperty('matterTypeName')) {\r\n const matterTypeValue = { label: selection.matterTypeName, value: selection.matterTypeId };\r\n form.change('matterType', matterTypeValue);\r\n form.change('matterTitle', selection.matterTypeName);\r\n } else {\r\n form.change('matterType', null);\r\n form.change('matterTitle', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('state') && selection.state) {\r\n const matterTypeState = { label: selection.state, value: selection.state };\r\n form.change('matterTypeState', matterTypeState);\r\n } else {\r\n form.change('matterTypeState', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('matterTitle') && selection.matterTitle) {\r\n form.change('matterTitle', selection.matterTitle);\r\n } else {\r\n form.change('matterTitle', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('referrerGuid') && selection.referrerGuid) {\r\n\r\n if (props.enquiryDetail && props.enquiryDetail.referrerName && props.enquiryDetail.referrerGuid) {\r\n const tempReferrer = { label: props.enquiryDetail.referrerName, value: props.enquiryDetail.referrerGuid };\r\n form.change('referrer', tempReferrer);\r\n } else {\r\n const referrerValue = { label: selection.referrerName, value: selection.referrerGuid };\r\n form.change('referrer', referrerValue);\r\n }\r\n } else {\r\n if (props.enquiryDetail && props.enquiryDetail.referrerName && props.enquiryDetail.referrerGuid) {\r\n const tempReferrer = { label: props.enquiryDetail.referrerName, value: props.enquiryDetail.referrerGuid };\r\n form.change('referrer', tempReferrer);\r\n } else {\r\n form.change('referrer', null);\r\n }\r\n }\r\n\r\n if (selection.hasOwnProperty('reportingGroupGuid') && selection.reportingGroupGuid) {\r\n const reportingGroup = { label: selection.reportingGroup, value: selection.reportingGroupGuid };\r\n form.change('reportingGroup', reportingGroup);\r\n\r\n } else {\r\n form.change('reportingGroup', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('workObtained') && selection.workObtained) {\r\n // const workObtained = { label: selection.workObtained, value: selection.workObtained };\r\n form.change('workObtained', selection.workObtained);\r\n\r\n } else {\r\n form.change('workObtained', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('responsibleGuid') && selection.responsibleGuid) {\r\n const responsibleValue = { label: selection.responsibleName, value: selection.responsibleGuid };\r\n form.change('personResponsible', responsibleValue);\r\n } else {\r\n form.change('personResponsible', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('actingGuid') && selection.actingGuid) {\r\n const actingValue = { label: selection.actingName, value: selection.actingGuid };\r\n form.change('personActing', actingValue);\r\n } else {\r\n form.change('personActing', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('assistingGuid') && selection.actingGuid) {\r\n const assistingValue = { label: selection.assistingName, value: selection.assistingGuid };\r\n form.change('personAssisting', assistingValue);\r\n } else {\r\n form.change('personAssisting', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('creditGuid') && selection.creditGuid) {\r\n const creditValue = { label: selection.creditName, value: selection.creditGuid };\r\n form.change('credit', creditValue);\r\n } else {\r\n form.change('credit', null);\r\n }\r\n\r\n if (selection.hasOwnProperty('costAgreementRequired') && selection.costAgreementRequired) {\r\n form.change('costAgreementRequired', selection.costAgreementRequired);\r\n } else {\r\n form.change('costAgreementRequired', false);\r\n }\r\n\r\n // These values are passed in from enquiry as props.\r\n // Estimated Fees\r\n if (selection.hasOwnProperty('costsEstimate') && selection.costsEstimate) {\r\n form.change('estimatedFees', props.enquiryDetail && props.enquiryDetail.estimatedFees ? props.enquiryDetail.estimatedFees : selection.costsEstimate);\r\n } else {\r\n form.change('estimatedFees', props.enquiryDetail && props.enquiryDetail.estimatedFees ? props.enquiryDetail.estimatedFees : null);\r\n }\r\n\r\n if (selection.hasOwnProperty('isEstimatedFeesIncludesTax') && selection.isEstimatedFeesIncludesTax) {\r\n form.change(\r\n 'isEstimatedFeesIncludesTax',\r\n props.enquiryDetail && props.enquiryDetail.isEstimatedFeesIncludesTax\r\n ? props.enquiryDetail.isEstimatedFeesIncludesTax\r\n : selection.isEstimatedFeesIncludesTax,\r\n );\r\n } else {\r\n form.change(\r\n 'isEstimatedFeesIncludesTax',\r\n props.enquiryDetail && props.enquiryDetail.isEstimatedFeesIncludesTax ? props.enquiryDetail.isEstimatedFeesIncludesTax : false,\r\n );\r\n }\r\n\r\n // Disbursement Estimates\r\n if (selection.hasOwnProperty('disbursementsEstimate') && selection.disbursementsEstimate) {\r\n form.change(\r\n 'estimatedDisbursements',\r\n props.enquiryDetail && props.enquiryDetail.estimatedDisbursements ? props.enquiryDetail.estimatedDisbursements : selection.disbursementsEstimate,\r\n );\r\n } else {\r\n form.change(\r\n 'estimatedDisbursements',\r\n props.enquiryDetail && props.enquiryDetail.estimatedDisbursements ? props.enquiryDetail.estimatedDisbursements : null,\r\n );\r\n }\r\n\r\n if (selection.hasOwnProperty('isEstimatedDisbursementsIncludesTax') && selection.isEstimatedDisbursementsIncludesTax) {\r\n form.change(\r\n 'isEstimatedDisbursementsIncludesTax',\r\n props.enquiryDetail && props.enquiryDetail.isEstimatedDisbursementsIncludesTax\r\n ? props.enquiryDetail.isEstimatedDisbursementsIncludesTax\r\n : selection.isEstimatedDisbursementsIncludesTax,\r\n );\r\n } else {\r\n form.change(\r\n 'isEstimatedDisbursementsIncludesTax',\r\n props.enquiryDetail && props.enquiryDetail.isEstimatedDisbursementsIncludesTax ? props.enquiryDetail.isEstimatedDisbursementsIncludesTax : false,\r\n );\r\n }\r\n } else {\r\n input.onChange(null);\r\n }\r\n }\r\n\r\n if (name === 'matterCategory') {\r\n if (selection) {\r\n input.onChange(selection);\r\n } else {\r\n input.onChange(null);\r\n }\r\n form.change('matterTypeState', null);\r\n form.change('matterType', null);\r\n form.change('matterTitle', null);\r\n }\r\n\r\n if (name === 'matterTypeState') {\r\n if (selection) {\r\n input.onChange(selection);\r\n form.change('matterTitle', selection.matterTypeName);\r\n } else {\r\n input.onChange(null);\r\n form.change('matterTitle', null);\r\n }\r\n\r\n form.change('matterType', null);\r\n form.change('matterTypeTree', null);\r\n }\r\n\r\n if (name === 'matterType') {\r\n if (selection) {\r\n input.onChange(selection);\r\n form.change('matterTitle', selection.label);\r\n } else {\r\n input.onChange(null);\r\n form.change('matterTitle', null);\r\n }\r\n }\r\n\r\n if (name === 'matterTypeTree') {\r\n if (selection) {\r\n input.onChange(selection);\r\n form.change('matterTitle', selection.label);\r\n } else {\r\n input.onChange(null);\r\n }\r\n }\r\n });\r\n\r\n form.setConfig('keepDirtyOnReinitialize', true);\r\n };\r\n\r\n const openErrorPanel = (errors: ValidationErrors) => {\r\n if (Object.keys(errors).length) {\r\n setState((prevState) => {\r\n let isOrganisationExpandPanel = false;\r\n let isOrgnisationPostralAddressExpandPanel = false;\r\n let isPersonExpandPanel = false;\r\n let isPersonPostalAddressExpandPanel = false;\r\n let isCreateMatterExpandPanel = false;\r\n let isPerson2ExpandPanel = false;\r\n let isPerson2PostalAddressExpandPanel = false;\r\n\r\n if (errors.hasOwnProperty('orgPostalPOBox')) {\r\n isOrganisationExpandPanel = true;\r\n isOrgnisationPostralAddressExpandPanel = true;\r\n }\r\n\r\n if (prevState.isOrganisationExpandPanel) {\r\n isOrganisationExpandPanel = true;\r\n }\r\n\r\n if (prevState.isOrgnisationPostralAddressExpandPanel) {\r\n isOrgnisationPostralAddressExpandPanel = true;\r\n }\r\n\r\n // person\r\n if (\r\n errors.hasOwnProperty('postalPOBox') ||\r\n errors.hasOwnProperty('title') ||\r\n errors.hasOwnProperty('firstName') ||\r\n errors.hasOwnProperty('lastName') /*|| errors.hasOwnProperty('email')*/\r\n ) {\r\n isPersonExpandPanel = true;\r\n isPersonPostalAddressExpandPanel = true;\r\n }\r\n\r\n if (prevState.isPersonExpandPanel) {\r\n isPersonExpandPanel = true;\r\n }\r\n\r\n if (errors.hasOwnProperty('postalPOBox')) {\r\n isPersonPostalAddressExpandPanel = true;\r\n }\r\n\r\n if (prevState.isPersonPostalAddressExpandPanel) {\r\n isPersonPostalAddressExpandPanel = true;\r\n }\r\n\r\n // person 2\r\n if (\r\n errors.hasOwnProperty('secondPersonPostalPOBox') ||\r\n errors.hasOwnProperty('secondPersonTitle') ||\r\n errors.hasOwnProperty('secondPersonFirstName') ||\r\n errors.hasOwnProperty('secondPersonLastName') /*|| errors.hasOwnProperty('email')*/\r\n ) {\r\n isPerson2ExpandPanel = true;\r\n isPerson2PostalAddressExpandPanel = true;\r\n }\r\n\r\n if (errors.hasOwnProperty('secondPersonPostalPOBox')) {\r\n isPerson2PostalAddressExpandPanel = true;\r\n }\r\n\r\n if (prevState.isPerson2ExpandPanel) {\r\n isPerson2ExpandPanel = true;\r\n }\r\n \r\n if (\r\n errors.hasOwnProperty('recurringMatter') ||\r\n errors.hasOwnProperty('matterCategory') ||\r\n errors.hasOwnProperty('matterTypeState') ||\r\n errors.hasOwnProperty('matterType') ||\r\n errors.hasOwnProperty('personResponsible') ||\r\n errors.hasOwnProperty('personActing') ||\r\n errors.hasOwnProperty('matterTitle') || \r\n errors.hasOwnProperty('matterTypeTree')\r\n ) {\r\n isCreateMatterExpandPanel = true;\r\n }\r\n\r\n if (prevState.isCreateMatterExpandPanel) {\r\n isCreateMatterExpandPanel = true;\r\n }\r\n\r\n return {\r\n ...prevState,\r\n isOrganisationExpandPanel: isOrganisationExpandPanel,\r\n isOrgnisationPostralAddressExpandPanel: isOrgnisationPostralAddressExpandPanel,\r\n isPersonExpandPanel: isPersonExpandPanel,\r\n isPersonPostalAddressExpandPanel: isPersonPostalAddressExpandPanel,\r\n isCreateMatterExpandPanel: isCreateMatterExpandPanel,\r\n isPerson2ExpandPanel: isPerson2ExpandPanel,\r\n isPerson2PostalAddressExpandPanel: isPerson2PostalAddressExpandPanel,\r\n isFormSubmit: false,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onExpandPanel = (panel: string) => (event: React.ChangeEvent<{}>, expanded: boolean) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n [panel]: expanded,\r\n };\r\n });\r\n };\r\n\r\n // const createMatterByTenant = (form: FormApi, submitting: boolean, pristine: boolean, values: AnyObject) => {\r\n\r\n // const tenant = tenantQuery.data?.tenant.tenantId;\r\n\r\n // if (tenant === '0010' || tenant === '0099') {\r\n // return (\r\n // <>\r\n // \r\n // \r\n // {({ input, meta }) => (\r\n // onSelectionChanged(selection, name, input, form, values)}\r\n // onBlur={input.onBlur}\r\n // // disabled={values.matterCategory ? false : true}\r\n // />\r\n // )}\r\n // \r\n // \r\n // \r\n // \r\n // {({ input, meta }) => (\r\n // onSelectionChanged(selection, name, input, form, values)}\r\n // disabled={values.matterTypeState ? false : true}\r\n // />\r\n // )}\r\n // \r\n // \r\n // \r\n // );\r\n // }\r\n\r\n // return (\r\n // <>\r\n // \r\n // \r\n // {({ input, meta }) => (\r\n // onSelectionChanged(selection, name, input, form, values)}\r\n // onBlur={input.onBlur}\r\n // />\r\n // )}\r\n // \r\n // \r\n // \r\n // \r\n // {({ input, meta }) => (\r\n // onSelectionChanged(selection, name, input, form, values)}\r\n // onBlur={input.onBlur}\r\n // disabled={values.matterCategory ? false : true}\r\n // />\r\n // )}\r\n // \r\n // \r\n // \r\n // \r\n // {({ input, meta }) => (\r\n // onSelectionChanged(selection, name, input, form, values)}\r\n // onBlur={input.onBlur}\r\n // disabled={values.matterTypeState ? false : true}\r\n // filter={{\r\n // state: values.matterTypeState ? values.matterTypeState.label : undefined,\r\n // category: values.matterCategory ? values.matterCategory.value : undefined,\r\n // }}\r\n // required={canCreateMatter}\r\n // />\r\n // )}\r\n // \r\n // \r\n // \r\n // );\r\n // };\r\n\r\n const createMatterExpandablePanel = (form: FormApi, submitting: boolean, pristine: boolean, values: AnyObject) => {\r\n return (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Create Matter\r\n \r\n
\r\n
\r\n \r\n {({ input, meta }) => (\r\n event.stopPropagation()}\r\n onFocus={(event) => event.stopPropagation()}\r\n onChange={onCheckboxChanged(input, form, values)}\r\n control={} />}\r\n label=\"Use Recurring Matter\"\r\n />\r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {values.useRecurringMatter ? (\r\n \r\n \r\n {({ input, meta }) => (\r\n onSelectionChanged(selection, name, input, form, values)}\r\n error={meta.error && meta.touched}\r\n helperText={meta.error && meta.touched ? 'Field is required' : ''}\r\n onBlur={input.onBlur}\r\n required={canCreateMatter}\r\n />\r\n )}\r\n \r\n \r\n ) : (\r\n // createMatterByTenant(form, submitting, pristine, values)\r\n <>\r\n \r\n \r\n {({ input, meta }) => (\r\n onSelectionChanged(selection, name, input, form, values)}\r\n onBlur={input.onBlur}\r\n // disabled={values.matterCategory ? false : true}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n onSelectionChanged(selection, name, input, form, values)}\r\n disabled={values.matterTypeState ? false : true}\r\n />\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(selection)}\r\n error={meta.error && meta.touched}\r\n helperText={meta.error && meta.touched ? 'Field is required' : ''}\r\n onBlur={input.onBlur}\r\n required={canCreateMatter}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(selection)}\r\n error={meta.error && meta.touched}\r\n helperText={meta.error && meta.touched ? 'Field is required' : ''}\r\n onBlur={input.onBlur}\r\n required={canCreateMatter}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(selection)}\r\n error={meta.error && meta.touched}\r\n helperText={meta.error && meta.touched ? 'Field is required' : ''}\r\n onBlur={input.onBlur}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(selection)}\r\n error={meta.error && meta.touched}\r\n helperText={meta.error && meta.touched ? 'Field is required' : ''}\r\n onBlur={input.onBlur}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection);\r\n }}\r\n onBlur={input.onBlur}\r\n includeNonPmsContacts={false}\r\n includePmsContacts={true}\r\n />\r\n )}\r\n \r\n \r\n {/* \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection);\r\n }}\r\n onBlur={input.onBlur}\r\n />\r\n )}\r\n \r\n */}\r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection);\r\n }}\r\n onBlur={input.onBlur}\r\n />\r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n } />}\r\n label=\"Includes Tax\"\r\n />\r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n } />}\r\n label=\"Includes Tax\"\r\n />\r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n } />}\r\n label=\"Cost Agreement Required\"\r\n />\r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n // tslint:disable-next-line\r\n const organisationExpandablePanel = (form: FormApi, submitting: boolean, pristine: boolean, values: AnyObject) => {\r\n // let defaultExpanded = props.organisation.length > 0 ? true : false;\r\n\r\n return (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Organisation\r\n \r\n\r\n
\r\n
\r\n
{`${values.organisation && values.organisation.label ? values.organisation.label : ''}`}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {!state.isSwitched ? (\r\n \r\n {({ input, meta }) => (\r\n {\r\n // Another approach.\r\n onDropDownSelect(form, selection, name);\r\n }}\r\n disabled={state.isOrganisationPanelDisabled}\r\n />\r\n )}\r\n \r\n ) : (\r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n )}\r\n
\r\n
\r\n Switch to select an existing organisation\r\n ) : (\r\n Switch to enter a new organisation name\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {orgAddressPanel(true, form)}\r\n \r\n \r\n {orgPostalAddressPanel(false, form)}\r\n \r\n
\r\n
\r\n \r\n );\r\n };\r\n\r\n // tslint:disable-next-line\r\n const orgAddressPanel = (defaultExpanded: boolean, form: FormApi) => {\r\n return (\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Main Address\r\n \r\n\r\n
\r\n
\r\n
\r\n {getAddressLabelForPanel(\r\n values.orgBuildingName,\r\n values.orgUnitLevel,\r\n values.orgNumber,\r\n values.orgStreet1,\r\n values.orgStreet2,\r\n values.orgCitySuburb,\r\n values.orgState,\r\n values.orgPostalCode,\r\n values.orgCountry,\r\n )}\r\n\r\n {/* {values.orgBuildingName ? `${values.orgBuildingName}, ` : ''}\r\n {values.orgUnitLevel ? `${values.orgUnitLevel}, ` : ''}\r\n {values.orgNumber ? `${values.orgNumber}, ` : ''}\r\n {values.orgStreet1 ? `${values.orgStreet1}, ` : ''}\r\n {values.orgCitySuburb ? `${values.orgCitySuburb}, ` : ''}\r\n {values.orgState ? `${values.orgState}, ` : ''}\r\n {values.orgPostalCode ? `${values.orgPostalCode}, ` : ''}\r\n {values.orgCountry ? `${values.orgCountry}` : ''} */}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n };\r\n\r\n // tslint:disable-next-line: max-line-length\r\n const orgPostalAddressPanel = (defaultExpanded: boolean, form: FormApi) => {\r\n return (\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Postal Address\r\n \r\n\r\n
\r\n
\r\n
\r\n {/* {getAddressLabelForPanel} */}\r\n {values.orgPoBoxType ? `${values.orgPoBoxType} ` : ''}\r\n {values.orgPostalPOBox ? `${values.orgPostalPOBox}, ` : ''}\r\n {values.orgPostalCitySuburb ? `${values.orgPostalCitySuburb}, ` : ''}\r\n {values.orgPostalState ? `${values.orgPostalState}, ` : ''}\r\n {values.orgPostalPostalCode ? `${values.orgPostalPostalCode}, ` : ''}\r\n {values.orgPostalCountry ? `${values.orgPostalCountry}` : ''}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection ? selection.value : null);\r\n }}\r\n helperText={meta.error && meta.touched ? 'Field is required' : ''}\r\n disabled={disabledAddress(values)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n // tslint:disable-next-line\r\n const address2Panel = (defaultExpanded: boolean, form: FormApi) => {\r\n return (\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Main Address\r\n \r\n\r\n
\r\n
\r\n
\r\n {getAddressLabelForPanel(\r\n values.secondPersonBuildingName,\r\n values.secondPersonUnitLevel,\r\n values.secondPersonNumber,\r\n values.secondPersonStreet1,\r\n values.secondPersonStreet2,\r\n values.secondPersonCitySuburb,\r\n values.secondPersonState,\r\n values.secondPersonPostalCode,\r\n values.secondPersonCountry,\r\n )}\r\n {/* {values.buildingName ? `${values.buildingName}, ` : ''}\r\n {values.unitLevel ? `${values.unitLevel}, ` : ''}\r\n {values.number ? `${values.number}, ` : ''}\r\n {values.street1 ? `${values.street1}, ` : ''}\r\n {values.citySuburb ? `${values.citySuburb}, ` : ''}\r\n {values.state ? `${values.state}, ` : ''}\r\n {values.postalCode ? `${values.postalCode}, ` : ''}\r\n {values.country ? `${values.country}` : ''} */}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n };\r\n\r\n // tslint:disable-next-line: max-line-length\r\n const postalAddress2Panel = (defaultExpanded: boolean, form: FormApi) => {\r\n return (\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Postal Address\r\n \r\n\r\n
\r\n
\r\n
\r\n {values.secondPersonPostalPoBoxType ? `${values.secondPersonPostalPoBoxType} ` : ''}\r\n {values.secondPersonPostalPOBox ? `${values.secondPersonPostalPOBox}, ` : ''}\r\n {values.secondPersonPostalCitySuburb ? `${values.secondPersonPostalCitySuburb}, ` : ''}\r\n {values.secondPersonPostalState ? `${values.secondPersonPostalState}, ` : ''}\r\n {values.secondPersonPostalPostalCode ? `${values.secondPersonPostalPostalCode}, ` : ''}\r\n {values.secondPersonPostalCountry ? `${values.secondPersonPostalCountry}` : ''}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection ? selection.value : null);\r\n }}\r\n helperText={meta.error && meta.touched ? 'Field is required' : ''}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n // tslint:disable-next-line: no-any max-line-length\r\n const person2ExpandablePanel = (defaultExpanded: boolean, form: FormApi, submitting: boolean, pristine: boolean, values: AnyObject) => {\r\n return (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Person 2\r\n \r\n\r\n
\r\n
\r\n
\r\n {values.secondPersonTitle ? values.secondPersonTitle === 'None' ? '' : `${values.secondPersonTitle} ` : ''}\r\n {values.secondPersonFirstName ? `${values.secondPersonFirstName} ` : ''}\r\n {values.secondPersonLastName ? `${values.secondPersonLastName} ` : ''}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n <>\r\n {\r\n input.onChange(selection ? selection.value : '');\r\n }}\r\n required={true}\r\n helperText={meta.error && meta.touched ? 'Title is required' : ''}\r\n disabled={state.isPersonPanelDisabled}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n 0 \r\n && !values.secondPersonFirstName ? true : false}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n 0 && !values.secondPersonLastName ? true : false}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n } />}\r\n label=\"Marketing Consent\"\r\n disabled={state.isPersonPanelDisabled}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(date)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(selection.value)}\r\n helperText={meta.error && meta.touched ? 'Gender is required' : ''}\r\n disabled={state.isPersonPanelDisabled}\r\n />\r\n )}\r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => {\r\n if (!disabledPersonAddress(values)) {\r\n return (\r\n <>\r\n \r\n {address2Panel(true, form)}\r\n \r\n \r\n {postalAddress2Panel(false, form)}\r\n \r\n \r\n );\r\n }\r\n return
;\r\n }}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n // tslint:disable-next-line: no-any max-line-length\r\n const personExpandablePanel = (defaultExpanded: boolean, form: FormApi, submitting: boolean, pristine: boolean, values: any) => {\r\n return (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Person\r\n \r\n\r\n
\r\n
\r\n
\r\n {values.title ? values.title === 'None' ? '' : `${values.title} ` : ''}\r\n {values.firstName ? `${values.firstName} ` : ''}\r\n {values.lastName ? `${values.lastName} ` : ''}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n <>\r\n {\r\n input.onChange(selection ? selection.value : '');\r\n }}\r\n required={true}\r\n helperText={meta.error && meta.touched ? 'Title is required' : ''}\r\n disabled={state.isPersonPanelDisabled}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n } />}\r\n label=\"Marketing Consent\"\r\n disabled={state.isPersonPanelDisabled}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(date)}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n input.onChange(selection.value)}\r\n helperText={meta.error && meta.touched ? 'Gender is required' : ''}\r\n disabled={state.isPersonPanelDisabled}\r\n />\r\n )}\r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => {\r\n if (!disabledPersonAddress(values)) {\r\n return (\r\n <>\r\n \r\n {addressPanel(true, form)}\r\n \r\n \r\n {postalAddressPanel(false, form)}\r\n \r\n \r\n );\r\n }\r\n return
;\r\n }}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n // tslint:disable-next-line\r\n const addressPanel = (defaultExpanded: boolean, form: FormApi) => {\r\n return (\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Main Address\r\n \r\n\r\n
\r\n
\r\n
\r\n {getAddressLabelForPanel(\r\n values.buildingName,\r\n values.unitLevel,\r\n values.number,\r\n values.street1,\r\n values.street2,\r\n values.citySuburb,\r\n values.state,\r\n values.postalCode,\r\n values.country,\r\n )}\r\n {/* {values.buildingName ? `${values.buildingName}, ` : ''}\r\n {values.unitLevel ? `${values.unitLevel}, ` : ''}\r\n {values.number ? `${values.number}, ` : ''}\r\n {values.street1 ? `${values.street1}, ` : ''}\r\n {values.citySuburb ? `${values.citySuburb}, ` : ''}\r\n {values.state ? `${values.state}, ` : ''}\r\n {values.postalCode ? `${values.postalCode}, ` : ''}\r\n {values.country ? `${values.country}` : ''} */}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n };\r\n\r\n // tslint:disable-next-line: max-line-length\r\n const postalAddressPanel = (defaultExpanded: boolean, form: FormApi) => {\r\n return (\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n \r\n } aria-controls=\"panel1a-content\" id=\"panel1a-header\" className={classes.AccordionSummary}>\r\n \r\n \r\n Postal Address\r\n \r\n\r\n
\r\n
\r\n
\r\n {values.postalPoBoxType ? `${values.postalPoBoxType} ` : ''}\r\n {values.postalPOBox ? `${values.postalPOBox}, ` : ''}\r\n {values.postalCitySuburb ? `${values.postalCitySuburb}, ` : ''}\r\n {values.postalState ? `${values.postalState}, ` : ''}\r\n {values.postalPostalCode ? `${values.postalPostalCode}, ` : ''}\r\n {values.postalCountry ? `${values.postalCountry}` : ''}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection ? selection.value : null);\r\n }}\r\n helperText={meta.error && meta.touched ? 'Field is required' : ''}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n const onCreateClientClosed = () => {\r\n if (props.onDialogClose) {\r\n props.onDialogClose();\r\n }\r\n };\r\n\r\n return (\r\n \r\n ) => onSubmit(form, values)}\r\n initialValues={initialValues}\r\n initialValuesEqual={() => true}\r\n keepDirtyOnReinitialize={true}\r\n subscription={{ submitting: true, pristine: true }}\r\n validate={(values) => {\r\n let errors = {\r\n secondPersonFirstName: '',\r\n secondPersonLastName: ''\r\n };\r\n\r\n if (values.hasOwnProperty('secondPersonFirstName') && values.secondPersonFirstName && !values.secondPersonLastName) {\r\n errors.secondPersonLastName = 'Required';\r\n }\r\n\r\n if (values.hasOwnProperty('secondPersonLastName') && values.secondPersonLastName && !values.secondPersonFirstName) {\r\n errors.secondPersonFirstName = 'Required';\r\n }\r\n\r\n if (errors.secondPersonFirstName === '' && errors.secondPersonLastName === '') {\r\n return undefined;\r\n }\r\n\r\n return errors;\r\n }}\r\n // debug={(values) => {\r\n // // tslint:disable-next-line: no-console\r\n // console.log('Debug Values', values);\r\n // }}\r\n render={({ handleSubmit, form, submitting, pristine, values }) => (\r\n
\r\n
\r\n

{`Create ${canCreateMatter ? 'Matter' : 'Client'}`}

\r\n\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values, errors }) => {\r\n // check if has error and expand panel\r\n if (state.isFormSubmit) {\r\n openErrorPanel(errors);\r\n }\r\n // Buttons should be encapsulated in FormSpy - While close, we are refering to values and form\r\n return actionButton(form, submitting, pristine, values);\r\n }}\r\n \r\n\r\n {\r\n onFormValueChanged(form, props);\r\n }}\r\n />\r\n\r\n onDiscardChanges(form, agree)}\r\n disAgreeLabel={'No'}\r\n agreeLabel={'Yes'}\r\n />\r\n\r\n \r\n {/* Buttons should be encapsulated in FormSpy - While close, we are refering to values and form */}\r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n <>\r\n onConfirmed(form, values, agree)}\r\n disAgreeLabel={'No'}\r\n agreeLabel={'Yes'}\r\n />\r\n {canCreateMatter && createMatterExpandablePanel(form, submitting, pristine, values)}\r\n {organisationExpandablePanel(form, submitting, pristine, values)}\r\n {personExpandablePanel(true, form, submitting, pristine, values)} \r\n {person2ExpandablePanel(true, form, submitting, pristine, values)}\r\n \r\n )}\r\n \r\n\r\n \r\n {/* Buttons should be encapsulated in FormSpy - While close, we are refering to values and form */}\r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => actionButton(form, submitting, pristine, values)}\r\n \r\n
\r\n {/* {printJson(values)} */}\r\n
\r\n )}\r\n />\r\n
\r\n );\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\n// function printJson(values: any) {\r\n// if (values) {\r\n// return (\r\n// <>\r\n//
\r\n//                     {JSON.stringify(values, undefined, 2)}\r\n//                 
\r\n// \r\n// );\r\n// } else {\r\n// return (\r\n// <>\r\n// \r\n// {/* tslint:disable-next-line: no-shadowed-variable */}\r\n// {({ values }) => (\r\n//
\r\n//                             {JSON.stringify(values, undefined, 2)}\r\n//                             {/*  */}\r\n//                         
\r\n// )}\r\n//
\r\n// \r\n// );\r\n// }\r\n// }\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useEffect, useState } from 'react';\r\nimport {\r\n makeStyles,\r\n Theme,\r\n createStyles,\r\n Grid,\r\n TextField,\r\n} from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { mainTheme } from '../../Theme';\r\nimport { Field, Form, FormSpy } from 'react-final-form';\r\nimport { FormApi } from 'final-form';\r\n// import DialogBox from '../../Dashboard/Component/DialogBox';\r\nimport DialogBox from '../../Dashboard/Component/DialogBox';\r\nimport gql from 'graphql-tag';\r\nimport { EmailTemplateTypeEnum } from '../../emailTemplatesConfiguration/EmailTemplateRespository';\r\nimport { RvLoader } from '../../components/Loader';\r\n// import { Editor } from '@tinymce/tinymce-react';\r\nimport { EditorWrapper } from '../../components/Editor';\r\nimport { DropzoneArea } from 'material-ui-dropzone';\r\nimport { DocumentFile } from '../../types/DocumentFile';\r\nimport { useMutation, useQuery } from 'react-apollo';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\nimport { EntityTypeEnum } from '../selectors/UserStaffAndTeamAutoCompleteSelector';\r\nimport { AppUser, AppUserData, CreateMeetingBookingTaskMutation, fetchAppUserData } from '../EnquirySummaryRepository';\r\nimport { showNotification } from '../../App';\r\nimport { useApplicationSettings } from '../../applicationSettings/ApplicationSettingsRepository';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n },\r\n textField: {\r\n width: '100%',\r\n },\r\n commendField: {\r\n width: '100%',\r\n },\r\n dialogTitle: {\r\n color: mainTheme.TemplateColor.Primary,\r\n },\r\n dropzone: {\r\n paddingTop: 10,\r\n paddingBottom: 10,\r\n },\r\n matterLabel: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n },\r\n hideDate: {\r\n display: 'none'\r\n },\r\n divider: {\r\n width: '100%',\r\n },\r\n radioIcon: {\r\n color: mainTheme.BrandColors.TemplatePrimary\r\n },\r\n radioGroup: {\r\n flexFlow: 'row wrap',\r\n justifyContent: 'center',\r\n },\r\n selector: {\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'flex-end'\r\n },\r\n dropZoneFont: { \r\n minHeight: 0,\r\n '& .MuiDropzoneArea-text': {\r\n fontSize: '1em',\r\n }\r\n },\r\n dropZone: {\r\n minHeight: 'fit-content !important' ,\r\n '& .MuiDropzoneArea-root' : {\r\n minHeight: 'fit-content !important'\r\n }\r\n },\r\n })\r\n);\r\n\r\nexport enum ControlType {\r\n quill = 0,\r\n tinyMce = 1\r\n}\r\n\r\ninterface BookMeetingEmailDialogState {\r\n isFormChanged: boolean;\r\n showDiscard: boolean;\r\n controlType: ControlType;\r\n fileSizeLimit: number;\r\n}\r\n\r\nexport interface BookMeetingEmailDialogProps {\r\n followUpAction: string;\r\n followUpActionSystemName: string;\r\n isSendConfirmation: boolean;\r\n enquiryGuid: string;\r\n emailTemplateGuid?: string;\r\n toAddresses: string | null;\r\n fromAddress: string | null;\r\n // emailType: EmailTemplateTypeEnum;\r\n onClose?: () => void;\r\n open: boolean;\r\n // tslint:disable-next-line: no-any\r\n staff: IAutoCompleteItem | any | null;\r\n officeLocation: string | null;\r\n timezone: string | null;\r\n startTime: Date | null;\r\n endTime: Date | null;\r\n isAllDay: boolean;\r\n feeApplicable: number | null;\r\n meetingNotes: string | null;\r\n assignedTo: string | null;\r\n}\r\n\r\ninterface BookMeetingEmailForm extends Omit {\r\n files: DocumentFile[];\r\n}\r\n\r\n// tslint:disable-next-line: no-anyW\r\nexport const BookMeetingEmailDialog: React.FC = ( props ) => {\r\n const classes = useStyles();\r\n\r\n const applicationSettingsQuery = useApplicationSettings();\r\n \r\n const [state, setState] = useState({\r\n showDiscard: false,\r\n isFormChanged: false,\r\n controlType: ControlType.quill,\r\n fileSizeLimit: 0\r\n });\r\n \r\n useEffect(() => {\r\n if (!applicationSettingsQuery.loading && !applicationSettingsQuery.error && applicationSettingsQuery.data) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n fileSizeLimit: applicationSettingsQuery.data?.settings.applications.systemOptions.config.emailSizeLimit || 0\r\n }\r\n });\r\n }\r\n }, [applicationSettingsQuery.data, applicationSettingsQuery.loading, applicationSettingsQuery.error]);\r\n\r\n const emailType = props.staff\r\n ? props.staff.entityType === EntityTypeEnum.TEAM\r\n ? EmailTemplateTypeEnum.NEW_MEETING_NOTIFICATION\r\n : EmailTemplateTypeEnum.MEETING_BOOKING\r\n : EmailTemplateTypeEnum.MEETING_BOOKING;\r\n\r\n const bookMettingEmailTemplateQuery = useQuery(BookEmailTemplateQuery, {\r\n variables: {\r\n emailTemplateGuid: props.emailTemplateGuid ?? null,\r\n emailType: EmailTemplateTypeEnum[emailType],\r\n enquiryGuid: props.enquiryGuid,\r\n isMeetingAllDay: props.isAllDay,\r\n meetingLocation: props.officeLocation ?? undefined,\r\n meetingEnd: props.endTime ?? undefined,\r\n meetingStart: props.startTime ?? undefined,\r\n meetingNotes: props.meetingNotes ?? undefined,\r\n meetingTimezone: props.timezone ?? undefined,\r\n meetingFeeApplicable: props.feeApplicable ?? undefined,\r\n isMeetingAssignedToTeam: props.staff.entityType === EntityTypeEnum.TEAM,\r\n meetingStaffEmail: props.staff.entityType === EntityTypeEnum.STAFF ? props.staff.emailAddress : undefined,\r\n meetingStaffGuid: props.staff.value,\r\n meetingStaffName: props.staff.label,\r\n\r\n }\r\n });\r\n\r\n const [appUser, setAppUser] = useState();\r\n\r\n const fetchAppUserOnEffect = () => {\r\n fetchAppUserData(\r\n false,\r\n (data: AppUserData) => {\r\n handleAppUserFetch(data);\r\n },\r\n (reason) => {\r\n showNotification('Failed to Fetch App User Settings', reason, 'error');\r\n },\r\n );\r\n };\r\n\r\n const handleAppUserFetch = (data?: AppUserData) => {\r\n if (data !== null && data?.appUser !== undefined && data.appUser.isAdministrator !== undefined) {\r\n setAppUser((prevAppUser) => {\r\n // Object.assign would also work\r\n return {\r\n ...prevAppUser,\r\n userId: data.appUser.userId,\r\n name: data.appUser.name,\r\n isAdministrator: data.appUser.isAdministrator,\r\n userName: data.appUser.userName,\r\n };\r\n });\r\n }\r\n };\r\n\r\n const [createMeetingBooking, createMeetingBookingResult] = useMutation(CreateMeetingBookingTaskMutation);\r\n\r\n useEffect(() => {\r\n if (createMeetingBookingResult.loading) {\r\n showNotification(null, 'Successfully submitted', 'info'); \r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n }\r\n if (createMeetingBookingResult.error) {\r\n showNotification('Failed to send email', createMeetingBookingResult.error.message, 'error'); \r\n }\r\n fetchAppUserOnEffect();\r\n }, [createMeetingBookingResult.called, createMeetingBookingResult.loading, createMeetingBookingResult.data, createMeetingBookingResult.error]);\r\n\r\n const onSubmit = (values: BookMeetingEmailForm) => {\r\n // code here\r\n\r\n createMeetingBooking({\r\n variables: {\r\n input: {\r\n enquiryGuid: props.enquiryGuid,\r\n assignedTo: props.assignedTo, // props.staff.value,\r\n followUpAction: props.followUpAction,\r\n followUpActionSystemName: props.followUpActionSystemName,\r\n startDate: props.startTime,\r\n endDate: props.endTime,\r\n isAllDay: props.isAllDay,\r\n location: props.officeLocation ? props.officeLocation : null,\r\n feeApplicable: props.feeApplicable ? props.feeApplicable : null,\r\n sendConfirmation: props.isSendConfirmation,\r\n staff: props.staff ? props.staff!.value : null,\r\n staffEntityType: props.staff ? props.staff.entityType : null,\r\n meetingNotes: props.meetingNotes ? props.meetingNotes : null,\r\n timezone: props.timezone ? props.timezone : null,\r\n emailContent: values.emailContent,\r\n emailSubject: values.emailSubject,\r\n fromEmailAddress: values.fromAddress,\r\n toEmailAddresses: values.toAddresses,\r\n ccEmailAddresses: values.ccAddresses,\r\n files: GetFiles(values.files)\r\n }\r\n }\r\n });\r\n };\r\n\r\n const GetFiles = (files: DocumentFile[]) => {\r\n return files.map((document: DocumentFile) => {\r\n return {\r\n file: document.file,\r\n name: document.name,\r\n guidID: document.guidID,\r\n status: document.status\r\n };\r\n });\r\n };\r\n\r\n const onFollowUpClosed = () => {\r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onFormValueChanged = (form: FormApi, changeProps: any) => {\r\n if (!changeProps.pristine) {\r\n form.change('isFormChanged', true);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isFormChanged: true\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n if (state.isFormChanged) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: true\r\n };\r\n });\r\n } else {\r\n onFollowUpClosed();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onDiscardChanges = (agree: boolean) => {\r\n if (agree) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: false\r\n };\r\n });\r\n\r\n onFollowUpClosed();\r\n \r\n } else {\r\n // showDiscard false\r\n // form.change('showDiscard', false);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: false\r\n };\r\n });\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const required = (value: any) => {\r\n return value ? undefined : 'Required';\r\n };\r\n\r\n const displayLoader = () => {\r\n return (\r\n onClose()}\r\n className={classes.root}\r\n fullWidth={true}\r\n maxWidth=\"md\"\r\n >\r\n \r\n Book Meeting Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const EmailValidateWithRequiredNew = (value: any) => {\r\n let error: string = '';\r\n\r\n if (value === undefined || value === null) {\r\n return value ? '' : 'Email is required';\r\n } else if (value.length === 0) {\r\n return value ? '' : 'Email is required'; \r\n } else {\r\n\r\n const emails = value.split(';').map((email: string) => email.trim());\r\n\r\n for (let i = 0; i < emails.length; i++) {\r\n const email = emails[i];\r\n const isValid = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(email);\r\n \r\n if (!isValid) {\r\n error = 'Email is not valid';\r\n }\r\n }\r\n }\r\n return error;\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const EmailValidate = (value: any) => {\r\n let error: string = '';\r\n\r\n if (value !== undefined && value !== null) {\r\n const emails = value.split(';').map((email: string) => email.trim());\r\n\r\n for (let i = 0; i < emails.length; i++) {\r\n const email: string = emails[i];\r\n\r\n if (email.length > 0) {\r\n const isValid = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i.test(email);\r\n if (!isValid) {\r\n error = 'Email is not valid';\r\n }\r\n }\r\n }\r\n }\r\n\r\n return error;\r\n };\r\n\r\n return (\r\n \r\n {\r\n bookMettingEmailTemplateQuery.loading || applicationSettingsQuery.loading\r\n ? displayLoader()\r\n : (\r\n true}\r\n subscription={{submitting: true, pristine: true}}\r\n validate={(values: BookMeetingEmailForm) => {\r\n let errors = {\r\n fromAddress: '',\r\n toAddresses: '',\r\n ccAddresses: ''\r\n };\r\n\r\n if ((!values.fromAddress) \r\n && (!values.toAddresses)) {\r\n errors.fromAddress = 'From email address is required';\r\n errors.toAddresses = 'To email address is required';\r\n } else if (values\r\n && (values.fromAddress && values.fromAddress.length === 0)\r\n && (values.toAddresses && values.toAddresses.length === 0)) {\r\n errors.fromAddress = 'From email address is required';\r\n errors.toAddresses = 'To email address is required';\r\n } else if (\r\n (values.fromAddress !== undefined && values.fromAddress !== null \r\n && values.fromAddress.length > 0) \r\n || (values.toAddresses !== undefined && values.toAddresses !== null \r\n && values.toAddresses.length > 0) \r\n || (values.ccAddresses !== undefined && values.ccAddresses !== null \r\n && values.ccAddresses.length > 0) \r\n ) {\r\n errors.fromAddress = EmailValidateWithRequiredNew(values.fromAddress);\r\n errors.toAddresses = EmailValidateWithRequiredNew(values.toAddresses);\r\n errors.ccAddresses = EmailValidate(values.ccAddresses);\r\n }\r\n \r\n if (errors.fromAddress === '' && errors.toAddresses === '' && errors.ccAddresses === '') {\r\n return undefined;\r\n }\r\n\r\n return errors;\r\n }}\r\n render={({handleSubmit, form, submitting, pristine, values}) => (\r\n
handleSubmit(event)} id=\"sendEmailDialog\" autoComplete=\"off\">\r\n {displayLoader()}\r\n {\r\n onFormValueChanged(form, props);\r\n }}\r\n /> \r\n \r\n \r\n onClose()}\r\n className={classes.root}\r\n fullWidth={true}\r\n maxWidth=\"md\"\r\n disableEnforceFocus={true}\r\n >\r\n \r\n Book Meeting Email\r\n \r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n <>\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(content);\r\n // setState((prevState) => {\r\n // return {\r\n // ...prevState,\r\n // emailContent: content\r\n // };\r\n // });\r\n }}\r\n />\r\n )}\r\n \r\n {/* )} */}\r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n {\r\n let existingFiles: DocumentFile[] = [...input.value];\r\n const newFiles = files.filter((file: File) => {\r\n return !existingFiles.some((item: DocumentFile) => {\r\n return item.name === file.name && item.status !== 2;\r\n });\r\n });\r\n if (newFiles && newFiles.length > 0) {\r\n newFiles.forEach((file: File) => {\r\n const documentFile: DocumentFile = {\r\n guidID: null,\r\n file: file,\r\n status: 1,\r\n name: file.name,\r\n url: ''\r\n };\r\n existingFiles.push(documentFile);\r\n }); \r\n input.onChange(existingFiles);\r\n }\r\n }}\r\n onDelete={(file: File) => {\r\n let existingFiles: DocumentFile[] = [...input.value];\r\n // eslint-disable-next-line array-callback-return\r\n existingFiles.map((item: DocumentFile) => {\r\n if (file.name === item.name) {\r\n item.file = file;\r\n item.status = 2; // deleted\r\n }\r\n }); \r\n // tslint:disable-next-line: max-line-length\r\n const filteredFiles = existingFiles.filter((item: DocumentFile) => {\r\n return item.status !== 2 || item.guidID !== null;\r\n });\r\n input.onChange(filteredFiles);\r\n }} \r\n // tslint:disable-next-line\r\n onDrop={(files: File[], event: any) => {\r\n // let existingFiles: DocumentFile[] = [...input.value];\r\n // tslint:disable-next-line: max-line-length\r\n // const existingFile = existingFiles.find((item: DocumentFile) => item.name === file)\r\n // tslint:disable-next-line:no-console\r\n console.log(event);\r\n }} \r\n initialFiles={input.value && input.value.map((file: { url: string; }) => file.url)}\r\n />\r\n )}\r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n {/* {printJson(values)} */}\r\n \r\n \r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values, pristine }) => (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n )}\r\n />\r\n )\r\n }\r\n
\r\n );\r\n};\r\n\r\ninterface BookEmailTemplateQueryParams {\r\n emailType?: string;\r\n emailTemplateGuid: string | null;\r\n enquiryGuid?: string;\r\n isMeetingAssignedToTeam?: boolean;\r\n meetingStaffGuid?: string;\r\n meetingStaffName?: string;\r\n meetingStaffEmail?: string;\r\n meetingLocation?: string;\r\n meetingTimezone?: string;\r\n meetingStart?: Date;\r\n meetingEnd?: Date;\r\n isMeetingAllDay?: boolean;\r\n meetingNotes?: string;\r\n meetingFeeApplicable?: number;\r\n}\r\n\r\nexport interface BookEmailTemplateQueryData {\r\n templates: Templates;\r\n}\r\n\r\nexport interface Templates {\r\n emailDetail: EmailDetail;\r\n}\r\n\r\nexport interface EmailDetail {\r\n id: number;\r\n fromAddress: string | null;\r\n toAddresses: string | null;\r\n ccAddresses: string | null;\r\n emailType: number;\r\n emailStyle: number;\r\n emailSubject: string | null;\r\n emailContent: string | null;\r\n}\r\n\r\nconst BookEmailTemplateQuery = gql`\r\n query templateWithEmailBodyForEnquiry(\r\n $emailType: EmailType, \r\n $emailTemplateGuid: String, \r\n $enquiryGuid: String,\r\n $isMeetingAssignedToTeam: Boolean,\r\n $meetingStaffGuid: String,\r\n $meetingStaffName: String,\r\n $meetingStaffEmail: String,\r\n $meetingLocation: String,\r\n $meetingTimezone: String,\r\n $meetingStart: DateTime,\r\n $meetingEnd: DateTime,\r\n $isMeetingAllDay: Boolean,\r\n $meetingNotes: String,\r\n $meetingFeeApplicable: Decimal\r\n ) {\r\n templates {\r\n emailDetail(\r\n emailType: $emailType,\r\n emailTemplateGuid: $emailTemplateGuid, \r\n enquiryGuid: $enquiryGuid,\r\n isMeetingAssignedToTeam: $isMeetingAssignedToTeam,\r\n meetingStaffGuid: $meetingStaffGuid,\r\n meetingStaffName: $meetingStaffName,\r\n meetingStaffEmail: $meetingStaffEmail,\r\n meetingLocation: $meetingLocation,\r\n meetingTimezone: $meetingTimezone,\r\n meetingStart: $meetingStart,\r\n meetingEnd: $meetingEnd,\r\n isMeetingAllDay: $isMeetingAllDay,\r\n meetingNotes: $meetingNotes,\r\n meetingFeeApplicable: $meetingFeeApplicable\r\n ) {\r\n id\r\n fromAddress\r\n toAddresses\r\n ccAddresses\r\n emailType\r\n emailStyle\r\n emailSubject\r\n emailContent\r\n }\r\n }\r\n }\r\n`;","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { makeStyles, Theme, createStyles, Grid } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\nimport { mainTheme } from '../../Theme';\r\nimport { Form, Field, FormSpy } from 'react-final-form';\r\nimport { FormApi } from 'final-form';\r\nimport { \r\n CompleteCreateClientMutation,\r\n EnquiryDetailsQueryParams,\r\n retrieveEnquiryDetailsData,\r\n} from '../EnquirySummaryRepository';\r\nimport { RvLoader } from '../../components/Loader';\r\nimport { EnquiryData } from '../models/Enquiry';\r\nimport DialogBox from '../../Dashboard/Component/DialogBox';\r\nimport { showNotification } from '../../App';\r\nimport { client } from '../..';\r\n// import OpenInNewIcon from '@material-ui/icons/OpenInNew';\r\n// import { useHistory } from 'react-router-dom';\r\nimport { MatterAutoCompleteSelector } from '../../components/MatterAutoCompleteSelector';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n\r\n },\r\n textField: {\r\n width: '100%',\r\n flex: 1,\r\n maxWidth: 'auto'\r\n },\r\n dialogTitle: {\r\n color: mainTheme.TemplateColor.Primary,\r\n '& .MuiTypography-root': {\r\n display: 'flex',\r\n margin: '0 -10px',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n '& .col': {\r\n padding: '0 10px',\r\n fontSize: '12px',\r\n color: '#000',\r\n }\r\n }\r\n },\r\n divider: {\r\n width: '100%',\r\n },\r\n customFieldGrid: {\r\n // paddingTop: '0px !important',\r\n },\r\n matterSelectorWrapper: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flex: 1,\r\n width: '100%',\r\n }\r\n })\r\n);\r\n\r\nexport interface MarkClientAndMatterCreated {\r\n // tslint:disable-next-line: no-any\r\n matter: IAutoCompleteItem | null | any;\r\n}\r\n\r\ninterface MarkClientAndMatterCreatedDialogProps {\r\n guid?: string;\r\n onDialogClose?: () => void;\r\n canCreateMatter?: boolean;\r\n isStandAlone?: boolean;\r\n}\r\n\r\ninterface MarkClientAndMatterCreatedDialogState {\r\n isFormChanged: boolean;\r\n showDiscard: boolean;\r\n}\r\n\r\n// tslint:disable-next-line: no-anyW\r\nexport const MarkClientAndMatterCreatedDialog: React.FunctionComponent = props => {\r\n const classes = useStyles();\r\n // tslint:disable-next-line: no-any\r\n // const { isFollowUpOpen, onFollowUpClose }: any = useContext(EnquirySummaryContext);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n // const history = useHistory(); \r\n\r\n const [formState, setFormState] = useState({\r\n matter: null\r\n });\r\n\r\n const [state, setState] = useState({\r\n showDiscard: false,\r\n isFormChanged: false,\r\n });\r\n\r\n useEffect(() => {\r\n // - Ran only once\r\n // If we recieve a guid, then fetch EnquiryDetails\r\n if (props.guid) {\r\n fetchEnquiryDetails(props.guid);\r\n }\r\n // tslint:disable-next-line: align\r\n }, [props.guid]); \r\n\r\n const displayLoader = () => {\r\n if (isLoading) {\r\n return ;\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n const fetchEnquiryDetails = (guid: string) => {\r\n var enquiryQueryParams: EnquiryDetailsQueryParams = {\r\n guid: guid,\r\n };\r\n\r\n retrieveEnquiryDetailsData(\r\n enquiryQueryParams,\r\n true,\r\n (data) => onDataRetrieved(data),\r\n // tslint:disable-next-line\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n setIsLoading(false);\r\n }\r\n );\r\n };\r\n\r\n const onDataRetrieved = (data: EnquiryData) => {\r\n setFormState((prevState) => {\r\n const tempMatter = data.enquiry.detail;\r\n\r\n return {\r\n ...prevState,\r\n matter: tempMatter.matterId ? {\r\n label: tempMatter.matterFileNumber + ' (' + tempMatter.matterTitle + ')',\r\n value: '' + tempMatter.matterGuid, \r\n fileNumber: tempMatter.matterFileNumber,\r\n title: tempMatter.matterTitle,\r\n } : null\r\n };\r\n });\r\n\r\n setIsLoading(false);\r\n\r\n };\r\n\r\n const actionButton = (\r\n // tslint:disable-next-line: no-any\r\n form: FormApi,\r\n submitting: boolean,\r\n pristine: boolean,\r\n // tslint:disable-next-line: no-any\r\n values: any\r\n ) => {\r\n return (\r\n
\r\n \r\n Save\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n const onSubmit = (values: MarkClientAndMatterCreated) => {\r\n setIsSubmitting(true);\r\n client.mutate({\r\n mutation: CompleteCreateClientMutation,\r\n variables: { \r\n input: {\r\n enquiryGuid: props.guid,\r\n matterGuid: values.matter ? values.matter.value : null\r\n }\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info');\r\n onDialogClose();\r\n } else {\r\n showNotification('Complete Create Client Failed', results.data.error, 'error');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => {\r\n showNotification('Complete Create Client Failed', reason, 'error');\r\n });\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onFormValueChanged = (form: FormApi, changeProps: any) => {\r\n if (!changeProps.pristine) {\r\n form.change('isFormChanged', true);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isFormChanged: true\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n if (state.isFormChanged) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: true\r\n };\r\n });\r\n } else {\r\n onDialogClose();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onDiscardChanges = (agree: boolean) => {\r\n if (agree) {\r\n onDialogClose();\r\n } else {\r\n // showDiscard false\r\n // form.change('showDiscard', false);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: false\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onDialogClose = () => {\r\n if (props.onDialogClose) {\r\n props.onDialogClose();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n // const onShowMatterDetails = (values: any) => () => {\r\n\r\n // sessionStorage.setItem('typeOfView', 'noback');\r\n \r\n // const tempMatter = values.matter;\r\n\r\n // // code here...\r\n // var href = history.createHref({\r\n // pathname: '/matterDetail/' + tempMatter.id,\r\n // key: 'matterManagement',\r\n // state: {\r\n // matterManagementState: 'false',\r\n // }\r\n // });\r\n\r\n // window.open(href, '_blank');\r\n // };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isLoading\r\n ? displayLoader()\r\n : (\r\n true}\r\n // keepDirtyOnReinitialize={true}\r\n subscription={{ submitting: true, pristine: true, values: true }}\r\n render={({handleSubmit, form, submitting, pristine, values\r\n }) => (\r\n
\r\n {displayLoader()}\r\n {\r\n onFormValueChanged(form, props);\r\n }}\r\n />\r\n \r\n
{`Mark as ${props.canCreateMatter ? 'Matter' : 'Client'} Created`}
\r\n
\r\n\r\n {!props.isStandAlone && (\r\n \r\n \r\n \r\n
\r\n \r\n {({ input, meta }) => (\r\n {\r\n input.onChange(selection);\r\n }}\r\n value={input.value ? input.value : null}\r\n error={meta.error && meta.touched}\r\n helperText={\r\n meta.error &&\r\n meta.touched\r\n ? meta.error\r\n : 'Select Matter if applicable otherwise save'\r\n }\r\n className={classes.textField}\r\n rootClassName={classes.textField}\r\n disablePortal={false}\r\n textLimit={{\r\n description: 50,\r\n title: 50\r\n }}\r\n />\r\n )}\r\n \r\n {/* \r\n \r\n */}\r\n
\r\n
\r\n
\r\n {/* {printJson(values)} */}\r\n
\r\n )}\r\n \r\n {actionButton(form, submitting, pristine, values)}\r\n \r\n \r\n )}\r\n />\r\n )\r\n }\r\n \r\n \r\n );\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\nexport function printJson(values: any) {\r\n if (values) {\r\n return (\r\n <>\r\n
\r\n                    {JSON.stringify(values, undefined, 2)}\r\n                
\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n \r\n {/* tslint:disable-next-line: no-shadowed-variable */}\r\n {({ values }) => (\r\n
\r\n                            {JSON.stringify(values, undefined, 2)}\r\n                            {/*  */}\r\n                        
\r\n )}\r\n
\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\r\n// tslint:disable-next-line: max-line-length\r\nimport { Dialog, DialogContent, Button, DialogActions, Typography, IconButton, Stepper, Step, StepLabel, RadioGroup, FormControl, FormControlLabel, Radio, TextField, CircularProgress } from '@material-ui/core';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { mainTheme } from '../../Theme';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport { EnquiryAutocompleteSelector } from '../selectors/EnquiryAutocompleteSelector';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\nimport gql from 'graphql-tag';\r\nimport { useMutation } from 'react-apollo';\r\nimport { showNotification } from '../../App';\r\nimport { client } from '../..';\r\n// import { client } from '../..';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n \r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n heading: {\r\n color: mainTheme.BrandColors.TemplatePrimary,\r\n flex: 1,\r\n textAlign: 'center'\r\n },\r\n loadingWrapper: {\r\n\r\n },\r\n button: {},\r\n stepContent: {\r\n padding: '20px 0'\r\n },\r\n stepInnerContent: {\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center'\r\n },\r\n contentDescription: {\r\n textAlign: 'center',\r\n marginBottom: '10px'\r\n },\r\n waringDescription: {\r\n textAlign: 'center',\r\n color: 'red',\r\n marginBottom: '10px'\r\n },\r\n enquiryName: {\r\n textAlign: 'center',\r\n marginBottom: '10px',\r\n fontWeight: 700\r\n },\r\n finishIcon: {\r\n marginBottom: '30px',\r\n width: 75,\r\n height: 75,\r\n },\r\n formControlLabel: {\r\n marginBottom: '10px'\r\n },\r\n enquirySelector: {\r\n minWidth: '350px'\r\n },\r\n scrubDescription: {\r\n fontSize: '32px',\r\n fontWeight: 600,\r\n marginBottom: '20px'\r\n }\r\n })\r\n);\r\n\r\ninterface ScrubEnquiryDataDialogProps {\r\n open: boolean;\r\n onClose?: () => void;\r\n}\r\n\r\nexport enum SrcubOptionsEnum {\r\n longerThanSixMonth = 0,\r\n selectFromEnquiry\r\n}\r\n\r\ninterface ScrubEnquiryDataDialogState {\r\n options: SrcubOptionsEnum;\r\n isScrubSubmitLoading: boolean;\r\n selectedEnquiries: IAutoCompleteItem[] | null;\r\n isComplete: boolean;\r\n message: string;\r\n enquiriesScrubbed: number;\r\n totalEnquiries: number;\r\n}\r\n\r\nexport const ScrubEnquiryDataDialog: React.FC = props => {\r\n \r\n const classes = useStyles();\r\n\r\n const steps = ['Scrub Options', 'Selected Scrub', 'Finished'];\r\n\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const [scrubData, setScrubData] = React.useState('');\r\n\r\n const [state, setState] = React.useState({\r\n options: SrcubOptionsEnum.longerThanSixMonth,\r\n isScrubSubmitLoading: false,\r\n selectedEnquiries: [],\r\n isComplete: false,\r\n message: 'Enquiry Scrubbing In Progress',\r\n enquiriesScrubbed: 0,\r\n totalEnquiries: 0\r\n });\r\n\r\n const [scrubEnquiryDataMutation] = useMutation(SCRUB_ENQUIRY_DATA_MUTATION);\r\n\r\n // tslint:disable-next-line: max-line-length\r\n const [scrubEnquiryDataByEnquiryMutation] = useMutation(SCRUB_ENQUIRY_DATA_BY_ENQUIRY_MUTATION);\r\n\r\n const enquiryScrubbingInProgressNotificationSubscription = () => {\r\n return (\r\n // let subscription =\r\n client.subscribe({\r\n fetchPolicy: 'no-cache',\r\n query: ENQUIRY_SCRUBBING_INPROGRESS_NOTIFICATION,\r\n variables: {},\r\n })\r\n .subscribe({\r\n // tslint:disable-next-line:no-any\r\n next(results: any) {\r\n\r\n const tempNotification = results.data.enquiryScrubbingInProgressNotification;\r\n\r\n // showNotification('Success', tempNotification.message, 'info');\r\n\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n message: tempNotification.message,\r\n enquiriesScrubbed: tempNotification.enquiriesScrubbed,\r\n totalEnquiries: tempNotification.totalEnquiries,\r\n };\r\n });\r\n },\r\n // tslint:disable-next-line:no-any\r\n error(err: any) {\r\n // tslint:disable-next-line:no-console\r\n console.error(err);\r\n showNotification(null, err, 'error');\r\n },\r\n })\r\n );\r\n };\r\n\r\n const enquiryScrubbingCompleteNotificationSubscription = () => {\r\n return (\r\n // let subscription =\r\n client.subscribe({\r\n fetchPolicy: 'no-cache',\r\n query: ENQUIRY_SCRUBBING_COMPLETE_NOTIFICATION,\r\n variables: {},\r\n })\r\n .subscribe({\r\n // tslint:disable-next-line:no-any\r\n next(results: any) {\r\n\r\n const tempNotification = results.data.enquiryScrubbingCompleteNotification;\r\n\r\n if (results.data.enquiryScrubbingCompleteNotification.isComplete) {\r\n showNotification('Success', tempNotification.message, 'info');\r\n } else {\r\n showNotification('Failed', tempNotification.message, 'error');\r\n }\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n message: tempNotification.message,\r\n isComplete: tempNotification.isComplete,\r\n isScrubSubmitLoading: false,\r\n selectedEnquiries: []\r\n };\r\n });\r\n\r\n setScrubData('');\r\n \r\n // indicate that the scrubbing is complete\r\n setActiveStep(2);\r\n },\r\n // tslint:disable-next-line:no-any\r\n error(err: any) {\r\n // tslint:disable-next-line:no-console\r\n console.error(err);\r\n showNotification(null, err, 'error');\r\n },\r\n })\r\n );\r\n };\r\n\r\n React.useEffect(() => {\r\n const enquiryScrubbingInProgressNotificationSubscriptionObj = enquiryScrubbingInProgressNotificationSubscription();\r\n const enquiryScrubbingCompleteNotificationSubscriptionObj = enquiryScrubbingCompleteNotificationSubscription();\r\n return () => {\r\n enquiryScrubbingInProgressNotificationSubscriptionObj.unsubscribe();\r\n enquiryScrubbingCompleteNotificationSubscriptionObj.unsubscribe();\r\n };\r\n // tslint:disable-next-line: align\r\n }, []);\r\n \r\n const onClose = () => {\r\n if (props.onClose) {\r\n props.onClose();\r\n }\r\n };\r\n\r\n const handleNext = () => {\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n };\r\n\r\n const handleConfirm = () => {\r\n\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isScrubSubmitLoading: true\r\n };\r\n });\r\n\r\n if (state.options === SrcubOptionsEnum.longerThanSixMonth) {\r\n scrubEnquiryDataMutation()\r\n .then((result: { data: ScrubEnquiryMutationData}) => {\r\n if (result.data.scrubEnquiryData.status) {\r\n showNotification(null, 'Scrub enqury successfully submitted.', 'info');\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n }\r\n })\r\n // tslint:disable-next-line: no-any\r\n .catch((reason: any) => {\r\n showNotification(null, reason, 'error');\r\n });\r\n } else {\r\n scrubEnquiryDataByEnquiryMutation({\r\n variables: {\r\n // tslint:disable-next-line: max-line-length\r\n guids: state.selectedEnquiries && state.selectedEnquiries.length > 0 ? state.selectedEnquiries.map((selectedEnquiry: IAutoCompleteItem) => selectedEnquiry.value).join(',') : ''\r\n }\r\n })\r\n .then((result: { data: ScrubEnquiryByEnquiryMutationData}) => {\r\n if (result.data.scrubEnquiryDataByEnquiry.status) {\r\n showNotification(null, 'Scrub enqury successfully submitted.', 'info');\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n }\r\n })\r\n // tslint:disable-next-line: no-any\r\n .catch(function (reason: any) {\r\n showNotification(null, reason, 'error');\r\n });\r\n }\r\n };\r\n \r\n const handleBack = () => {\r\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n };\r\n\r\n const handleScrubMore = () => {\r\n setActiveStep(0);\r\n setScrubData('');\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isScrubSubmitLoading: false,\r\n selectedEnquiries: [],\r\n isComplete: false,\r\n message: 'Enquiry Scrubbing In Progress',\r\n enquiriesScrubbed: 0,\r\n totalEnquiries: 0\r\n };\r\n });\r\n };\r\n\r\n const handleChange = (event: React.ChangeEvent) => {\r\n\r\n setState((prevSate) => {\r\n return {\r\n ...prevSate,\r\n // tslint:disable-next-line: no-any\r\n options: SrcubOptionsEnum[SrcubOptionsEnum[(event.target as HTMLInputElement).value as any]]\r\n };\r\n });\r\n };\r\n\r\n const onChangeTextField = (name: string) => (event: React.ChangeEvent) => {\r\n setScrubData(event.target.value);\r\n };\r\n\r\n const onSelectEnquiry = (value: IAutoCompleteItem[], name: string) => {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n selectedEnquiries: value,\r\n totalEnquiries: value.length\r\n };\r\n });\r\n };\r\n\r\n const scrubOptionsSteps = () => {\r\n return (\r\n
\r\n \r\n This function with remove personal data relating to new enquiries\r\n \r\n \r\n \r\n }\r\n label=\"That have been added to the database longer than 6 months, are no longer active, have not become a client and have not provided consent for marketing\" \r\n className={classes.formControlLabel}\r\n />\r\n } \r\n label={\r\n \r\n } \r\n className={classes.formControlLabel}\r\n />\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n const scrubSelectedSteps = () => {\r\n\r\n if (state.options === SrcubOptionsEnum.longerThanSixMonth) {\r\n return (\r\n
\r\n \r\n That have been added to the database longer than 6 months, are no longer active, have not become a client and have not provided consent for marketing\r\n \r\n \r\n Continuing will remove data from the system - it is NOT REVERSIBLE\r\n \r\n \r\n To proceed enter SCRUB DATA in the text box below and select OK\r\n \r\n \r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n This function with remove personal data relating to new enquiry\r\n \r\n \r\n {state.selectedEnquiries ? state.selectedEnquiries.map((enquiry: IAutoCompleteItem) => enquiry.label).join(', ') : ''}\r\n \r\n \r\n Continuing will remove data from the system - it is NOT REVERSIBLE\r\n \r\n \r\n To proceed enter SCRUB DATA in the text box below and select OK\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n const finishSteps = () => {\r\n\r\n if (state.isScrubSubmitLoading) {\r\n return (\r\n
\r\n \r\n {state.totalEnquiries !== 0 && (\r\n \r\n {`${state.enquiriesScrubbed}/${state.totalEnquiries}`}\r\n \r\n )}\r\n \r\n {state.message}\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n {state.message}\r\n \r\n
\r\n );\r\n };\r\n\r\n const stepsContent = () => {\r\n switch (activeStep) {\r\n case 0: \r\n return scrubOptionsSteps();\r\n case 1:\r\n return scrubSelectedSteps();\r\n case 2:\r\n return finishSteps();\r\n default:\r\n return scrubOptionsSteps();\r\n }\r\n };\r\n \r\n return (\r\n \r\n \r\n SCRUB ENQUIRY DATA\r\n \r\n \r\n \r\n \r\n \r\n \r\n {steps.map((label) => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n {stepsContent()}\r\n
\r\n
\r\n \r\n {activeStep !== 2 && (\r\n \r\n )}\r\n {activeStep === 2 && (\r\n \r\n )}\r\n {activeStep === 0 && (\r\n \r\n Next\r\n \r\n )} \r\n {activeStep === 1 && (\r\n \r\n Confirm\r\n \r\n )}\r\n {activeStep === 2 && (\r\n \r\n Close\r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport interface ScrubEnquiryMutationData {\r\n scrubEnquiryData: ScrubEnquiryData;\r\n}\r\n\r\nexport interface ScrubEnquiryData {\r\n status: boolean;\r\n}\r\n\r\nexport const SCRUB_ENQUIRY_DATA_MUTATION = gql`\r\n mutation ScrubEnquiryDataMutation{\r\n scrubEnquiryData{\r\n status\r\n }\r\n }\r\n`;\r\n\r\nexport interface ScrubEnquiryByEnquiryMutationParams {\r\n guids: string;\r\n}\r\n\r\nexport interface ScrubEnquiryByEnquiryMutationData {\r\n scrubEnquiryDataByEnquiry: ScrubEnquiryData;\r\n}\r\n\r\nexport interface ScrubEnquiryData {\r\n status: boolean;\r\n}\r\n\r\nexport const SCRUB_ENQUIRY_DATA_BY_ENQUIRY_MUTATION = gql`\r\n mutation ScrubEnquiryDataByEnquiryMutation($guids: String) {\r\n scrubEnquiryDataByEnquiry(enquiryGuids: $guids) {\r\n status\r\n }\r\n }\r\n`;\r\n\r\nexport const ENQUIRY_SCRUBBING_INPROGRESS_NOTIFICATION = gql`\r\n subscription {\r\n enquiryScrubbingInProgressNotification {\r\n description\r\n enquiriesScrubbed\r\n id\r\n message\r\n status\r\n totalEnquiries\r\n }\r\n }\r\n`;\r\n\r\nexport const ENQUIRY_SCRUBBING_COMPLETE_NOTIFICATION = gql`\r\n subscription {\r\n enquiryScrubbingCompleteNotification {\r\n description\r\n id\r\n isComplete\r\n message\r\n status\r\n }\r\n }\r\n`;","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { makeStyles, Theme, createStyles, Grid, TextField } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { IAutoCompleteItem } from '../../typings/autoComplete';\r\nimport { mainTheme } from '../../Theme';\r\nimport { Form, Field, FormSpy } from 'react-final-form';\r\nimport { FormApi } from 'final-form';\r\n// import { ActionTypeSelector } from '../selectors/ActionType';\r\n// import { OutcomeSelector } from '../selectors/OutcomeSelector';\r\nimport { client } from '../..';\r\nimport { showNotification } from '../../App';\r\nimport {\r\n FollowUpEnquiryMutation,\r\n EnquiryDetailsQueryParams,\r\n retrieveEnquiryDetailsData,\r\n EnquiryDefaultConfig,\r\n retrieveEnquiryDefaultSettings,\r\n EnquiryDefaultSettings\r\n} from '../EnquirySummaryRepository';\r\nimport moment from 'moment';\r\nimport { RvLoader } from '../../components/Loader';\r\nimport { EnquiryDetail, EnquiryData } from '../models/Enquiry';\r\nimport DialogBox from '../../Dashboard/Component/DialogBox';\r\nimport { addBusinessDays } from '../drawers/EnquiryFormDrawer';\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n // width: '100%',\r\n // show autocomplete when overlapping the dialog container\r\n // '& .MuiDialog-container > div': {\r\n // overflowY: 'visible'\r\n // },\r\n // '& .MuiDialogContent-root': {\r\n // overflowY: 'inherit'\r\n // }\r\n },\r\n textField: {\r\n width: '100%',\r\n flex: 1,\r\n },\r\n dialogTitle: {\r\n color: mainTheme.TemplateColor.Primary,\r\n '& .MuiTypography-root': {\r\n display: 'flex',\r\n margin: '0 -10px',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n '& .col': {\r\n padding: '0 10px',\r\n fontSize: '12px',\r\n color: '#000',\r\n }\r\n }\r\n },\r\n hideDate: {\r\n display: 'none'\r\n },\r\n startTimeWrapper: {\r\n display: 'flex',\r\n flex: 1,\r\n alignItems: 'center',\r\n },\r\n formControlLabel: {\r\n marginLeft: 0,\r\n marginRight: 0,\r\n },\r\n textFieldWrapper: {\r\n flex: 1,\r\n },\r\n staffWrapper: {\r\n fontSize: 16,\r\n color: mainTheme.TemplateColor.Primary,\r\n },\r\n divider: {\r\n width: '100%',\r\n },\r\n selector: {\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'flex-end'\r\n }\r\n })\r\n);\r\n\r\nexport interface FollowUp {\r\n guid?: string;\r\n followUpAction: string | null;\r\n followUpActionSystemName: string | null;\r\n followUpSystemAction: string | null;\r\n followUpDate: Date | null;\r\n followUpNotes: string;\r\n hasFollowUpNotesMentions: boolean;\r\n outcome: string | null;\r\n outcomeDate: Date | null;\r\n outcomeNotes: string | null;\r\n reason: string | null;\r\n reasonGuidID: string | null;\r\n isFormChanged: boolean;\r\n staff: IAutoCompleteItem | null;\r\n startTime: Date | null;\r\n endTime: Date | null;\r\n isAllDay: boolean;\r\n officeLocation: IAutoCompleteItem | null;\r\n feeApplicable: number | null;\r\n isSendConfirmation: boolean;\r\n meetingNotes: string | null;\r\n\r\n emailContent: string | null;\r\n emailSubject: string | null;\r\n fromEmailAddress: string | null;\r\n toEmailAddress: string | null;\r\n ccEmailAddress: string | null;\r\n\r\n emailTemplate: IAutoCompleteItem | null;\r\n\r\n followUpDueReminder: IAutoCompleteItem | null;\r\n\r\n updateFollowUpDueForInternalNote: boolean;\r\n}\r\n\r\ninterface MessageAssigneeDialogProps {\r\n guid?: string;\r\n onDialogClose?: () => void;\r\n}\r\n\r\ninterface MessageAssigneeDialogState {\r\n isFormChanged: boolean;\r\n showDiscard: boolean;\r\n isSendEmailDialogOpen: boolean;\r\n enquiryDefaultConfig?: EnquiryDefaultConfig;\r\n}\r\n\r\n// tslint:disable-next-line: no-anyW\r\nexport const MessageAssigneeDialog: React.FunctionComponent = props => {\r\n const classes = useStyles();\r\n // tslint:disable-next-line: no-any\r\n // const { isFollowUpOpen, onFollowUpClose }: any = useContext(EnquirySummaryContext);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const [enquiryDetails, setEnquiryDetails] = useState({\r\n guid: props.guid,\r\n createdDate: moment().toDate(),\r\n createdByName: '',\r\n lastUpdated: moment().toDate(),\r\n isClosed: false,\r\n isContactCreated: false,\r\n isMatterCreated: false,\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n gender: 'Unknown',\r\n initialEnquiryDate: moment().toDate(),\r\n phone: '',\r\n mobile: '',\r\n sourceGuidID: null,\r\n source: '',\r\n isSourceReferrer: false,\r\n officeGuidID: null,\r\n office: '',\r\n sourceNotes: '',\r\n\r\n organisation: '',\r\n positionAtOrganisation: '',\r\n\r\n areaOfLaw: '',\r\n practiceAreaGuidID: null,\r\n natureOfEnquiry: '',\r\n\r\n internalNotes: null,\r\n files: [],\r\n\r\n assignedTo: null,\r\n assignedToName: null, // Display Name\r\n assignedToEmailAddress: null,\r\n assignedBy: null,\r\n assignedByName: null, // Display Name\r\n assignedByEmailAddress: null,\r\n dateAssigned: moment().toDate(),\r\n followUpDueDate: null,\r\n assignmentReminderOffset: null,\r\n\r\n followUpActionGuidID: null,\r\n followUpAction: null,\r\n followUpActionSystemName: null,\r\n followUpSystemAction: null,\r\n followUpDate: null,\r\n outcomeGuidID: null,\r\n outcome: null,\r\n outcomeDate: null,\r\n outcomeNotes: '',\r\n reasonGuidID: null,\r\n reason: null,\r\n followUpNotes: null,\r\n isKeyOpportunity: false,\r\n referrerGuid: null,\r\n referrerName: null,\r\n nameGuid: null,\r\n nameTitle: null,\r\n organisationGuid: null,\r\n\r\n estimatedFees: null,\r\n isEstimatedFeesIncludesTax: false,\r\n estimatedDisbursements: null,\r\n isEstimatedDisbursementsIncludesTax: false,\r\n enquiryQuality: null,\r\n likelihoodToProceed: null,\r\n clientFirstName: null,\r\n clientLastName: null,\r\n dOB: null,\r\n isMarketingConsent: false,\r\n isTermsAndConditionsApproved: false,\r\n isPrivacyStatementProvided: false,\r\n isConflictCheckPerformed: false,\r\n isNoConflict: false,\r\n isIdentityCheckPerformed: false,\r\n addressName: null,\r\n floor: null,\r\n number: null,\r\n street: null,\r\n clientAddressStreet2: null,\r\n suburb: null,\r\n state: null,\r\n postcode: null,\r\n country: null,\r\n pOBox: null,\r\n postalSuburb: null,\r\n postalState: null,\r\n postalPostCode: null,\r\n postalCountry: null,\r\n\r\n referredToFirmGuid: null,\r\n referredToFirmName: '',\r\n notProceedingOutcomeNotes: null,\r\n\r\n // hasFollowUpNotesMentions: false\r\n clientRelationshipToEnquirer: null,\r\n\r\n matterId: null,\r\n matterGuid: null,\r\n matterTitle: null,\r\n matterFileNumber: null,\r\n\r\n assignedToIsStaff: false,\r\n assignedToStaffGuid: null,\r\n assignedToStaffName: null,\r\n\r\n otherPartyFirstName: null,\r\n otherPartyLastName: null,\r\n otherPartyNotes: null,\r\n otherPartyEmail: null,\r\n otherPartyPhone: null,\r\n otherPartyMobile: null,\r\n otherPartyOrganisation: null,\r\n\r\n enquiryNotes: null,\r\n\r\n pOBoxType: null,\r\n\r\n integrationContactId: null,\r\n integrationClientId: null,\r\n integrationOtherPartyId: null,\r\n integrationMatterId: null,\r\n integrationMatterDocumentId: null,\r\n otherPartyDOB: null,\r\n otherPartyAddressName: null,\r\n otherPartyFloor: null,\r\n otherPartyNumber: null,\r\n otherPartyStreet: null,\r\n otherPartyStreet2: null,\r\n otherPartySuburb: null,\r\n otherPartyState: null,\r\n otherPartyPostcode: null,\r\n otherPartyCountry: null,\r\n\r\n otherPartyPOBoxType: null,\r\n otherPartyPOBox: null,\r\n otherPartyPostalSuburb: null,\r\n otherPartyPostalState: null,\r\n otherPartyPostalPostCode: null,\r\n otherPartyPostalCountry: null,\r\n otherPartyNameGuid: null,\r\n otherPartyOrganisationGuid: null,\r\n isRiskAssessed: null,\r\n riskLevel: null,\r\n riskLevelGuid: null,\r\n riskNotes: null,\r\n\r\n secondClientFirstName: null,\r\n secondClientLastName: null,\r\n secondClientRelationshipToEnquirer: null,\r\n secondClientGender: null,\r\n secondClientSuburb: null,\r\n secondClientState: null,\r\n secondClientPostCode: null,\r\n secondClientIsMarketingConsent: false,\r\n secondClientIsTermsAndConditionsApproved: false,\r\n secondClientIsPrivacyStatementProvided: false,\r\n secondClientIsConflictCheckPerformed: false,\r\n secondClientIsIdentityCheckPerformed: false,\r\n secondClientIsNoConflict: false,\r\n secondClientCountry: null,\r\n secondClientAddressName: null,\r\n secondClientFloor: null,\r\n secondClientNumber: null,\r\n secondClientStreet1: null,\r\n secondClientStreet2: null,\r\n secondClientDOB: null,\r\n secondClientPOBoxType: null,\r\n secondClientPOBox: null,\r\n secondClientPostalSuburb: null,\r\n secondClientPostalState: null,\r\n secondClientPostalPostCode: null,\r\n secondClientPostalCountry: null,\r\n secondClientGuid: null,\r\n\r\n responseText: null,\r\n\r\n eventAndCampaignGuid: null,\r\n eventAndCampaignName: null,\r\n eventAndCampaignNotes: null,\r\n eventAndCampaignNotesGuid: null,\r\n\r\n isNameFromDataSource: null,\r\n isOrganisationFromDataSource: null,\r\n isOtherSideFromDataSource: null,\r\n isSecondClientFromDataSource: null,\r\n\r\n clientTitle: null,\r\n otherPartyTitle: null,\r\n secondClientTitle: null,\r\n title: null,\r\n clientEmail: null,\r\n clientGuid: null,\r\n clientMobile: null,\r\n clientPhone: null,\r\n secondClientEmail: null,\r\n secondClientMobile: null,\r\n secondClientPhone: null,\r\n\r\n customFields: [],\r\n\r\n clickThroughUrl: null,\r\n utmSource: null,\r\n utmMedium: null,\r\n utmCampaign: null,\r\n utmContent: null,\r\n utmKeyword: null,\r\n googleClickIdentifier: null,\r\n facebookClickIdentifier: null,\r\n });\r\n\r\n const [state, setState] = useState({\r\n showDiscard: false,\r\n isFormChanged: false,\r\n isSendEmailDialogOpen: false\r\n });\r\n\r\n useEffect(() => {\r\n // - Ran only once\r\n // If we recieve a guid, then fetch EnquiryDetails\r\n if (props.guid) {\r\n setIsLoading(true);\r\n fetchEnquiryDefaultSettings();\r\n fetchEnquiryDetails(props.guid);\r\n }\r\n // tslint:disable-next-line: align\r\n }, [props.guid]);\r\n\r\n const fetchEnquiryDefaultSettings = () => {\r\n retrieveEnquiryDefaultSettings(\r\n false,\r\n // tslint:disable-next-line: no-any\r\n (data: any) => onDataEnquiryDefaultSettingsRetrieved(data),\r\n // tslint:disable-next-line:no-any\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n });\r\n };\r\n\r\n const onDataEnquiryDefaultSettingsRetrieved = (data: EnquiryDefaultSettings) => {\r\n if (data && data.settings && data.settings.systems && data.settings.systems.enquiryDefaults\r\n && data.settings.systems.enquiryDefaults.config) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n enquiryDefaultConfig: data.settings.systems.enquiryDefaults.config\r\n };\r\n });\r\n }\r\n };\r\n\r\n const displayLoader = () => {\r\n if (isLoading) {\r\n return ;\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n const fetchEnquiryDetails = (guid: string) => {\r\n var enquiryQueryParams: EnquiryDetailsQueryParams = {\r\n guid: guid,\r\n };\r\n\r\n retrieveEnquiryDetailsData(\r\n enquiryQueryParams,\r\n true,\r\n (data) => onDataRetrieved(data),\r\n // tslint:disable-next-line\r\n function (reason: any): void {\r\n showNotification(null, reason, 'error');\r\n setIsLoading(false);\r\n }\r\n );\r\n };\r\n\r\n const onDataRetrieved = (data: EnquiryData) => {\r\n setIsLoading(false);\r\n setEnquiryDetails(data.enquiry.detail);\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const required = (value: any) => {\r\n return value ? undefined : 'Required';\r\n };\r\n\r\n const actionButton = (\r\n // tslint:disable-next-line: no-any\r\n form: FormApi,\r\n submitting: boolean,\r\n pristine: boolean,\r\n // tslint:disable-next-line: no-any\r\n values: any\r\n ) => {\r\n return (\r\n
\r\n \r\n Send\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n const onSubmit = (values: FollowUp) => {\r\n saveFollowUp(values);\r\n };\r\n\r\n const saveFollowUp = (values: FollowUp) => {\r\n // Save the File\r\n client.mutate({\r\n mutation: FollowUpEnquiryMutation,\r\n variables: {\r\n input: getFollowUpEnquiryInput(values)\r\n },\r\n })\r\n // tslint:disable-next-line: no-any\r\n .then((results: { data: any; }) => {\r\n if (results.data) {\r\n if (results.data.error === null || results.data.error === undefined) {\r\n showNotification(null, 'Successfully submitted', 'info');\r\n\r\n onFollowUpClosed();\r\n } else {\r\n showNotification('Failed to Save Follow up', results.data.error, 'error');\r\n }\r\n }\r\n })\r\n // tslint:disable-next-line:no-any\r\n .catch((reason: any) => { showNotification('Failed to Save Follow up', reason, 'error'); });\r\n };\r\n\r\n const getFollowUpEnquiryInput = (values: FollowUp) => {\r\n return {\r\n enquiryGuid: props.guid,\r\n followUpAction: 'Internal Note',\r\n followUpActionSystemName: 'InternalNote',\r\n followUpDate: moment(values.followUpDate).toDate(),\r\n outcome: 'More Follow Up',\r\n outcomeDate: moment(values.outcomeDate).toDate(),\r\n outcomeNotes: '',\r\n reason: null,\r\n reasonGuid: null,\r\n followUpNotes: values.followUpNotes,\r\n reminderOffset: null,\r\n updateFollowUpDueForInternalNote: false, // Internal notes to be sent to the assigned person. So don't update the follow up due date\r\n messageAssignee: true\r\n };\r\n };\r\n\r\n const getOutcomeDateDefaultValue = () => {\r\n // check outcome date (FollowUpDue)\r\n let outcomeDate: Date | null = null;\r\n\r\n if (state.enquiryDefaultConfig) {\r\n\r\n let hours = 0;\r\n let minutes = 0;\r\n let validTimeOfDay = false;\r\n\r\n if (state.enquiryDefaultConfig.timeOfDay && state.enquiryDefaultConfig.timeOfDay.toLowerCase() !== 'invalid date') {\r\n var timeOfDaySplit = state.enquiryDefaultConfig.timeOfDay ? state.enquiryDefaultConfig.timeOfDay.split(':') : null;\r\n\r\n if (timeOfDaySplit) {\r\n validTimeOfDay = true;\r\n hours = Number(timeOfDaySplit[0]);\r\n minutes = Number(timeOfDaySplit[1]);\r\n }\r\n }\r\n\r\n if (state.enquiryDefaultConfig.isCalculatedDays) {\r\n let date = addBusinessDays(moment().toDate(), state.enquiryDefaultConfig.addDays ? state.enquiryDefaultConfig.addDays : 0);\r\n\r\n if (validTimeOfDay) {\r\n outcomeDate = date\r\n .set('hour', hours)\r\n .set('minute', minutes)\r\n .toDate();\r\n } else {\r\n outcomeDate = date.toDate();\r\n }\r\n } else if (state.enquiryDefaultConfig.isCalculatedHours) {\r\n let addhours = state.enquiryDefaultConfig.addHours ? state.enquiryDefaultConfig.addHours : 0;\r\n\r\n outcomeDate = moment()\r\n .add(addhours, 'hour')\r\n .toDate();\r\n }\r\n\r\n // Manual default time is set through getOutcomeDefaultTime()\r\n }\r\n\r\n return outcomeDate;\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onFormValueChanged = (form: FormApi, changeProps: any) => {\r\n if (!changeProps.pristine) {\r\n form.change('isFormChanged', true);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n isFormChanged: true\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n if (state.isFormChanged) {\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: true\r\n };\r\n });\r\n } else {\r\n onFollowUpClosed();\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-any\r\n const onDiscardChanges = (agree: boolean) => {\r\n if (agree) {\r\n onFollowUpClosed();\r\n } else {\r\n // showDiscard false\r\n // form.change('showDiscard', false);\r\n setState((prevState) => {\r\n return {\r\n ...prevState,\r\n showDiscard: false\r\n };\r\n });\r\n }\r\n };\r\n\r\n const onFollowUpClosed = () => {\r\n if (props.onDialogClose) {\r\n props.onDialogClose();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isLoading\r\n ? displayLoader()\r\n : (\r\n true}\r\n // keepDirtyOnReinitialize={true}\r\n subscription={{ submitting: true, pristine: true, values: true }}\r\n render={({ handleSubmit, form, submitting, pristine, values\r\n }) => (\r\n
\r\n {displayLoader()}\r\n {\r\n onFormValueChanged(form, props);\r\n }}\r\n />\r\n \r\n
Message Assignee
\r\n
\r\n {enquiryDetails.assignedTo\r\n ? (\r\n 'Assigned to ' + enquiryDetails.assignedToName +\r\n (\r\n enquiryDetails.followUpDueDate && enquiryDetails.followUpDueDate !== null ? (\r\n ', due by ' + (enquiryDetails.followUpDueDate\r\n ? moment(enquiryDetails.followUpDueDate).format('DD MMM YYYY')\r\n : 'None')\r\n ) : ''\r\n )\r\n ) : ''\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n {({ input, meta }) => (\r\n \r\n )}\r\n \r\n \r\n {/* {printJson(values)} */}\r\n \r\n \r\n {actionButton(form, submitting, pristine, values)}\r\n \r\n \r\n )}\r\n />\r\n )\r\n }\r\n \r\n \r\n );\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\n// function printJson(values: FollowUp) {\r\n// if (values) {\r\n// return (\r\n// <>\r\n//
\r\n//                     {JSON.stringify(values, undefined, 2)}\r\n//                 
\r\n// \r\n// );\r\n// } else {\r\n// return (\r\n// <>\r\n// \r\n// {/* tslint:disable-next-line: no-shadowed-variable */}\r\n// {({ values }) => (\r\n//
\r\n//                             {JSON.stringify(values, undefined, 2)}\r\n//                             {/*  */}\r\n//                         
\r\n// )}\r\n//
\r\n// \r\n// );\r\n// }\r\n// }"],"sourceRoot":""}