{"version":3,"file":"static/js/main.e5e3d82e.js","mappings":"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","sources":["redux/DetailsSlice.ts","redux/LossSlice.ts","redux/PolicySlice.ts","redux/SmartClaimSlice.ts","redux/Store.ts","src/API.js","constants/Styles.ts","src/components/Bottom.js","constants/Colors.ts","src/components/DefaultButton.js","src/components/Heading.tsx","src/components/Para.tsx","src/components/VerticalSpace.tsx","src/Welcome.js","src/components/ScreenHeading.js","src/components/PhoneButton.js","src/SignIn/FailedSignIn.tsx","src/components/ButtonList.js","src/components/DisabledButton.js","src/components/ConditionalButton.js","src/components/LabeledTextField.js","src/SignIn/PolicySignIn.js","src/SignIn/StandardSignIn.js","src/SignIn/PolicyHolder.tsx","src/SignIn/NotPolicyHolder.tsx","src/SignIn/YourDetails.tsx","src/SignIn/YourVehicle.tsx","src/SignIn/Waiting.js","src/SignIn/SignInTFA.js","src/SignIn/SignIn.tsx","src/ProductInfo.js","src/MainMenu/Options.js","src/MainMenu/TrustPilot.js","src/components/DatePicker.js","src/apps/Warranty/WarrantyDate.js","src/components/SelectedButton.js","src/apps/Warranty/WarrantyFaultCategory.js","src/apps/Warranty/WarrantyAdditionalInfo.js","src/apps/Warranty/WarrantyLocation.js","src/components/PhotoPreviewManage.tsx","src/components/PhotoPreviewWithDeleteNew.tsx","src/components/MultiplePhotoUploadTogether.tsx","src/apps/Warranty/WarrantyPhoto.tsx","src/apps/Warranty/WarrantyFail.js","src/components/Submitting.js","src/apps/Warranty/WarrantySubmitting.js","src/apps/Warranty/WarrantyThanks.js","src/apps/Warranty/Warranty.js","src/apps/Alloy/AlloySplash.js","src/apps/Alloy/AlloyIntro.js","src/apps/Alloy/AlloyDate.js","src/apps/Alloy/AlloyDamageDescription.js","src/apps/Alloy/AlloyDamageType.js","src/apps/Alloy/AlloyWheelType.js","src/apps/Alloy/AlloyWheelChoice.js","src/apps/Alloy/AlloyChooseWheel.js","src/components/PhotoPreview.js","src/components/PhotoUpload.js","src/components/PhotoPreviewWithDelete.js","src/components/MultiplePhotoUpload.js","src/components/PhotosBadge.js","src/apps/Alloy/AlloyPhotos.js","src/apps/Alloy/AlloyFail.js","src/apps/Alloy/AlloySubmitting.js","src/components/Another.tsx","src/apps/Alloy/AlloyAnother.js","src/components/Different.js","src/apps/Alloy/AlloyDifferent.js","src/apps/Alloy/AlloyThanks.js","src/apps/Alloy/AlloyVehicleLocationStatement.js","src/apps/Alloy/AlloyLocation.js","src/apps/Alloy/AlloyRepairDate.js","src/apps/Alloy/AlloyNoAppointment.js","src/apps/Alloy/AlloyDifferentReferred.js","src/apps/Alloy/Alloy.js","src/apps/Gap/GapIntro.js","src/components/YesNo.js","src/apps/Gap/GapInsurer.js","src/apps/Gap/GapIncident.js","src/apps/Gap/GapConfirmation.js","src/apps/Gap/GapSubmitting.js","src/apps/Gap/GapSuccess.js","src/apps/Gap/GapFail.js","src/apps/Gap/Gap.js","src/apps/Gapclaimed/GapResent.js","src/apps/Gapclaimed/Gapclaimed.js","src/apps/Smart/SmartSplash.js","src/apps/Smart/SmartIntro.js","src/apps/Smart/SmartDate.js","src/apps/Smart/SmartDamageType.js","src/apps/Smart/SmartDamageMap.tsx","src/apps/Smart/SmartDamageLocation.js","src/apps/Smart/SmartPhotos.tsx","src/apps/Smart/SmartFail.js","src/apps/Smart/SmartSubmitting.js","src/apps/Smart/SmartAnother.js","src/apps/Smart/SmartDifferent.js","src/apps/Smart/SmartDifferentReferred.js","src/apps/Smart/SmartThanks.js","src/apps/Smart/SmartVehicleLocationStatement.js","src/components/AddressSelectOptions.tsx","src/apps/Smart/SmartLocation.tsx","src/apps/Smart/SmartRepairDate.js","src/apps/Smart/SmartNoAppointment.js","src/apps/Smart/Smart.js","src/apps/Tyre/TyreSplash.js","src/apps/Tyre/TyreIntro.js","src/apps/Tyre/TyreDate.js","src/apps/Tyre/TyreDamageType.js","src/apps/Tyre/TyreChoose.js","src/apps/Tyre/TyrePhotos.js","src/apps/Tyre/TyreFail.js","src/apps/Tyre/TyreSubmitting.js","src/apps/Tyre/TyreAnother.js","src/apps/Tyre/TyreDifferent.js","src/apps/Tyre/TyreThanks.js","src/apps/Tyre/TyreDrivable.js","src/apps/Tyre/Tyre.js","src/apps/Cancellation/CancellationIntro.js","src/apps/Cancellation/CancellationProduct.js","src/apps/Cancellation/CancellationContactDealer.js","src/apps/Cancellation/CancellationDate.js","src/apps/Cancellation/CancellationReason.js","src/apps/Cancellation/CancellationRefundAmount.js","src/apps/Cancellation/CancellationAmountConfirmation.js","src/apps/Cancellation/CancellationFailure.js","src/components/LabeledCheckboxField.js","src/apps/Cancellation/CancellationBankDetails.js","src/apps/Cancellation/CancellationSuccessPremium.js","src/apps/Cancellation/CancellationAnother.js","src/apps/Cancellation/CancellationThanks.js","src/apps/Cancellation/CancellationTFA.js","src/apps/Cancellation/CancellationPremiumSure.js","src/apps/Cancellation/Cancellation.js","src/components/LabeledEditTextField.js","src/components/LabeledEditTextFieldWithRedirect.js","src/components/LabeledEditTextFieldEmail.js","src/components/FileUploadSingle.js","src/apps/PersonalDetails/PersonalDetails.js","src/apps/VehicleDetails/VehicleDetails.js","src/apps/PolicyDocumentation/PolicyDocumentation.js","src/MainMenu/MainMenu.js","src/components/NavigationBarIcons.tsx","src/components/NavigationBar.tsx","src/MainApp.js","index.js","App.js","node_modules/moment/locale|sync|/^/.*$","webpack/bootstrap","webpack/runtime/chunk loaded","webpack/runtime/compat get default export","webpack/runtime/define property getters","webpack/runtime/global","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/make namespace object","webpack/runtime/node module decorator","webpack/runtime/publicPath","webpack/runtime/jsonp chunk loading","webpack/startup"],"sourcesContent":["import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { ApiDetails } from '../ApiTypes'\r\n\r\ninterface DetailsState {\r\n value: ApiDetails\r\n}\r\n\r\nconst initialState = {\r\n value: {\r\n email: '',\r\n firstName: '',\r\n mileage: '',\r\n mobileNumber: '',\r\n postcode: '',\r\n registrationNumber: '',\r\n policyNumber: '',\r\n repeatEmail: '',\r\n surname: '',\r\n damageDate: ''\r\n }\r\n} as DetailsState\r\n\r\nconst detailsSlice = createSlice({\r\n name: 'details',\r\n initialState,\r\n reducers: {\r\n setDetails (state, action: PayloadAction) {\r\n state.value = action.payload\r\n },\r\n setEmail (state, action: PayloadAction) {\r\n state.value.email = action.payload\r\n },\r\n setFirstName (state, action: PayloadAction) {\r\n state.value.firstName = action.payload\r\n },\r\n setMileage (state, action: PayloadAction) {\r\n state.value.mileage = action.payload\r\n },\r\n setMobileNumber (state, action: PayloadAction) {\r\n state.value.mobileNumber = action.payload\r\n },\r\n setPostcode (state, action: PayloadAction) {\r\n state.value.postcode = action.payload\r\n },\r\n setRegistrationNumber (state, action: PayloadAction) {\r\n state.value.registrationNumber = action.payload\r\n },\r\n setPolicyNumber (state, action: PayloadAction) {\r\n state.value.policyNumber = action.payload\r\n },\r\n setRepeatEmail (state, action: PayloadAction) {\r\n state.value.repeatEmail = action.payload\r\n },\r\n setSurname (state, action: PayloadAction) {\r\n state.value.surname = action.payload\r\n },\r\n setDamageDate (state, action: PayloadAction) {\r\n state.value.damageDate = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport const { setDetails, setEmail, setFirstName, setMileage, setMobileNumber, setPostcode, setRegistrationNumber, setRepeatEmail, setSurname, setPolicyNumber, setDamageDate } = detailsSlice.actions\r\nexport default detailsSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { ApiLossType } from '../ApiTypes'\r\n\r\ninterface lossState {\r\n value: ApiLossType | null\r\n}\r\n\r\nconst initialState = { value: null } as lossState\r\n\r\nconst lossSlice = createSlice({\r\n name: 'loss',\r\n initialState,\r\n reducers: {\r\n setLoss (state, action: PayloadAction) {\r\n state.value = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport const { setLoss } = lossSlice.actions\r\nexport default lossSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { ApiPolicy } from '../ApiTypes'\r\n\r\ninterface policyState {\r\n value: ApiPolicy | null\r\n}\r\n\r\nconst initialState = { value: null } as policyState\r\n\r\nconst policySlice = createSlice({\r\n name: 'policy',\r\n initialState,\r\n reducers: {\r\n setPolicy (state, action: PayloadAction) {\r\n state.value = action.payload;\r\n }\r\n }\r\n})\r\n\r\nexport const { setPolicy } = policySlice.actions\r\nexport default policySlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { ApiDamageLocation, ApiDamageType, ApiSmartClaim } from '../ApiTypes'\r\n\r\ninterface smartClaimState {\r\n value: ApiSmartClaim\r\n}\r\n\r\nconst defaultSmartClaimState: ApiSmartClaim = {\r\n allPhotos: [],\r\n id: null,\r\n damageLocation: null,\r\n damageType: null,\r\n date: null,\r\n meetsShineBusinessRules: 'false',\r\n vehicleAddress: '',\r\n vehiclePostcode: ''\r\n}\r\n\r\nconst initialState = { value: defaultSmartClaimState } as smartClaimState\r\n\r\nconst smartClaimSlice = createSlice({\r\n name: 'smartClaim',\r\n initialState,\r\n reducers: {\r\n addPhoto (state, action: PayloadAction) {\r\n //if (!state.value.allPhotos.includes(action.payload)) {\r\n state.value.allPhotos.push(action.payload)\r\n //}\r\n },\r\n deletePhoto (state, action: PayloadAction) {\r\n state.value.allPhotos = state.value.allPhotos.filter((image) => image !== action.payload)\r\n },\r\n\tclearPhotos (state) {\r\n\t\tstate.value.allPhotos.length = 0\r\n\t},\r\n setDamageLocation (state, action: PayloadAction) {\r\n state.value.damageLocation = action.payload\r\n },\r\n setDamageType (state, action: PayloadAction) {\r\n state.value.damageType = action.payload\r\n },\r\n setVehiclePostcode (state, action: PayloadAction) {\r\n state.value.vehiclePostcode = String(action.payload)\r\n }\r\n }\r\n})\r\n\r\nexport const { addPhoto, deletePhoto, setDamageLocation, setDamageType, setVehiclePostcode, clearPhotos} = smartClaimSlice.actions\r\nexport default smartClaimSlice.reducer\r\n","import { configureStore } from '@reduxjs/toolkit'\r\n\r\nimport detailsSliceReducer from './DetailsSlice'\r\nimport policySliceReducer from './LossSlice'\r\nimport lossSliceReducer from './PolicySlice'\r\nimport smartClaimReducer from './SmartClaimSlice'\r\n\r\nconst store = configureStore({\r\n reducer: {\r\n details: detailsSliceReducer,\r\n policy: policySliceReducer,\r\n loss: lossSliceReducer,\r\n smartClaim: smartClaimReducer\r\n }\r\n})\r\n\r\nexport default store\r\n\r\nexport type RootState = ReturnType\r\n","import $ from 'jquery';\r\nimport each from 'async/each';\r\nimport AsyncStorage from '@react-native-async-storage/async-storage'\r\nimport * as ImageManipulator from 'expo-image-manipulator';\r\nimport {decode as atob, encode as btoa} from 'base-64'\r\nimport { Platform } from 'react-native'\r\nimport axios from 'axios'\r\n\r\nconst delay = ms => new Promise(res => setTimeout(res, ms));\r\n\r\nclass API {\r\n constructor() {\r\n this.urlBase = 'https://api.autoprotect-app.co.uk/v2/';\r\n this.apiBase = this.urlBase + 'api/';\r\n this.username = 'consumerapp';\r\n this.password = '13e77e4fb7c2346075fa1533420d1d2c';\r\n this.standardTimeout = 30 * 1000;\r\n\r\n // OAuth token\r\n this.accessToken = '';\r\n this.accessTokenExpiresIn = '';\r\n this.accessTokenExpiryTime = '';\r\n // Customer session token\r\n this.sessionToken = '';\r\n this.tfaToken = '';\r\n // AP Staff Id\r\n\tconst theApp = this;\r\n\tAsyncStorage.getItem('submittedBy', (err, result) => {\r\n theApp.submittedBy = result || '';\r\n });\r\n \r\n\r\n // Get the OAuth token on start-up\r\n this.getAccessToken();\r\n\r\n this.warrantyPhoto = this.warrantyPhoto.bind(this);\r\n this.alloyPhoto = this.alloyPhoto.bind(this);\r\n this.tyrePhoto = this.tyrePhoto.bind(this);\r\n this.smartPhoto = this.smartPhoto.bind(this);\r\n }\r\n \r\n xWwwFormUrlEncoded (data: any): string {\r\n const components = []\r\n for (const property in data) {\r\n const encodedKey = encodeURIComponent(property)\r\n const encodedValue = encodeURIComponent(data[property])\r\n components.push(encodedKey + '=' + encodedValue)\r\n }\r\n return components.join('&')\r\n }\r\n\r\n async getAccessToken () {\r\n const api = this\r\n\r\n const data = this.xWwwFormUrlEncoded({\r\n grant_type: 'password',\r\n username: this.username,\r\n password: this.password\r\n })\r\n\r\n const response = await fetch(\r\n this.urlBase + 'token', {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'\r\n },\r\n body: data\r\n }\r\n )\r\n const json = await response.json()\r\n api.accessToken = json.access_token\r\n\tapi.accessTokenExpiresIn = json.expires_in\r\n\tapi.accessTokenExpiryTime = new Date(Date.now() + (json.expires_in * 60))\r\n }\r\n\r\n\r\n\r\n async timeoutPromise() {\r\n\t await delay(this.standardTimeout);\r\n }\r\n \r\n async policies(data, done, notFound, fail) {\r\n let api = this;\r\n var url = this.apiBase +\r\n 'policies/?registrationNumber=' + encodeURIComponent(data.registrationNumber) +\r\n '&postcode=' + encodeURIComponent(data.postcode) +\r\n '&surname=' + encodeURIComponent(data.surname) +\r\n '&policyNumber=' + encodeURIComponent(data.policyNumber) +\r\n '&version=15' +\r\n '&src=' + Platform.OS;\r\n\r\n // Fake a not found response.\r\n if (data.registrationNumber === 'bad' && data.policyNumber !== 'good') {\r\n url = this.apiBase + '404';\r\n }\r\n\t\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n api.timeoutPromise()\r\n ])\r\n\t if (response == null) {\r\n\t\t fail()\r\n\t }\r\n else if (response.status == 401) {\r\n fail()\r\n\t }\r\n else if (response.status != 200) {\r\n notFound()\r\n } else {\r\n const json = await response.json()\r\n api.sessionToken = json.session_token\r\n\r\n done(json)\r\n }\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n \r\n async policyDetails(done, notFound, fail) {\r\n let api = this;\r\n let url = this.apiBase +\r\n 'policydetails?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken);\r\n\r\n\t\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n api.timeoutPromise()\r\n ])\r\n\t if (response == null) {\r\n\t\t fail()\r\n\t }\r\n else if (response.status == 401) {\r\n fail()\r\n\t }\r\n else if (response.status != 200) {\r\n notFound()\r\n } else {\r\n const json = await response.json()\r\n done(json)\r\n }\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n \r\n async getContactDetails(policyNumber, done, notFound, fail) {\r\n let api = this;\r\n var url = this.apiBase +\r\n 'CustomerContactData/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyId=' + encodeURIComponent(policyNumber);\r\n\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n api.timeoutPromise()\r\n ])\r\n\t if (response == null) {\r\n\t\t fail()\r\n\t }\r\n else if (response.status == 401) {\r\n fail()\r\n\t }\r\n else if (response.status != 200) {\r\n notFound()\r\n } else {\r\n const json = await response.json()\r\n\r\n done(json)\r\n }\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n async setContactDetails(policyNumber, emailAddress, firstName, lastName, done, notFound, fail) {\r\n let api = this;\r\n var url = this.apiBase +\r\n 'CustomerContactData/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyId=' + encodeURIComponent(policyNumber) +\r\n '&emailAddress=' + encodeURIComponent(emailAddress);\r\n\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n api.timeoutPromise()\r\n ])\r\n\t if (response == null) {\r\n\t\t fail()\r\n\t }\r\n else if (response.status == 401) {\r\n fail()\r\n\t }\r\n else if (response.status != 200) {\r\n notFound()\r\n } else {\r\n const json = await response.text()\r\n\r\n done(json)\r\n }\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n \r\n async updateName(policyNumber, previousFirstName, newFirstName, previousLastName, newLastName, imageData, done, fail, progress) {\r\n let url = this.apiBase +\r\n 'CustomerContactData/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyId=' + encodeURIComponent(policyNumber) +\r\n '&previousFirstName=' + encodeURIComponent(previousFirstName) +\r\n '&newFirstName=' + encodeURIComponent(newFirstName) +\r\n '&previousLastName=' + encodeURIComponent(previousLastName) +\r\n '&newLastName=' + encodeURIComponent(newLastName);\r\n\t \r\n\ttry {\r\n // separate out the mime component\r\n var mimeString = imageData.split(',')[0].split(':')[1].split(';')[0];\r\n\t\r\n let blob = '';\r\n let fd = new FormData();\r\n\r\n\tif (mimeString == 'image/jpeg' || mimeString == 'image/png')\r\n\t{\r\n\t\tconst manipResult = await ImageManipulator.manipulateAsync(\r\n\t\t imageData,\r\n\t\t [{ resize: { width: 640 } }],\r\n\t\t { compress: 0.1, format: ImageManipulator.SaveFormat.PNG, base64: true }\r\n\t\t);\r\n\t\t\r\n\r\n\t\tif (Platform.OS != \"web\")\r\n\t\t{\r\n\t\t\tblob = this.dataURItoBlob('data:image/png;base64,' + manipResult.base64);\r\n\t\t\t//fd.append('uploadedImage', blob, 'photo.png');\r\n\t\t\tfd.append('uploadedImage', {\r\n\t\t\t\turi: manipResult.uri,\r\n\t\t\t\ttype: 'image/png',\r\n\t\t\t\tname: 'photo.png',\r\n\t\t\t\tdata: blob,\r\n\t\t\t });\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tblob = this.dataURItoBlob(manipResult.uri);\r\n\t\t\tfd.append('uploadedImage', blob, 'photo.png');\r\n\t\t}\t\r\n\t}\r\n\telse\r\n\t{\r\n\t\tblob = this.dataURItoBlob(imageData);\r\n\t\tfd.append('uploadedImage', blob, 'photo.pdf');\r\n\t}\r\n\r\n\r\n /*const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders(),\r\n\t\t\tbody: fd,\r\n\t\t\ttimeout: 5 * 60 * 1000,\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])*/\r\n\r\n\taxios.request({\r\n\t\t method: \"post\", \r\n\t\turl: url, \r\n\t\tdata: fd,\r\n\t\theaders: this.accessHeadersFormData(),\r\n\t\ttimeout: 5 * 60 * 1000,\r\n\t\tonUploadProgress: (p) => {\r\n\t\t progress(p.loaded, p.total)\r\n\t\t}\r\n\t})\r\n\t .then(function (response) {\r\n\t\t done(response)\r\n\t })\r\n\t .catch(function (error) {\r\n\t\t// handle error\r\n\t\tconsole.log(error)\r\n\t\tfail(error)\r\n\t })\r\n\t .finally(function () {\r\n\t\t// always executed\r\n\t });\r\n\r\n } catch (e) {\r\n\t\tconsole.log(e)\r\n fail(e)\r\n }\r\n\r\n }\r\n\r\n async updateAddress(policyNumber, addressLine1, addressLine2, addressLine3, addressLine4, postcode, done, notFound, fail) {\r\n\t let api = this;\r\n let url = this.apiBase +\r\n 'CustomerContactData/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyId=' + encodeURIComponent(policyNumber) +\r\n '&addressLine1=' + encodeURIComponent(addressLine1) +\r\n '&addressLine2=' + encodeURIComponent(addressLine2) +\r\n '&addressLine3=' + encodeURIComponent(addressLine3) +\r\n '&addressLine4=' + encodeURIComponent(addressLine4) +\r\n '&postcode=' + encodeURIComponent(postcode);\r\n\t \r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n api.timeoutPromise()\r\n ])\r\n\t if (response == null) {\r\n\t\t fail()\r\n\t }\r\n else if (response.status == 401) {\r\n fail()\r\n\t }\r\n else if (response.status != 200) {\r\n notFound()\r\n } else {\r\n const json = await response.text()\r\n\r\n done(json)\r\n }\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n\r\n async updateVRN(policyNumber, previousVRN, newVRN, done, notFound, fail) {\r\n let api = this;\r\n var url = this.apiBase +\r\n 'CustomerContactData/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyId=' + encodeURIComponent(policyNumber) +\r\n '&previousVRN=' + encodeURIComponent(previousVRN) +\r\n '&newVRN=' + encodeURIComponent(newVRN);\r\n\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n api.timeoutPromise()\r\n ])\r\n\t if (response == null) {\r\n\t\t fail()\r\n\t }\r\n else if (response.status == 401) {\r\n fail()\r\n\t }\r\n else if (response.status != 200) {\r\n notFound()\r\n } else {\r\n const json = await response.text()\r\n\r\n done(json)\r\n }\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n async rehydrateSession(token) {\r\n\t this.sessionToken = token\r\n }\r\n\r\n /*async userSession(data, done, fail) {\r\n let api = this;\r\n let url = this.apiBase +\r\n 'usersession?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '®istrationNumber=' + encodeURIComponent(data.registrationNumber) +\r\n '&postcode=' + encodeURIComponent(data.postcode) +\r\n '&policyNumber=' + encodeURIComponent(data.policyNumber) +\r\n '&firstName=' + encodeURIComponent(data.firstName) +\r\n '&lastName=' + encodeURIComponent(data.surname) +\r\n '&mobileNumber=' + encodeURIComponent(data.mobileNumber) +\r\n '&email=' + encodeURIComponent(data.email) +\r\n '&mileage=' + encodeURIComponent(data.mileage) +\r\n '&src=' + Platform.OS;\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n api.sessionToken = json.session_token\r\n\t if (response.status == 200)\r\n\t {\r\n\t\tdone(json)\r\n\t }\r\n\t else\r\n\t {\r\n\t\t fail('failed')\r\n\t }\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }*/\r\n\r\n async refundAmount(policy, date, done, fail) {\r\n let url = this.apiBase +\r\n 'refundamount/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyNumber=' + encodeURIComponent(policy.policyNo) +\r\n '&policySectionId=' + encodeURIComponent(policy.id) +\r\n '&cancellationDate=' + this.formatDate(date);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json.amount)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n };\r\n\r\n async sendTFACode(done, fail) {\r\n let url = this.apiBase +\r\n 'usersession/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n\t '&version=2';\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n };\r\n\r\n async checkTFACode(code, done, fail) {\r\n let url = this.apiBase +\r\n 'usersession/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(code) +\r\n\t '&version=2';\r\n\t \r\n\t // for testing\r\n\t/*if (code == \"123123\")\r\n\t{\r\n\t\tdone();\r\n\t\treturn;\r\n\t}*/\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n\t if (response == null) {\r\n\t\t fail()\r\n\t }\r\n else if (response.status == 200) {\r\n\t\t const retVal1 = await response.text()\r\n\t\t let retVal = retVal1.substring(9, 11)\r\n\t\t if (retVal == \"xZ\")\r\n\t\t {\r\n\t\t\t this.tfaToken = retVal1;\r\n\t\t\t\tawait AsyncStorage.setItem('ast', this.sessionToken)\r\n\t\t\t done()\r\n\t\t }\r\n\t\t else\r\n\t\t {\r\n\t\t\t fail()\r\n\t\t }\r\n\t }\r\n else {\r\n fail()\r\n }\r\n } catch (e) {\r\n fail()\r\n }\r\n };\r\n\r\n async postcodeLookup(postcode, done, fail) {\r\n let url = this.apiBase +\r\n 'postcodelookup/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n\t '&postcode=' + encodeURIComponent(postcode);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json.result)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n };\r\n\r\n /*async getPolicyDocument(policyId, done, fail) {\r\n let url = this.apiBase +\r\n 'PolicyPackDocument/?policyNumber=' + encodeURIComponent(policyId);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n };*/\r\n\r\n async shineDatesLookup(postcode, done, fail) {\r\n let url = this.apiBase +\r\n 'shinedates/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&postcode=' + encodeURIComponent(postcode);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout * 2)\r\n ])\r\n const json = await response.json()\r\n\t /*const json = {\r\n 'Results': [\r\n {\r\n 'Date': '2023-01-16',\r\n 'Timeslot': 'PM',\r\n 'Technician': 'Jason Jones',\r\n 'Technician_ID': '96898',\r\n 'Drive_Times': {\r\n 'CT126DR To CT66JJ': '00:22:54',\r\n 'CT66JJ To ME46EA': '00:41:17',\r\n 'ME46EA To CT126DR': '00:56:00'\r\n },\r\n 'Booking_Key': '96898_2023-01-16_PM'\r\n\t },{\r\n 'Date': '2023-01-17',\r\n 'Timeslot': 'PM',\r\n 'Technician': 'Jason Jones',\r\n 'Technician_ID': '96898',\r\n 'Drive_Times': {\r\n 'CT126DR To CT66JJ': '00:22:54',\r\n 'CT66JJ To ME46EA': '00:41:17',\r\n 'ME46EA To CT126DR': '00:56:00'\r\n },\r\n 'Booking_Key': '96898_2023-01-16_PM'\r\n\t }]}*/\r\n\r\n done(json.Results)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n };\r\n\r\n async shineAlloyDatesLookup(postcode, done, fail) {\r\n let url = this.apiBase +\r\n 'shinealloydates/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&postcode=' + encodeURIComponent(postcode);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json.Results)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n };\r\n\r\n async cancellation(policy, date, reason, done, fail) {\r\n let url = this.apiBase +\r\n 'cancellation/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyNumber=' + encodeURIComponent(policy.policyNo) +\r\n '&policySectionId=' + encodeURIComponent(policy.id) +\r\n '&product=' + encodeURIComponent(policy.product) +\r\n '&cancellationDate=' + this.formatDate(date) +\r\n '&cancellationReason=' + encodeURIComponent(reason) +\r\n '&cancellationFeePaid=' + this.formatDate(new Date()) +\r\n '&submittedBy=' + this.submittedBy;\r\nconsole.log(url);\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\nconsole.log(json);\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n /*async getcancellationfromsessiontoken(session_token, done, fail) {\r\n let url = this.apiBase +\r\n 'cancellation/?session_token=' + encodeURIComponent(session_token);\r\n\t const me = this;\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'GET',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json.result)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }*/\r\n\r\n /*async cancellationPayment(cancellationId, token, done, fail) {\r\n let url = this.apiBase +\r\n 'worldpaypayment/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&cancellation_id=' + encodeURIComponent(cancellationId) +\r\n '&wp_token=' + encodeURIComponent(token);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }*/\r\n\r\n async cancellationBankDetails(cancellationId, accountName, sortCode, accountNumber, done, fail) {\r\n let url = this.apiBase +\r\n 'CancellationBankDetails/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&cancellation_id=' + encodeURIComponent(cancellationId) +\r\n '&account_name=' + encodeURIComponent(accountName) +\r\n '&sort_code=' + encodeURIComponent(sortCode) +\r\n '&account_number=' + encodeURIComponent(accountNumber);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n async gapClaim(policy, insurerDate, financed, settlementAccepted, mileage, incidentDate, incident, newforold, done, fail) {\r\n let url = this.apiBase +\r\n 'gapclaim/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyNumber=' + encodeURIComponent(policy.policyNo) +\r\n '&policySectionId=' + encodeURIComponent(policy.id) +\r\n '&dateDeclaredLoss=' + this.formatDate(insurerDate) +\r\n '&isVehicleFinanced=' + financed +\r\n '&isSettlementFigureAccepted=' + settlementAccepted +\r\n '&mileageAtIncident=' + encodeURIComponent(mileage) +\r\n '&incidentDate=' + this.formatDate(incidentDate) +\r\n '&incidentType=' + encodeURIComponent(incident) +\r\n '&newForOldOffered=' + newforold +\r\n '&submittedBy=' + this.submittedBy;\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n\t if (response == null) {\r\n\t\t fail()\r\n\t }\r\n else if (response.status == 401) {\r\n fail()\r\n\t }\r\n else if (response.status != 200) {\r\n notFound()\r\n } else {\r\n const json = await response.json()\r\n\r\n done(json)\r\n }\r\n } catch (e) {\r\n fail(e)\r\n }\r\n };\r\n\r\n async resendGapEmail(gapClaimId, done, fail) {\r\n let url = this.apiBase +\r\n 'gapresendemail/?gapClaimId=' + encodeURIComponent(gapClaimId);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n };\r\n\r\n async warrantyClaim(policy, date, faultCategory, additionalInfo, vehicleLocation, done, fail) {\r\n let url = this.apiBase +\r\n 'warrantyclaim/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyNumber=' + encodeURIComponent(policy.policyNo) +\r\n '&policySectionId=' + encodeURIComponent(policy.id) +\r\n '&dateOfBreakdown=' + this.formatDate(date) +\r\n '&faultCategory=' + encodeURIComponent(faultCategory) +\r\n '&additionalInfo=' + encodeURIComponent(additionalInfo) +\r\n '&vehicleLocation=' + encodeURIComponent(vehicleLocation) +\r\n '&submittedBy=' + this.submittedBy;\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n warrantyPhoto(claimId, imageData, photoType, done, fail, uploadProgress) {\r\n this.uploadPhoto('warrantyClaimPhoto/', 'warrantyClaimId', claimId, imageData, photoType, done, fail, uploadProgress);\r\n }\r\n\r\n async alloyClaim(policy, description, damageType, chosenWheel, date, wheelType, done, fail) {\r\n let url = this.apiBase +\r\n 'alloyclaim/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyNumber=' + encodeURIComponent(policy.policyNo) +\r\n '&policySectionId=' + encodeURIComponent(policy.id) +\r\n '&dateOfDamage=' + this.formatDate(date) +\r\n '&descriptionOfDamage=' + encodeURIComponent(description) +\r\n '&typeOfDamage=' + encodeURIComponent(damageType) +\r\n '&typeOfWheel=' + encodeURIComponent(wheelType) +\r\n '&whichWheel=' + encodeURIComponent(chosenWheel) +\r\n '&submittedBy=' + this.submittedBy;\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n alloyPhoto(claimId, imageData, photoType, done, fail, uploadProgress) {\r\n this.uploadPhoto('alloyClaimPhoto/', 'alloyClaimId', claimId, imageData, photoType, done, fail, uploadProgress);\r\n }\r\n\r\n async tyreClaim(policy, damageType, chosenWheel, isDrivable, date, done, fail) {\r\n let url = this.apiBase +\r\n 'tyreclaim/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyNumber=' + encodeURIComponent(policy.policyNo) +\r\n '&policySectionId=' + encodeURIComponent(policy.id) +\r\n '&dateOfDamage=' + this.formatDate(date) +\r\n '&typeOfDamage=' + encodeURIComponent(damageType) +\r\n '&whichWheel=' + encodeURIComponent(chosenWheel) +\r\n '&isDrivable=' + encodeURIComponent(isDrivable) +\r\n '&submittedBy=' + this.submittedBy;\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n tyrePhoto(claimId, imageData, photoType, done, fail, uploadProgress) {\r\n this.uploadPhoto('tyreclaimphoto/', 'tyreClaimId', claimId, imageData, photoType, done, fail, uploadProgress);\r\n }\r\n\r\n async smartClaim(policy, date, damageType, damageLocation, done, fail) {\r\n let url = this.apiBase +\r\n 'smartclaim/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&policyNumber=' + encodeURIComponent(policy.policyNo) +\r\n '&policySectionId=' + encodeURIComponent(policy.id) +\r\n '&dateOfDamage=' + this.formatDate(date) +\r\n '&typeOfDamage=' + encodeURIComponent(damageType) +\r\n '&locationOfDamage=' + encodeURIComponent(damageLocation) +\r\n '&submittedBy=' + this.submittedBy;\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n async smartRepairDate(postcode, address, repair_date, booking_Key, done, fail) {\r\n let url = this.apiBase +\r\n 'shinedates/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&postcode=' + encodeURIComponent(postcode) +\r\n '&address=' + encodeURIComponent(address) +\r\n '&repair_date=' + encodeURIComponent(repair_date) +\r\n '&booking_key=' + encodeURIComponent(booking_Key);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n async alloyRepairDate(postcode, address, repair_date, booking_Key, done, fail) {\r\n let url = this.apiBase +\r\n 'shinealloydates/?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&postcode=' + encodeURIComponent(postcode) +\r\n '&address=' + encodeURIComponent(address) +\r\n '&repair_date=' + encodeURIComponent(repair_date) +\r\n '&booking_key=' + encodeURIComponent(booking_Key);\r\n\r\n try {\r\n const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders()\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])\r\n const json = await response.json()\r\n done(json)\r\n } catch (e) {\r\n fail(e)\r\n }\r\n }\r\n\r\n smartPhoto(claimId, imageData, photoType, done, fail, uploadProgress) {\r\n this.uploadPhoto('smartclaimphoto/', 'smartClaimId', claimId, imageData, photoType, done, fail, uploadProgress);\r\n }\r\n\r\n /*uploadPhoto(endpoint, claimIdParam, claimId, imageData, photoType, done, fail) {\r\n let url = this.apiBase + endpoint +\r\n '?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&' + claimIdParam + '=' + claimId +\r\n '&photoType=' + encodeURIComponent(photoType);\r\n\r\n let blob = this.dataURItoBlob(imageData);\r\n let fd = new FormData();\r\n fd.append('uploadedImage', blob, 'photo.png');\r\n\r\n $.ajax({\r\n url: url,\r\n headers: this.accessHeaders(),\r\n contentType: false,\r\n enctype: 'multipart/form-data',\r\n data: fd,\r\n processData: false,\r\n method: 'POST',\r\n timeout: 5 * 60 * 1000\r\n }).done(function(data) {\r\n done(data);\r\n }).fail(function(xhr) {\r\n fail(xhr);\r\n });\r\n };*/\r\n\r\n async uploadPhoto(endpoint, claimIdParam, claimId, imageData, photoType, done, fail, progress) {\r\n let url = this.apiBase + endpoint +\r\n '?session_token=' + encodeURIComponent(this.sessionToken) +\r\n '&code=' + encodeURIComponent(this.tfaToken) +\r\n '&' + claimIdParam + '=' + claimId +\r\n '&photoType=' + encodeURIComponent(photoType);\r\n\t \r\n\ttry {\r\n\tconst manipResult = await ImageManipulator.manipulateAsync(\r\n imageData,\r\n\t [{ resize: { width: 640 } }],\r\n { compress: 0.1, format: ImageManipulator.SaveFormat.PNG, base64: true }\r\n );\r\n let blob = '';\r\n\t\r\n let fd = new FormData();\r\n\r\n\tif (Platform.OS != \"web\")\r\n\t{\r\n\t\tblob = this.dataURItoBlob('data:image/png;base64,' + manipResult.base64);\r\n\r\n\t\t//fd.append('uploadedImage', blob, 'photo.png');\r\n\t\tfd.append('uploadedImage', {\r\n\t\t\turi: manipResult.uri,\r\n\t\t\ttype: 'image/png',\r\n\t\t\tname: 'photo.png',\r\n\t\t\tdata: blob,\r\n\t\t });\r\n\t}\r\n\telse\r\n\t{\r\n\t\tblob = this.dataURItoBlobWeb(manipResult.uri);\r\n\t\tfd.append('uploadedImage', blob, 'photo.png');\r\n\t}\r\n\r\n /*const response = await Promise.race([\r\n fetch(\r\n url, {\r\n method: 'POST',\r\n headers: this.accessHeaders(),\r\n\t\t\tbody: fd,\r\n\t\t\ttimeout: 5 * 60 * 1000,\r\n }\r\n ),\r\n this.timeoutPromise(this.standardTimeout)\r\n ])*/\r\n\r\n\taxios.request({\r\n\t\t method: \"post\", \r\n\t\turl: url, \r\n\t\tdata: fd,\r\n\t\theaders: this.accessHeadersFormData(),\r\n\t\ttimeout: 5 * 60 * 1000,\r\n\t\tonUploadProgress: (p) => {\r\n\t\t progress(photoType, p.loaded, p.total)\r\n\t\t}\r\n\t})\r\n\t .then(function (response) {\r\n\t\t done(response)\r\n\t })\r\n\t .catch(function (error) {\r\n\t\t// handle error\r\n\t\tconsole.log(error)\r\n\t\tfail(error)\r\n\t })\r\n\t .finally(function () {\r\n\t\t// always executed\r\n\t });\r\n\r\n } catch (e) {\r\n\t\tconsole.log(e)\r\n fail(e)\r\n }\r\n\r\n };\r\n\r\n // Uploads photos in parallel. Each photo object in the array should have the\r\n // following structure:\r\n // { data: 'uri-image-data', type: 'photo type' }\r\n // photoFunc should be one of the api photo uploading functions (alloyPhoto,\r\n // tyrePhoto, or smartPhoto).\r\n uploadPhotos(photoFunc, claimId, photos, done, fail, uploadProgress) {\r\n each(\r\n photos,\r\n function submit(photo, callback) {\r\n photoFunc(\r\n claimId,\r\n photo.data,\r\n photo.type,\r\n function done() {\r\n callback();\r\n },\r\n function fail(xhr) {\r\n callback(xhr);\r\n },\r\n\t\t uploadProgress\r\n )\r\n },\r\n function callback(err) {\r\n if (err) {\r\n fail(err);\r\n } else {\r\n done();\r\n }\r\n }\r\n );\r\n }\r\n\r\n accessHeaders() {\r\n\t let dtnow = new Date()\r\n\t if (this.accessTokenExpiryTime < dtnow)\r\n\t {\r\n\t\t this.getAccessToken()\r\n\t }\r\n\r\n return {\r\n \"Authorization\": \"Bearer \" + this.accessToken\r\n };\r\n }\r\n\r\n accessHeadersFormData() {\r\n\t let dtnow = new Date()\r\n\t if (this.accessTokenExpiryTime < dtnow)\r\n\t {\r\n\t\t this.getAccessToken()\r\n\t }\r\n\r\n return {\r\n \"Authorization\": \"Bearer \" + this.accessToken,\r\n\t \"Content-Type\": \"multipart/form-data\"\r\n };\r\n }\r\n\r\n formatDate(date) {\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n if (month.length < 2) {\r\n month = '0' + month;\r\n }\r\n if (day.length < 2) {\r\n day = '0' + day;\r\n }\r\n\r\n return [year, month, day].join('-');\r\n }\r\n\r\n // https://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata\r\n dataURItoBlobWeb(dataURI) {\r\n // convert base64/URLEncoded data component to raw binary data held in a string\r\n var byteString;\r\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\r\n byteString = atob(dataURI.split(',')[1]);\r\n } else {\r\n byteString = unescape(dataURI.split(',')[1]);\r\n }\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\r\n // write the bytes of the string to a typed array\r\n var ia = new Uint8Array(byteString.length);\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new Blob([ia], {type:mimeString});\r\n }\r\n\r\n\tdataURItoBlob(dataURI) {\r\n\t var byteString = atob(dataURI.split(',')[1]);\r\n\t\tvar ab = new ArrayBuffer(byteString.length);\r\n\t\tvar ia = new Uint8Array(ab);\r\n\t\t\r\n\t\tfor (var i = 0; i < byteString.length; i++) {\r\n\t\t\tia[i] = byteString.charCodeAt(i);\r\n\t\t}\r\n\t\treturn new Blob([ab].buffer, { type: 'image/png' });\r\n\t\t\r\n\t}\r\n}\r\n\r\nexport default API;\r\n","import { StyleSheet, Dimensions } from 'react-native';\r\nimport Colors from '../constants/Colors'\r\n\r\nlet paddingAmount = 35;\r\nconst windowWidth = Dimensions.get('window').width;\r\n\r\nif (windowWidth > 400)\r\n{\r\n\tpaddingAmount = 100;\r\n}\r\n\r\nexport default {\r\nstandardPadding: paddingAmount,\r\n\touterContainer: {\r\n\t\talignSelf: 'center',\r\n\t\twidth: '100%',\r\n\t\tfontSize: 50\r\n\t},\r\n\tbottom: {\r\n\t marginTop: 4,\r\n\t boxSizing: 'border-box',\r\n\t marginBottom: 20,\r\n\t},\r\n\tdefaultButton: {\r\n\t color: '#fff',\r\n\t backgroundColor: '#312e49',\r\n\t fontSize: '1.5rem',\r\n\t lineHeight: '1.875rem',\r\n\t padding: '0.5rem 0',\r\n\t display: 'block',\r\n\t width: '100%',\r\n\t border: 'none',\r\n\t cursor: 'pointer',\r\n\t borderRadius: '0.375rem',\r\n\t},\r\n\toptionsButton: {\r\n\t\tpaddingBottom: 10,\r\n\t},\r\n\toptionsButton: {\r\n\t\tpaddingBottom: 10,\r\n\t},\r\n\tAppHeader: {\r\n\t backgroundColor: '#1d1a45',\r\n\t color: 'white',\r\n\t position: 'relative',\r\n\t},\r\n\tAppInfo: {\r\n\t position: 'absolute',\r\n\t width: '2.5rem',\r\n\t height: '1.875rem',\r\n\t lineHeight: '1.5rem',\r\n\t top: '1.25rem',\r\n\t right: '2.5rem',\r\n\t},\r\n\tAppInfoImg: {\r\n\t height: '100%',\r\n\t},\r\n\tAppHomeImg: {\r\n\t marginLeft: '2.5rem',\r\n\t marginTop: '1.125rem',\r\n\t height: '2rem',\r\n\t width: '2rem',\r\n\t color: '#fff',\r\n\t fill: 'currentColor',\r\n\t},\r\n\tAppLogo: {\r\n\t position: 'absolute',\r\n\t display: 'block',\r\n\t height: 54,\r\n\t width: 173,\r\n\t marginLeft: '-3.61rem',\r\n\t left: '50%',\r\n\t top: 0,\r\n\t marginTop: '1.0rem',\r\n\t},\r\n\tAppIntro: {\r\n\t fontSize: 'large',\r\n\t},\r\n\tAppBody: {\r\n\t boxSizing: 'border-box',\r\n\t},\r\n\tcardetailsbox: {\r\n\t\tborder: '2px #000000 solid',\r\n\t\tpadding: '10px',\r\n\t\tcolor: '#000000',\r\n\t},\r\n\tlistButton: {\r\n\t\tpaddingBottom: 10,\r\n\t},\r\n\trefundTableColumnLeft: {\r\n\r\n\t},\r\n\tcontainer: {\r\n\t\tpaddingHorizontal: paddingAmount,\r\n\t },\r\n linkstyle: {\r\n\t color: '#0000ff',\r\n\t textDecorationLine: 'underline',\r\n },\r\n bullet: {\r\n\t marginLeft: 10,\r\n\t padding: 5,\r\n\t fontSize: 16,\r\n },\r\n textStyle: {\r\n }\r\n}","import { View } from 'react-native';\r\nimport React from 'react';\r\nimport styles from '../../constants/Styles'\r\n\r\nfunction Bottom(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nexport default Bottom;\r\n","export default {\r\n dark: '#333',\r\n primaryPurple: '#312e49',\r\n red: '#cf0e18',\r\n teal: '#26b4b0',\r\n black: '#000',\r\n white: '#fff',\r\n skyblue: '#99cff3',\r\n green: '#3c8225',\r\n lightgreen: '#b5c75b',\r\n darkgrey: '#666666',\r\n lightgrey: '#dadada',\r\n}\r\n","import React, { FunctionComponent } from 'react'\r\nimport { GestureResponderEvent, Pressable, StyleSheet, Text } from 'react-native'\r\nimport Colors from '../../constants/Colors'\r\n\r\ntype DefaultButtonProps = {\r\n text: string,\r\n onClick: (event: GestureResponderEvent) => void,\r\n newStyle: any\r\n}\r\n\r\nconst DefaultButton: FunctionComponent = (props: DefaultButtonProps) => {\r\n\tif (props.newStyle == null)\r\n\t{\r\n\t return (\r\n\t\t\r\n\t\t {props.text}\r\n\t\t\r\n\t )\r\n\t}\r\n\telse\r\n\t{\r\n\t return (\r\n\t\t\r\n\t\t {props.text}\r\n\t\t\r\n\t )\r\n\t}\r\n\t\t\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n defaultButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n padding: 10\r\n }\r\n})\r\n\r\nexport default DefaultButton\r\n","import React from 'react'\r\nimport { Text } from 'react-native'\r\n\r\ntype HeadingProps = {\r\n children: string\r\n}\r\n\r\nconst Heading = ({ children }: HeadingProps) => {\r\n return {children}\r\n}\r\n\r\nexport default Heading\r\n","import React, { FunctionComponent, ReactNode } from 'react'\r\nimport { Text, Platform } from 'react-native'\r\n\r\ntype ParaProps = {\r\n bold?: boolean\r\n centerAlign?: boolean\r\n children?: ReactNode\r\n color?: string\r\n fontSize?: number\r\n display?: string\r\n}\r\n\r\nlet displayVal = 'block'\r\nif (Platform.OS == \"android\")\r\n{\r\n\tdisplayVal = 'flex'\r\n}\r\n\r\nconst Para: FunctionComponent = (props: ParaProps) => {\r\n return \r\n {props.children}\r\n \r\n}\r\n\r\nexport default Para\r\n","import React, { FunctionComponent } from 'react'\r\nimport { View } from 'react-native'\r\n\r\ntype VerticalSpaceProps = {\r\n height: number\r\n}\r\n\r\nconst VerticalSpace: FunctionComponent = (props: VerticalSpaceProps) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default VerticalSpace\r\n","import { View, StyleSheet, Text, Dimensions, Image, Platform } from 'react-native';\r\nimport React, { useState, useEffect } from 'react'\r\nimport Bottom from './components/Bottom';\r\nimport DefaultButton from './components/DefaultButton';\r\nimport Heading from './components/Heading';\r\nimport Para from './components/Para';\r\nimport styles from './../constants/Styles'\r\nimport VerticalSpace from './components/VerticalSpace'\r\n\r\nimport imageSource from './welcome_pack_banner.png';\r\nimport imageSourceMobile from './welcome_pack_banner_mobile.png';\r\n\r\nfunction Welcome(props) {\r\n\tconst [windowWidth, SetWindowWidth] = useState(Dimensions.get('screen').width)\r\n\tconst [imageHeight, SetImageHeight] = useState(Dimensions.get('screen').width / 5.86)\r\n\tconst [imageHeightMobile, SetImageHeightMobile] = useState(Dimensions.get('screen').width / 1.106122448979592)\r\n\t const handleResize = () => {\r\n\t\tSetWindowWidth(Dimensions.get('screen').width)\r\n\t\tSetImageHeight(Dimensions.get('screen').width / 5.86)\r\n\t\tSetImageHeightMobile(Dimensions.get('screen').width / 1.106122448979592)\r\n\t }\r\n\tuseEffect(() => {\r\n\t\tif (Platform.OS == \"web\")\r\n\t\t{\r\n\t\t\t//window.addEventListener(\"resize\", handleResize, false);\r\n\t\t}\r\n\r\n\t}, [])\r\n\r\n return(\r\n \r\n \r\n {windowWidth > 400 ?\r\n\t\r\n\t:\r\n\t\r\n }\r\n \r\n \r\n Hello\r\n Welcome to the AutoProtect App.\r\n\t • Make a claim\r\n\t • Amend your personal details\r\n\t • Cancel an agreement\r\n\t • View your policy documents\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Welcome;\r\n","import React, { FunctionComponent } from 'react'\r\nimport { StyleSheet, Text, View, TouchableOpacity } from 'react-native'\r\nimport Colors from '../../constants/Colors'\r\nimport Styles from '../../constants/Styles'\r\nimport VerticalSpace from './VerticalSpace'\r\n\r\ntype ScreenHeadingProps = {\r\n text: string\r\n}\r\n\r\nconst ScreenHeading: FunctionComponent = (props: ScreenHeadingProps) => {\r\n return (\r\n \r\n \r\n {props.text}\r\n \r\n\t {props.goBack != null ?\r\n \r\n props.goBack()}>← Go Back\r\n : null }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ScreenHeading\r\n\r\nconst styles = StyleSheet.create({\r\n textBanner: {\r\n color: '#fff',\r\n fontWeight: 'bold',\r\n fontSize: 18,\r\n textAlign: 'center',\r\n\ttextTransform: 'uppercase'\r\n },\r\n textBannerContainer: {\r\n backgroundColor: Colors.red, // AutoProtect\r\n //backgroundColor: Colors.teal, // Shine\r\n paddingVertical: 8,\r\n width: '100%'\r\n },\r\n navBanner: {\r\n color: '#fff',\r\n fontWeight: 'bold',\r\n fontSize: 18,\r\n textAlign: 'left',\r\n\ttextTransform: 'uppercase'\r\n },\r\n navBannerContainer: {\r\n\tpaddingHorizontal: Styles.standardPadding,\r\n backgroundColor: Colors.darkgrey, // AutoProtect\r\n //backgroundColor: Colors.teal, // Shine\r\n paddingVertical: 8,\r\n width: '100%'\r\n }\r\n})\r\n","import React, { FunctionComponent } from 'react'\r\nimport { GestureResponderEvent, StyleSheet, Text, View, Linking } from 'react-native'\r\nimport Colors from '../../constants/Colors'\r\nimport Para from './Para'\r\n\r\nfunction PhoneButton() {\r\n return (\r\n \r\n \r\n Contact customer services.\r\n \r\n\t \r\n\t {`Office opening hours:\r\n\t Mon – Fri 9am to 5pm\r\n\t Closed Weekends and Bank Holidays.`}\r\n\t \r\n\t\t\r\n\t\t Linking.openURL('https://www.autoprotect.co.uk/customer_support')}>Send us a message\r\n\t\t\r\n \r\n );\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n phoneButtonLabel: {\r\n\t marginTop: -3,\r\n\t textAlign: 'center',\r\n\t fontSize: 18,\r\n\t height: 30,\r\n\t margin: 0,\r\n },\r\n phoneButtonLink: {\r\n\t backgroundColor: '#d54b55',\r\n\t color: '#fff',\r\n\t textAlign: 'center',\r\n\t textDecoration: 'none',\r\n\t lineHeight: 20,\r\n },\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n defaultButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n padding: 10\r\n }\r\n})\r\n\r\n\r\nexport default PhoneButton;\r\n","import React from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport DefaultButton from '../components/DefaultButton'\r\nimport NavigationBar from '../components/NavigationBar'\r\nimport Para from '../components/Para'\r\nimport ScreenHeading from '../components/ScreenHeading'\r\nimport VerticalSpace from '../components/VerticalSpace'\r\nimport Styles from '../../constants/Styles'\r\nimport PhoneButton from '../components/PhoneButton';\r\nimport Bottom from '../components/Bottom';\r\n\r\ninterface FailedSignInProps {\r\n navigation: any\r\n onTryAgain: Function\r\n onRequestCallback: Function\r\n goHome: Function\r\n goBack: Function\r\n}\r\n\r\nexport default function FailedSignIn ({ navigation, onTryAgain, onRequestCallback, goHome, goBack }: FailedSignInProps) {\r\n const emptyTestFunction = () => {}\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Ok, no need to worry. You can either tap the button below to try again or request a callback and one of the team will investigate and get the issue resolved.\r\n \r\n \r\n Remember we only need the digits from your agreement number, not the letters.\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\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n","import React, { ReactNode } from 'react';\r\nimport { StyleSheet, View } from 'react-native';\r\n\r\ninterface ButtonListProps {\r\n children?: ReactNode;\r\n}\r\n\r\nconst ButtonList = ({ children }: ButtonListProps) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default ButtonList\r\n\r\nconst styles = StyleSheet.create({\r\n buttonList: {\r\n }\r\n})\r\n","import React, { FunctionComponent } from 'react'\r\nimport { GestureResponderEvent, Pressable, StyleSheet, Text } from 'react-native'\r\nimport Colors from '../../constants/Colors'\r\n\r\ntype DisabledButtonProps = {\r\n text: string,\r\n}\r\n\r\nconst DisabledButton: FunctionComponent = (props: DisabledButtonProps) => {\r\n return (\r\n \r\n {props.text}\r\n \r\n )\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n buttonText: {\r\n color: '#ddd',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n disabledButton: {\r\n backgroundColor: '#888',\r\n borderRadius: 4,\r\n padding: 10\r\n }\r\n})\r\n\r\nexport default DisabledButton\r\n","import React from 'react';\r\nimport DefaultButton from './DefaultButton';\r\nimport DisabledButton from './DisabledButton';\r\n\r\nfunction ConditionalButton(props) {\r\n if (props.condition()) {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ConditionalButton;\r\n","import React from 'react'\r\nimport { StyleSheet, View, TextInput } from 'react-native'\r\n//import { TextInput } from 'react-native-gesture-handler'\r\nimport Para from './Para'\r\n\r\ntype LabeledTextFieldProps = {\r\n label: string,\r\n onChange: (text: string) => void,\r\n placeholder?: string,\r\n value: string\r\n}\r\n\r\nconst LabeledTextField = ({ label, onChange, placeholder = '', value }: LabeledTextFieldProps) => {\r\n return (\r\n \r\n {label}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default LabeledTextField\r\n\r\nconst styles = StyleSheet.create({\r\n textInput: {\r\n borderWidth: 1,\r\n fontSize: 16,\r\n height: 35,\r\n paddingHorizontal: 4\r\n }\r\n})\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View } from 'react-native'\r\nimport Bottom from '../components/Bottom';\r\nimport ButtonList from '../components/ButtonList';\r\nimport ConditionalButton from '../components/ConditionalButton';\r\nimport DefaultButton from '../components/DefaultButton';\r\nimport Para from '../components/Para'\r\nimport LabeledTextField from '../components/LabeledTextField';\r\nimport ScreenHeading from '../components/ScreenHeading';\r\nimport VerticalSpace from '../components/VerticalSpace'\r\nimport Styles from '../../constants/Styles'\r\n\r\nclass PolicySignIn extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n buttonText: 'Continue',\r\n policyNumber: props.policyNumber || ''\r\n }\r\n this.handleFieldChange = this.handleFieldChange.bind(this);\r\n this.canContinue = this.canContinue.bind(this);\r\n this.continue = this.continue.bind(this);\r\n };\r\n\r\n handleFieldChange(value) {\r\n this.setState({policyNumber: value});\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t Hmmm; we don't seem to have a record on file against the details you've given, but don't worry. Please enter your agreement number (just the numbers – no letters) in the box below and tap 'Continue'. If you don't have that number, please tap 'No Agreement Number'.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t this.props.onNoAgreementNumber()}/>\r\n\t\t\t \r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n canContinue() {\r\n return this.state.policyNumber && this.state.buttonText === 'Continue';\r\n }\r\n\r\n continue() {\r\n this.setState({buttonText: 'Please Wait...'});\r\n this.props.onContinue(this.state.policyNumber, () => this.onFail());\r\n }\r\n\r\n onFail() {\r\n this.setState({buttonText: 'Continue'});\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default PolicySignIn;\r\n","import React, { useState, useEffect } from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport { useSelector } from 'react-redux'\r\nimport AsyncStorage from '@react-native-async-storage/async-storage'\r\nimport Para from '../components/Para'\r\nimport Styles from '../../constants/Styles'\r\nimport VerticalSpace from '../components/VerticalSpace'\r\nimport ScreenHeading from '../components/ScreenHeading'\r\nimport LabeledTextField from '../components/LabeledTextField'\r\nimport store, { RootState } from '../../redux/Store'\r\nimport { setPostcode, setRegistrationNumber, setSurname } from '../../redux/DetailsSlice'\r\nimport ConditionalButton from '../components/ConditionalButton'\r\n\r\ninterface StandardSignInProps {\r\n navigation: any,\r\n onContinue:Function,\r\n goHome: Function,\r\n goBack: Function,\r\n}\r\n\r\nexport default function StandardSignIn ({ navigation, onContinue, goHome, goBack }: StandardSignInProps) {\r\n const [buttonText, setButtonText] = useState('Continue')\r\n const details = useSelector((state: RootState) => state.details.value)\r\n\r\n\tuseEffect(() => {\r\n\t\tAsyncStorage.getItem('details.surname').then((value) => {\r\n\t\t\tif (value != null)\r\n\t\t\tupdateSurname(value)\r\n\t\t})\r\n\t\tAsyncStorage.getItem('details.registrationNumber').then((value) => {\r\n\t\t\tif (value != null)\r\n\t\t\tupdateRegistrationNumber(value)\r\n\t\t})\r\n\t\tAsyncStorage.getItem('details.postcode').then((value) => {\r\n\t\t\tif (value != null)\r\n\t\t\tupdatePostcode(value)\r\n\t\t})\r\n\r\n\t}, [])\r\n\r\n function canContinue () {\r\n return details.registrationNumber !== '' && details.surname !== '' && buttonText === 'Continue'\r\n }\r\n \r\n function doContinue() {\r\n setButtonText('Please Wait...');\r\n onContinue(details.registrationNumber, details.postcode, details.surname, () => onFail());\r\n }\r\n \r\n function onFail() {\r\n setButtonText('Continue');\r\n }\r\n\r\n async function updateSurname (text: string) {\r\n store.dispatch(setSurname(text))\r\n await AsyncStorage.setItem('details.surname', text)\r\n }\r\n\r\n async function updateRegistrationNumber (text: string) {\r\n store.dispatch(setRegistrationNumber(text))\r\n await AsyncStorage.setItem('details.registrationNumber', text)\r\n }\r\n\r\n async function updatePostcode (text: string) {\r\n store.dispatch(setPostcode(text))\r\n await AsyncStorage.setItem('details.postcode', text)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\t Let's find your agreement(s).\r\n \r\n Please complete your information below. \r\n \r\n \r\n \r\n \r\n\t * mandatory\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n","import React from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport DefaultButton from '../components/DefaultButton'\r\nimport NavigationBar from '../components/NavigationBar'\r\nimport Para from '../components/Para'\r\nimport ScreenHeading from '../components/ScreenHeading'\r\nimport VerticalSpace from '../components/VerticalSpace'\r\nimport Styles from '../../constants/Styles'\r\n\r\ninterface PolicyHolderProps {\r\n navigation: any\r\n onPolicyHolder:Function\r\n onNotPolicyHolder:Function\r\n goHome: Function\r\n goBack: Function\r\n}\r\n\r\nexport default function PolicyHolder ({ navigation, onPolicyHolder, onNotPolicyHolder, goHome, goBack }: PolicyHolderProps) {\r\n return (\r\n \r\n \r\n \r\n \r\n Are you the agreement holder?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n","import React from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport DefaultButton from '../components/DefaultButton'\r\nimport NavigationBar from '../components/NavigationBar'\r\nimport Para from '../components/Para'\r\nimport ScreenHeading from '../components/ScreenHeading'\r\nimport Styles from '../../constants/Styles'\r\nimport VerticalSpace from '../components/VerticalSpace'\r\n\r\ninterface NotPolicyHolderProps {\r\n navigation: any\r\n onDone: Function\r\n goHome: Function\r\n goBack: Function\r\n}\r\n\r\nexport default function NotPolicyHolder ({ navigation, onDone, goHome, goBack }: NotPolicyHolderProps) {\r\n return (\r\n \r\n \r\n \r\n \r\n We’re really sorry but under data protection regulation, as you’re not the agreement holder we’re unable to process your request. Please obtain approval from the agreement holder to process the repair request.\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n","import React, { useState, useEffect } from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport { useSelector } from 'react-redux'\r\nimport AsyncStorage from '@react-native-async-storage/async-storage'\r\nimport ConditionalButton from '../components/ConditionalButton'\r\nimport LabeledTextField from '../components/LabeledTextField'\r\nimport NavigationBar from '../components/NavigationBar'\r\nimport Para from '../components/Para'\r\nimport ScreenHeading from '../components/ScreenHeading'\r\nimport VerticalSpace from '../components/VerticalSpace'\r\nimport Styles from '../../constants/Styles'\r\nimport store, { RootState } from '../../redux/Store'\r\nimport { setEmail, setFirstName, setMileage, setMobileNumber, setRepeatEmail, setSurname } from '../../redux/DetailsSlice'\r\n\r\ninterface YourDetailsProps {\r\n navigation: any\r\n onSubmit: Function\r\n goHome: Function\r\n goBack: Function\r\n}\r\n\r\nexport default function YourDetails ({ navigation, onSubmit, goHome, goBack }: YourDetailsProps) {\r\n const [buttonText, setButtonText] = useState('Continue')\r\n const details = useSelector((state: RootState) => state.details.value)\r\n\r\n\tuseEffect(() => {\r\n\t\tAsyncStorage.getItem('details.firstName').then((value) => {\r\n\t\t\tupdateFirstName(value);\r\n\t\t})\r\n\t\tAsyncStorage.getItem('details.surname').then((value) => {\r\n\t\t\tupdateSurname(value);\r\n\t\t})\r\n\t\tAsyncStorage.getItem('details.mobileNumber').then((value) => {\r\n\t\t\tupdateMobileNumber(value);\r\n\t\t})\r\n\t\tAsyncStorage.getItem('details.email').then((value) => {\r\n\t\t\tupdateEmail(value);\r\n\t\t})\r\n\t\tAsyncStorage.getItem('details.repeatEmail').then((value) => {\r\n\t\t\tupdateRepeatEmail(value);\r\n\t\t})\r\n\t\tAsyncStorage.getItem('details.mileage').then((value) => {\r\n\t\t\tupdateMileage(value);\r\n\t\t})\r\n\r\n\t}, [])\r\n\r\n\tasync function updateFirstName (text: string) {\r\n store.dispatch(setFirstName(text))\r\n await AsyncStorage.setItem('details.firstName', text)\r\n }\r\n\r\n async function updateSurname (text: string) {\r\n store.dispatch(setSurname(text))\r\n await AsyncStorage.setItem('details.surname', text)\r\n }\r\n\r\n async function updateMobileNumber (text: string) {\r\n store.dispatch(setMobileNumber(text))\r\n await AsyncStorage.setItem('details.mobileNumber', text)\r\n }\r\n\r\n async function updateEmail (text: string) {\r\n store.dispatch(setEmail(text))\r\n await AsyncStorage.setItem('details.email', text)\r\n }\r\n\r\n async function updateRepeatEmail (text: string) {\r\n store.dispatch(setRepeatEmail(text))\r\n await AsyncStorage.setItem('details.repeatEmail', text)\r\n }\r\n\r\n async function updateMileage (text: string) {\r\n store.dispatch(setMileage(text))\r\n await AsyncStorage.setItem('details.mileage', text)\r\n }\r\n \r\n function canContinue () {\r\n return details.firstName !== '' && details.surname !== '' && details.mobileNumber !== '' && details.email !== '' && emailValid() && details.mileage !== '' && buttonText === 'Continue'\r\n }\r\n \r\n function emailValid() {\r\n return (details.email && (details.email === details.repeatEmail));\r\n }\r\n\r\n function onFail() {\r\n setButtonText('Please wait...')\r\n }\r\n function onButtonPressed() {\r\n setButtonText('Please wait...')\r\n onSubmit(details.firstName, details.surname, details.mobileNumber, details.email, details.mileage, onFail());\r\n }\r\n\r\n return (\r\n \r\n\t \r\n \r\n \r\n Please enter your details.\r\n \r\n \r\n We need all this information – thank you\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\t\t\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n","import React, { useState } from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport DefaultButton from '../components/DefaultButton'\r\nimport NavigationBar from '../components/NavigationBar'\r\nimport Para from '../components/Para'\r\nimport ScreenHeading from '../components/ScreenHeading'\r\nimport VerticalSpace from '../components/VerticalSpace'\r\nimport Styles from '../../constants/Styles'\r\n\r\ninterface YourVehicleProps {\r\n policy: any\r\n policies: any\r\n navigation: any\r\n onNotYourVehicle: Function\r\n onDone: Function\r\n goHome: Function\r\n goBack: Function\r\n}\r\n\r\nexport default function YourVehicle ({ policy, policies, navigation, onNotYourVehicle, onDone, goHome, goBack }: YourVehicleProps) {\r\n const [carModelState, setCarModelState] = useState(policies.vehicle.model)\r\n\r\n const replaceAllButLastThree = (s : string) => {\r\n const { length } = s\r\n if (length > 4) {\r\n const substringToBeReplaced = s.substring(0, length - 3)\r\n return s.replace(substringToBeReplaced, '****')\r\n }\r\n }\r\n\r\n const truncateAfter15 = (s : string) => {\r\n\t let val = s;\r\n if (s.length > 15) {\r\n val = s.substring(0, 15) + '...'\r\n }\r\n\treturn val\r\n }\r\n\r\n const [carRegistrationState, setRegistrationState] = useState(replaceAllButLastThree(policies.vehicle.VRN))\r\n const [dealerNameState, setDealerNameState] = useState(policies.dealer_name)\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n Is this your vehicle?\r\n \r\n \r\n \r\n Make: {truncateAfter15(carModelState)}\r\n \r\n \r\n Registration: {carRegistrationState}\r\n \r\n \r\n Dealer: {dealerNameState}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, Image, Text } from 'react-native'\r\nimport ButtonList from '../components/ButtonList';\r\nimport ConditionalButton from '../components/ConditionalButton';\r\nimport PhoneButton from '../components/PhoneButton';\r\nimport DefaultButton from '../components/DefaultButton';\r\nimport LabeledTextField from '../components/LabeledTextField';\r\nimport ScreenHeading from '../components/ScreenHeading';\r\nimport ProductInfo from '../ProductInfo';\r\nimport Para from '../components/Para'\r\nimport Styles from '../../constants/Styles'\r\nimport waitingimg from '../loading-png-gif.gif';\r\nimport Bottom from '../components/Bottom';\r\nimport VerticalSpace from '../components/VerticalSpace'\r\n\r\nclass Waiting extends Component {\r\n\r\n render() {\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tPlease wait...\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Waiting...\"\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t);\r\n } \r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n waitingimage: {\r\n width: 200,\r\n height: 200,\r\n\tresizeMode: 'contain'\r\n },\r\n waitingimagewrapper: {\r\n\t width: '100%'\r\n }\r\n})\r\n\r\nexport default Waiting;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, Image, Text, TouchableOpacity } from 'react-native'\r\nimport ButtonList from '../components/ButtonList';\r\nimport ConditionalButton from '../components/ConditionalButton';\r\nimport PhoneButton from '../components/PhoneButton';\r\nimport DefaultButton from '../components/DefaultButton';\r\nimport LabeledTextField from '../components/LabeledTextField';\r\nimport ScreenHeading from '../components/ScreenHeading';\r\nimport ProductInfo from '../ProductInfo';\r\nimport Para from '../components/Para'\r\nimport Styles from '../../constants/Styles'\r\nimport waitingimg from '../loading-png-gif.gif';\r\nimport Bottom from '../components/Bottom';\r\nimport VerticalSpace from '../components/VerticalSpace'\r\nimport moment from 'moment'\r\n\r\nclass SignInTFA extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n code: '',\r\n\t contact_mechanism: '',\r\n\t contact_details: '',\r\n submitting: false,\r\n\t loading: true,\r\n\t error: false,\r\n\t token_expiry_time: null,\r\n\t new_request: false,\r\n\t buttonText: 'Submit',\r\n };\r\n\t\r\n this.handleCodeChange = this.handleCodeChange.bind(this);\r\n this.submitCode = this.submitCode.bind(this);\r\n this.canSubmit = this.canSubmit.bind(this);\r\n this.onFail = this.onFail.bind(this);\r\n this.SendTFACode = this.SendTFACode.bind(this);\r\n this.ReSendTFACode = this.ReSendTFACode.bind(this);\r\n\t\r\n\tthis.SendTFACode(props);\r\n }\r\n \r\n SendTFACode(props) {\r\n\t let theApp = this;\r\n\t this.setState({loading: true, error: false, contact_mechanism: '', contact_details: '', submitting: false, code: ''});\r\n\tprops.api.sendTFACode(function done(data) {\r\n\t\tlet startTime = moment().format('HH:mm');\r\n\t\tvar expTime = moment(startTime ,'HH:mm').add(30,'minutes').format('HH:mm');\r\n\t\t\r\n\t\ttheApp.setState({ loading: false, contact_mechanism: data.contact_mechanism, contact_details: data.contact_details, token_expiry_time: expTime});\r\n }, function fail(xhr) {\r\n console.log(xhr);\r\n onFail();\r\n });\t \r\n }\r\n \r\n ReSendTFACode(props) {\r\n\t this.setState({new_request: true});\r\n\t this.SendTFACode(props);\r\n }\r\n\r\n submitCode(value)\r\n {\r\n\t this.setState({buttonText: 'Please Wait...'});\r\n\r\n\t let theApp = this;\r\n\t if (value == null)\r\n\t {\r\n\t\tthis.props.api.checkTFACode(this.state.code, function done() {\r\n\t\t\ttheApp.props.onDone()\r\n\t\t}, function fail() {\r\n\t\t\ttheApp.setState({buttonText: 'Submit'});\r\n\t\t theApp.onFail();\r\n\t\t});\t \r\n\t }\r\n\t else\r\n\t {\r\n\t\tthis.props.api.checkTFACode(value, function done() {\r\n\t\t\ttheApp.props.onDone()\r\n\t\t}, function fail() {\r\n\t\t\ttheApp.setState({buttonText: 'Submit'});\r\n\t\t theApp.onFail();\r\n\t\t});\t \r\n\t }\r\n }\r\n \r\n onFail()\r\n {\r\n\tthis.setState({ error: true})\r\n }\r\n \r\n handleCodeChange(value) {\r\n this.setState({code: value});\r\n\t/*if (value.length == 6)\r\n\t{\r\n\t\tthis.submitCode(value)\r\n\t}*/\r\n }\r\n\r\n\r\n render() {\r\n\t\tif (this.state.loading == true)\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tPlease wait...\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Waiting...\"\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n\t\telse if (this.state.error == true)\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tThere was a problem with your code.\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\t this.SendTFACode(this.props)}/>\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t{this.state.contact_mechanism == \"none\" ? \r\n\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\tHmmm, for some reason we are unable to process your request through the app. Please contact the team on the number below and they'll get the issue resolved.\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\t:\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t{ this.state.contact_mechanism == \"mobile\" ? \r\n\t\t\t\t\t We have sent a code by SMS to your number ending {this.state.contact_details}. Please allow a few minutes for it to arrive.\r\n\t\t\t\t\t :\r\n\t\t\t\t\t We have sent a code by email to your email address ending {this.state.contact_details}. Please allow a few minutes for it to arrive.\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tThis code expires at {this.state.token_expiry_time}.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t this.canSubmit()} onClick={(e) => this.submitCode()}/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t{ this.state.new_request == false ?\r\n\t\t\t\t\tNot received a code? this.ReSendTFACode(this.props)}>Click here to resend\r\n\t\t\t\t\t:\r\n\t\t\t\t\tWe've received your request. A new code is on the way.\r\n\t\t\t\t\t}\r\n\t\t\t\t\tHaving trouble receiving your authentication codes?\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\t}\r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n }\r\n\r\n canSubmit() {\r\n\treturn this.state.code != '' && this.state.buttonText === 'Submit'\r\n\t//return true;\r\n }\r\n \r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n waitingimage: {\r\n width: 200,\r\n height: 200,\r\n\tresizeMode: 'contain'\r\n },\r\n waitingimagewrapper: {\r\n\t width: '100%'\r\n }\r\n})\r\n\r\nexport default SignInTFA;\r\n","import React, { Component } from 'react';\r\nimport FailedSignIn from './FailedSignIn';\r\nimport PolicySignIn from './PolicySignIn';\r\nimport StandardSignIn from './StandardSignIn';\r\nimport PolicyHolder from './PolicyHolder';\r\nimport NotPolicyHolder from './NotPolicyHolder';\r\nimport YourDetails from './YourDetails';\r\nimport YourVehicle from './YourVehicle';\r\nimport Waiting from './Waiting';\r\nimport SignInTFA from './SignInTFA';\r\nimport AsyncStorage from '@react-native-async-storage/async-storage'\r\nimport waitingimg from '../loading-png-gif.gif';\r\n\r\n\r\nclass SignIn extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n signInType: 'standard',\r\n registrationNumber: props.registrationNumber,\r\n postcode: props.postcode,\r\n surname: '',\r\n policyNumber: props.policyNumber,\r\n\t policies: props.policies,\r\n\t details: null,\r\n\t loading: true\r\n }\r\n\r\n this.handlePolicySignIn = this.handlePolicySignIn.bind(this);\r\n this.handleStandardSignIn = this.handleStandardSignIn.bind(this);\r\n this.handleNotPolicyHolder = this.handleNotPolicyHolder.bind(this);\r\n this.handlePolicyHolder = this.handlePolicyHolder.bind(this);\r\n this.handleSubmitDetails = this.handleSubmitDetails.bind(this);\r\n this.handleTFA = this.handleTFA.bind(this);\r\n this.handleTryAgain = this.handleTryAgain.bind(this);\r\n this.handleYourVehicle = this.handleYourVehicle.bind(this);\r\n };\r\n \r\n componentDidMount() {\r\n\t let theApp = this;\r\n\t if (this.props.backToEnd == true)\r\n\t {\r\n\t\t this.setState({signInType: 'standard'});\r\n\t }\r\n\t\tAsyncStorage.getItem('ast').then((ast) => {\r\n\t\t\tif (ast != null && ast != '')\r\n\t\t\t{\r\n\t\t\t\tAsyncStorage.getItem('details.postcode').then((postcode) => {\r\n\t\t\t\t\tAsyncStorage.getItem('details.registrationNumber').then((registrationNumber) => {\r\n\t\t\t\t\t\tAsyncStorage.getItem('details.surname').then((surname) => {\r\n\t\t\t\t\t\t\ttheApp.setState({registrationNumber: registrationNumber, postcode: postcode, surname: surname});\r\n\t\t\t\t\t\t\t\ttheApp.setState({loading: false});\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\ttheApp.setState({loading: false});\r\n\t\t\t}\r\n\t\t})\r\n }\r\n\r\n handlePolicySignIn(policyNumber, onFail) {\r\n const nextState = Object.assign(\r\n {}, this.state, {policyNumber: policyNumber}\r\n );\r\n this.setState(nextState);\r\n\r\n this.handleSignIn(nextState, 'failed', onFail);\r\n }\r\n\r\n handleStandardSignIn(registrationNumber, postcode, surname, onFail) {\r\n const nextState = Object.assign(\r\n {}, this.state, {registrationNumber: registrationNumber, postcode: postcode, surname: surname}\r\n );\r\n\r\n this.setState(nextState);\r\n\r\n this.handleSignIn(nextState, 'failed', onFail);\r\n }\r\n\r\n handleSignIn(state, notFoundScreen, onFail) {\r\n let signIn = this;\r\n\r\n this.props.api.policies(state, function done(policies) {\r\n if (policies) {\r\n const nextState = Object.assign({}, state, {signInType: 'policyHolder', policies: policies});\r\n signIn.setState(nextState);\r\n\r\n\t\t const details = {\r\n\t\t\tregistrationNumber: state.registrationNumber,\r\n\t\t\tpostcode: state.postcode,\r\n\t\t\tpolicyNumber: state.policyNumber,\r\n\t\t\tfirstName: state.firstName,\r\n\t\t\tsurname: state.surname,\r\n\t\t\tmobileNumber: state.mobileNumber,\r\n\t\t\temail: state.email,\r\n\t\t\tmileage: 0\r\n\t\t };\r\n\t\t signIn.setState({details: details})\r\n\r\n\r\n }\r\n\t else\r\n\t {\r\n\t\t onFail();\r\n\t }\r\n }, function notFound() {\r\n const nextState = Object.assign({}, state, {signInType: notFoundScreen});\r\n signIn.setState(nextState);\r\n }, function fail(xhr) {\r\n console.log(xhr);\r\n onFail();\r\n });\r\n }\r\n\r\n handleYourVehicle() {\r\n const nextState = Object.assign({}, this.state, {signInType: 'tfa'});\r\n this.setState(nextState);\r\n }\r\n\r\n handlePolicyHolder() {\r\n const nextState = Object.assign({}, this.state, {signInType: 'yourVehicle'});\r\n this.setState(nextState);\r\n }\r\n\r\n handleNotPolicyHolder() {\r\n const nextState = Object.assign({}, this.state, {signInType: 'notPolicyHolder'});\r\n this.setState(nextState);\r\n }\r\n\r\n handleSubmitDetails(firstName, surname, mobileNumber, email, mileage, onFail) {\r\n let signIn = this;\r\n const nextState = Object.assign(\r\n {}, this.state, {\r\n firstName: firstName,\r\n surname: surname,\r\n mobileNumber: mobileNumber,\r\n email: email,\r\n mileage: mileage\r\n }\r\n );\r\n this.setState(nextState);\r\n\r\n this.props.api.userSession(nextState, function done(data) {\r\n const details = {\r\n registrationNumber: nextState.registrationNumber,\r\n postcode: nextState.postcode,\r\n policyNumber: nextState.policyNumber,\r\n firstName: nextState.firstName,\r\n surname: nextState.surname,\r\n mobileNumber: nextState.mobileNumber,\r\n email: nextState.email,\r\n mileage: nextState.mileage\r\n };\r\n signIn.setState({details: details, signInType: 'tfa'})\r\n }, function fail(xhr) {\r\n console.log(xhr);\r\n onFail();\r\n });\r\n\r\n }\r\n\r\n handleTFA() {\r\n let signIn = this;\r\n\t\t//signIn.props.onAuthenticated(signIn.state.details, signIn.state.policies);\r\n this.props.api.policyDetails(function done(policies) {\r\n if (policies) {\r\n\t\tsignIn.props.onAuthenticated(signIn.state.details, policies);\r\n }\r\n\t else\r\n\t {\r\n\t\t const nextState = Object.assign({}, signIn.state, {signInType: 'failed'});\r\n\t\t\tsignIn.setState(nextState);\r\n\t }\r\n }, function notFound() {\r\n const nextState = Object.assign({}, signIn.state, {signInType: 'failed'});\r\n signIn.setState(nextState);\r\n }, function fail(xhr) {\r\n const nextState = Object.assign({}, signIn.state, {signInType: 'failed'});\r\n signIn.setState(nextState);\r\n });\r\n }\r\n\r\n handleTryAgain() {\r\n const nextState = Object.assign({}, this.state, {signInType: 'standard'});\r\n this.setState(nextState);\r\n }\r\n\r\n render() {\r\n\t if (this.state.loading)\r\n\t {\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t);\r\n\t }\r\n\t else\r\n\t {\r\n\t\tswitch(this.state.signInType) {\r\n\t\t case 'failed':\r\n\t\t\treturn (\r\n\t\t\t this.setState({signInType: 'signin'})}/>\r\n\t\t\t);\r\n\t\t case 'policy':\r\n\t\t\treturn (\r\n\t\t\t this.props.goHome()} onNoAgreementNumber={() => this.setState({signInType: 'failed'})} policyNumber={this.state.policyNumber}/>\r\n\t\t\t);\r\n\t\t case 'policyHolder':\r\n\t\t\treturn (\r\n\t\t\t this.setState({signInType: 'signin'})} onNotPolicyHolder={this.handleNotPolicyHolder}/>\r\n\t\t\t);\r\n\t\t case 'notPolicyHolder':\r\n\t\t\treturn (\r\n\t\t\t this.setState({signInType: 'policyHolder'})}/>\r\n\t\t\t);\r\n\t\t case 'yourVehicle':\r\n\t\t\treturn (\r\n\t\t\t this.setState({signInType: 'policyHolder'})} onNotYourVehicle={() => this.setState({signInType: 'failed'})} policies={this.state.policies}/>\r\n\t\t\t);\r\n\t\t case 'yourDetails':\r\n\t\t\treturn (\r\n\t\t\t this.setState({signInType: 'yourVehicle'})} surname={this.state.surname}/>\r\n\t\t\t);\r\n\t\t case 'tfa':\r\n\t\t\treturn (\r\n\t\t\t this.setState({signInType: 'yourVehicle'})} />\r\n\t\t\t);\r\n\t\t default:\r\n\t\t\treturn (\r\n\t\t\t this.props.goHome()} registrationNumber={this.state.registrationNumber} postcode={this.state.postcode} surname={this.state.surname}/>\r\n\t\t\t);\r\n\t\t}\r\n\t }\r\n }\r\n}\r\n\r\nexport default SignIn;\r\n","class ProductInfo {\r\n constructor(policies) {\r\n this.policies = policies;\r\n }\r\n\r\n policyIncluding(productName) {\r\n for (var p = 0; p < this.policies.length; p ++) {\r\n let policy = this.policies[p];\r\n for (var l = 0; l < policy.LossTypes.length; l ++) {\r\n if (policy.LossTypes[l].Name.toLowerCase().indexOf(productName) !== -1 && !policy.isPendingCancellation) {\r\n return policy;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // Set includePending to true if you want to include policies that are pending\r\n // cancellation.\r\n anyCancellablePolicies(includePending) {\r\n return (this.cancellablePolicies(includePending).length > 0);\r\n }\r\n\r\n // Set includePending to true if you want to include policies that are pending\r\n // cancellation.\r\n cancellablePolicies(includePending) {\r\n var cancellable = [];\r\n for (var i = 0; i < this.policies.length; i ++) {\r\n if (this.policies[i].isCancellable) {\r\n if (includePending || !this.policies[i].isPendingCancellation) {\r\n cancellable.push(this.policies[i]);\r\n }\r\n }\r\n }\r\n return cancellable;\r\n }\r\n\r\n // Set hasExistingClaim to true if you want to include policies that are pending\r\n // cancellation.\r\n hasExistingClaim() {\r\n var retVal = false;\r\n for (var i = 0; i < this.policies.length; i ++) {\r\n if (this.policies[i].hasExistingClaim) {\r\n retVal = true;\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n // Set hasExistingClaim to true if you want to include policies that are pending\r\n // cancellation.\r\n existingClaimEmail() {\r\n var retVal = \"\";\r\n for (var i = 0; i < this.policies.length; i ++) {\r\n if (this.policies[i].hasExistingClaim) {\r\n retVal = this.policies[i].existingClaimEmailAddress;\r\n }\r\n }\r\n return retVal;\r\n }\r\n existingClaimId() {\r\n var retVal = \"\";\r\n for (var i = 0; i < this.policies.length; i ++) {\r\n if (this.policies[i].hasExistingClaim) {\r\n retVal = this.policies[i].existingClaimId;\r\n }\r\n }\r\n return retVal;\r\n }\r\n}\r\n\r\nexport default ProductInfo;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View } from 'react-native'\r\nimport ButtonList from '../components/ButtonList';\r\nimport DefaultButton from '../components/DefaultButton';\r\nimport ScreenHeading from '../components/ScreenHeading';\r\nimport ProductInfo from '../ProductInfo';\r\nimport Para from '../components/Para'\r\nimport Styles from '../../constants/Styles'\r\n\r\nclass Options extends Component {\r\n constructor(props) {\r\n super();\r\n this.productInfo = new ProductInfo(props.policies);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please select.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t {this.personalDetails()}\r\n\t\t\t {this.vehicleDetails()}\r\n\t\t\t {this.alloy()}\r\n\t\t\t {this.gap()}\r\n\t\t\t {this.smart()}\r\n\t\t\t {this.tyre()}\r\n\t\t\t {this.cancellation()}\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n personalDetails() {\r\n return (\r\n \r\n this.props.onStartApp(\"personalDetails\", this.productInfo)}\r\n />\r\n \r\n )\r\n }\r\n\r\n vehicleDetails() {\r\n return (\r\n \r\n this.props.onStartApp(\"vehicleDetails\", this.productInfo)}\r\n />\r\n \r\n )\r\n }\r\n\r\n policyDocumentation() {\r\n return (\r\n \r\n this.props.onStartApp(\"policyDocumentation\", this.productInfo)}\r\n />\r\n \r\n )\r\n }\r\n\r\n warranty() {\r\n const policy = this.productInfo.policyIncluding(\"warrantyx\");\r\n if (policy) {\r\n return (\r\n \r\n this.props.onStartApp(\"warranty\", policy)}\r\n />\r\n \r\n )\r\n }\r\n }\r\n\r\n smart() {\r\n const policy = this.productInfo.policyIncluding(\"smart\");\r\n if (policy) {\r\n return (\r\n \r\n this.props.onStartApp(\"smart\", policy)}\r\n />\r\n \r\n )\r\n }\r\n }\r\n\r\n alloy() {\r\n const policy = this.productInfo.policyIncluding(\"alloy\");\r\n if (policy) {\r\n return (\r\n \r\n this.props.onStartApp(\"alloy\", policy)}\r\n />\r\n \r\n )\r\n }\r\n }\r\n\r\n tyre() {\r\n const policy = this.productInfo.policyIncluding(\"tyre\");\r\n if (policy) {\r\n return (\r\n \r\n this.props.onStartApp(\"tyre\", policy)}\r\n />\r\n \r\n )\r\n }\r\n }\r\n\r\n cancellation() {\r\n if (this.productInfo.anyCancellablePolicies(true)) {\r\n return (\r\n this.props.onStartApp(\"cancellation\")} />\r\n )\r\n }\r\n }\r\n\r\n gap() {\r\n const policy = this.productInfo.policyIncluding(\"gap\") || this.productInfo.policyIncluding(\"vri\");\r\n if (policy) {\r\n\t\tif (this.productInfo.hasExistingClaim())\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\r\n this.props.onStartApp(\"gapclaimed\", policy, this.productInfo.existingClaimEmail(), this.productInfo.existingClaimId())}\r\n />\r\n \r\n\t\t)\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n return (\r\n \r\n this.props.onStartApp(\"gap\", policy)}\r\n />\r\n \r\n )\r\n\t\t}\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n\r\n\r\nexport default Options;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../components/Bottom';\r\nimport DefaultButton from '../components/DefaultButton';\r\nimport ScreenHeading from '../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text, Linking } from 'react-native'\r\nimport Para from '../components/Para'\r\nimport Styles from '../../constants/Styles'\r\n\r\nclass TrustPilot extends Component {\r\n constructor() {\r\n super();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Thank you for using the customer portal\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t We would be grateful if you would leave feedback in order that we can continuously improve our processes based on your input.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t Linking.openURL(`https://uk.trustpilot.com/evaluate/autoprotect.co.uk`)}/>\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default TrustPilot;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, Text, Platform } from 'react-native'\r\nimport Para from '../components/Para'\r\nimport Styles from '../../constants/Styles'\r\nimport DateTimePickerModal from \"react-native-modal-datetime-picker\";\r\nimport DefaultButton from '../components/DefaultButton';\r\nimport VerticalSpace from '../components/VerticalSpace'\r\n\r\nclass DatePicker extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n date: props.date,\r\n formattedDate: props.date.toISOString().split('T')[0],\r\n\t pickerVisible: false\r\n };\r\n this.setDayOfMonth = this.setDayOfMonth.bind(this);\r\n this.setMonth = this.setMonth.bind(this);\r\n this.setFullYear = this.setFullYear.bind(this);\r\n\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n this.hideDatePicker = this.hideDatePicker.bind(this);\r\n this.showDatePicker = this.showDatePicker.bind(this);\r\n }\r\n\r\n render() {\r\n return (\r\n\t\t\r\n\t\t \r\n\t\t \r\n\t\t Currently selected date: {this.state.date == null ? Select date : {this.state.date.getDate()} {(this.getMonthName())} {this.state.date.getFullYear()}}\r\n\t\t \r\n\t\t\t { Platform.OS == \"web\" ?\r\n\t\t\t \r\n\t\t\t this.handlewebConfirm(e)} />\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t :\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t }\r\n\t\t \r\n\t\t\r\n );\r\n }\r\n \r\n getMonthName()\r\n {\r\n\t const monthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sept\", \"Oct\", \"Nov\", \"Dec\" ];\r\n\t \r\n\t return monthNames[this.state.date.getMonth()]\r\n }\r\n \r\n\thandleConfirm(newdate){\r\n\t\tthis.setState( {pickerVisible: false, date: newdate} );\r\n\t\tthis.props.onChange(newdate);\r\n };\r\n \r\n \thandlewebConfirm(e){\r\n\t\tvar parts = e.target.value.split('-');\r\n\t\t// Please pay attention to the month (parts[1]); JavaScript counts months from 0:\r\n\t\t// January - 0, February - 1, etc.\r\n\t\tvar mydate = new Date(parts[0], parts[1] - 1, parts[2]);\r\n\t\t\r\n\t\tthis.setState( {date: mydate, formattedDate: mydate.toISOString().split('T')[0]} );\r\n\t\tthis.props.onChange(mydate);\r\n };\r\n\r\n\r\n\thideDatePicker(){\r\n this.setState( {pickerVisible: false} );\r\n };\r\n\r\n\tshowDatePicker(){\r\n this.setState( {pickerVisible: true} );\r\n };\r\n\r\n setDayOfMonth(event) {\r\n const oldDate = this.state.date;\r\n let date = new Date(\r\n oldDate.getFullYear(), oldDate.getMonth(), event.target.value\r\n );\r\n const nextState = Object.assign({}, this.state, {date: date});\r\n this.setState(nextState);\r\n\r\n this.props.onChange(date);\r\n }\r\n\r\n setMonth(event) {\r\n const oldDate = this.state.date;\r\n let date = new Date(\r\n oldDate.getFullYear(), event.target.value, oldDate.getDate()\r\n );\r\n const nextState = Object.assign({}, this.state, {date: date});\r\n this.setState(nextState);\r\n\r\n this.props.onChange(date);\r\n }\r\n\r\n setFullYear(event) {\r\n const oldDate = this.state.date;\r\n let date = new Date(\r\n event.target.value, oldDate.getMonth(), oldDate.getDate()\r\n );\r\n const nextState = Object.assign({}, this.state, {date: date});\r\n this.setState(nextState);\r\n\r\n this.props.onChange(date);\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n textInput: {\r\n borderWidth: 1,\r\n fontSize: 16,\r\n height: 35,\r\n paddingHorizontal: 4\r\n }\r\n})\r\n\r\nexport default DatePicker;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass WarrantyDate extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n date: props.date\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t When did your vehicle's breakdown occur?\r\n\t\t\t\r\n\t\t\t this.setDate(date)}/>\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={(e) => this.props.onContinue(this.state.date)} />\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n setDate(newDate) {\r\n this.setState({date: newDate});\r\n }\r\n\r\n canSubmit() {\r\n return this.state.date <= new Date();\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n})\r\nexport default WarrantyDate;\r\n","import React, { FunctionComponent } from 'react'\r\nimport { GestureResponderEvent, Pressable, StyleSheet, Text } from 'react-native'\r\nimport Colors from '../../constants/Colors'\r\n\r\ntype SelectedButtonProps = {\r\n text: string,\r\n onClick: (event: GestureResponderEvent) => void,\r\n selected: boolean\r\n}\r\n\r\nconst SelectedButton: FunctionComponent = (props: SelectedButtonProps) => {\r\n if (props.selected == true) {\r\n return (\r\n\t\r\n {props.text}\r\n \r\n\t)\r\n } else {\r\n\treturn (\r\n \r\n {props.text}\r\n \r\n\t)\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n defaultButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n padding: 10\r\n },\r\n selectedButton: {\r\n backgroundColor: 'green',\r\n borderRadius: 4,\r\n padding: 10\r\n }\r\n})\r\n\r\nexport default SelectedButton\r\n","import React, { Component } from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport SelectedButton from '../../components/SelectedButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\n\r\nclass WarrantyFaultCategory extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\t\tAirConditioning : false,\r\n\t\tInCarentertainment_Satnav : false,\r\n\t\tBrakes : false,\r\n\t\tCentralLocking : false,\r\n\t\tClutch : false,\r\n\t\tRadiator_WaterPump : false,\r\n\t\tDriveshafts : false,\r\n\t\tEngine : false,\r\n\t\tFuel_Ignition : false,\r\n\t\tGearbox_Automatic : false,\r\n\t\tGearbox_Manual : false,\r\n\t\tLights : false,\r\n\t\tMirrors : false,\r\n\t\tSteering : false,\r\n\t\tWindows : false,\r\n\t\tWipers : false,\r\n\t\tOther : false\r\n };\r\n this.handleChosenType = this.handleChosenType.bind(this);\r\n }\r\n \r\n componentDidMount() {\r\n\tif (this.props.faultCategory != null)\r\n\t{\r\n\t\tvar a = this.props.faultCategory.split(','),\r\n\t\ti;\r\n\r\n\t\tfor (i = 0; i < a.length; i++) {\r\n\t\t\tthis.handleChosenType(null, a[i]);\r\n\t\t}\r\n\t}\r\n\t \r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t What type of fault has caused your vehicle's breakdown? (Please select one or more)\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleChosenType(e, 'Air Conditioning')}/>\r\n\t\t\t this.handleChosenType(e, 'In Car Entertainment / Satnav')}/>\r\n\t\t\t this.handleChosenType(e, 'Brakes')}/>\r\n\t\t\t this.handleChosenType(e, 'Central Locking')}/>\r\n\t\t\t this.handleChosenType(e, 'Clutch')}/>\r\n\t\t\t this.handleChosenType(e, 'Radiator / Water Pump')}/>\r\n\t\t\t this.handleChosenType(e, 'Drive Shafts')}/>\r\n\t\t\t this.handleChosenType(e, 'Engine')}/>\r\n\t\t\t this.handleChosenType(e, 'Fuel / Ignition')}/>\r\n\t\t\t this.handleChosenType(e, 'Gearbox (Automatic)')}/>\r\n\t\t\t this.handleChosenType(e, 'Gearbox (Manual)')}/>\r\n\t\t\t this.handleChosenType(e, 'Lights')}/>\r\n\t\t\t this.handleChosenType(e, 'Mirrors')}/>\r\n\t\t\t this.handleChosenType(e, 'Steering')}/>\r\n\t\t\t this.handleChosenType(e, 'Windows')}/>\r\n\t\t\t this.handleChosenType(e, 'Wipers')}/>\r\n\t\t\t this.handleChosenType(e, 'Other')}/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={(e) => this.props.onContinue(this.getChosenTypes())} />\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n handleChosenType(e, value) {\r\n if (value == \"Air Conditioning\")\r\n\t{\r\n\t\tthis.setState({AirConditioning: !this.state.AirConditioning});\r\n\t}\r\n else if (value == \"In Car Entertainment / Satnav\")\r\n\t{\r\n\t\tthis.setState({InCarentertainment_Satnav: !this.state.InCarentertainment_Satnav});\r\n\t}\r\n else if (value == \"Brakes\")\r\n\t{\r\n\t\tthis.setState({Brakes: !this.state.Brakes});\r\n\t}\r\n else if (value == \"Central Locking\")\r\n\t{\r\n\t\tthis.setState({CentralLocking: !this.state.CentralLocking});\r\n\t}\r\n else if (value == \"Clutch\")\r\n\t{\r\n\t\tthis.setState({Clutch: !this.state.Clutch});\r\n\t}\r\n else if (value == \"Radiator / Water Pump\")\r\n\t{\r\n\t\tthis.setState({Radiator_WaterPump: !this.state.Radiator_WaterPump});\r\n\t}\r\n else if (value == \"Drive Shafts\")\r\n\t{\r\n\t\tthis.setState({Driveshafts: !this.state.Driveshafts});\r\n\t}\r\n else if (value == \"Engine\")\r\n\t{\r\n\t\tthis.setState({Engine: !this.state.Engine});\r\n\t}\r\n else if (value == \"Fuel / Ignition\")\r\n\t{\r\n\t\tthis.setState({Fuel_Ignition: !this.state.Fuel_Ignition});\r\n\t}\r\n else if (value == \"Gearbox (Automatic)\")\r\n\t{\r\n\t\tthis.setState({Gearbox_Automatic: !this.state.Gearbox_Automatic});\r\n\t}\r\n else if (value == \"Gearbox (Manual)\")\r\n\t{\r\n\t\tthis.setState({Gearbox_Manual: !this.state.Gearbox_Manual});\r\n\t}\r\n else if (value == \"Lights\")\r\n\t{\r\n\t\tthis.setState({Lights: !this.state.Lights});\r\n\t}\r\n else if (value == \"Mirrors\")\r\n\t{\r\n\t\tthis.setState({Mirrors: !this.state.Mirrors});\r\n\t}\r\n else if (value == \"Steering\")\r\n\t{\r\n\t\tthis.setState({Steering: !this.state.Steering});\r\n\t}\r\n else if (value == \"Windows\")\r\n\t{\r\n\t\tthis.setState({Windows: !this.state.Windows});\r\n\t}\r\n else if (value == \"Wipers\")\r\n\t{\r\n\t\tthis.setState({Wipers: !this.state.Wipers});\r\n\t}\r\n else if (value == \"Other\")\r\n\t{\r\n\t\tthis.setState({Other: !this.state.Other});\r\n\t}\r\n }\r\n \r\n getChosenTypes()\r\n {\r\n\t var retval = \"\";\r\n\t if (this.state.AirConditioning == true)\r\n\t {\r\n\t\t retval += \"Air Conditioning,\";\r\n\t }\r\n\t if (this.state.InCarentertainment_Satnav == true)\r\n\t {\r\n\t\t retval += \"In Car Entertainment / Satnav,\";\r\n\t }\r\n\t if (this.state.Brakes == true)\r\n\t {\r\n\t\t retval += \"Brakes,\";\r\n\t }\r\n\t if (this.state.CentralLocking == true)\r\n\t {\r\n\t\t retval += \"Central Locking,\";\r\n\t }\r\n\t if (this.state.Clutch == true)\r\n\t {\r\n\t\t retval += \"Clutch,\";\r\n\t }\r\n\t if (this.state.Radiator_WaterPump == true)\r\n\t {\r\n\t\t retval += \"Radiator / Water Pump,\";\r\n\t }\r\n\t if (this.state.Driveshafts == true)\r\n\t {\r\n\t\t retval += \"Drive shafts,\";\r\n\t }\r\n\t if (this.state.Engine == true)\r\n\t {\r\n\t\t retval += \"Engine,\";\r\n\t }\r\n\t if (this.state.Fuel_Ignition == true)\r\n\t {\r\n\t\t retval += \"Fuel / Ignition,\";\r\n\t }\r\n\t if (this.state.Gearbox_Automatic == true)\r\n\t {\r\n\t\t retval += \"Gearbox (Automatic),\";\r\n\t }\r\n\t if (this.state.Gearbox_Manual == true)\r\n\t {\r\n\t\t retval += \"Gearbox (Manual),\";\r\n\t }\r\n\t if (this.state.Lights == true)\r\n\t {\r\n\t\t retval += \"Lights,\";\r\n\t }\r\n\t if (this.state.Mirrors == true)\r\n\t {\r\n\t\t retval += \"Mirrors,\";\r\n\t }\r\n\t if (this.state.Steering == true)\r\n\t {\r\n\t\t retval += \"Steering,\";\r\n\t }\r\n\t if (this.state.Windows == true)\r\n\t {\r\n\t\t retval += \"Windows,\";\r\n\t }\r\n\t if (this.state.Wipers == true)\r\n\t {\r\n\t\t retval += \"Wipers,\";\r\n\t }\r\n\t if (this.state.Other == true)\r\n\t {\r\n\t\t retval += \"Other,\";\r\n\t }\r\n\t \r\n\t if (retval.length > 0)\r\n\t {\r\n\t\t if (retval.substring(retval.length-1,1) == \",\")\r\n\t\t {\r\n\t\t\t retval = retval.slice(0, -1);\r\n\t\t }\r\n\t }\r\n\t \r\n\t return retval;\r\n }\r\n \r\n canSubmit() {\r\n\t if (this.state.AirConditioning || this.state.InCarentertainment_Satnav || this.state.Brakes || this.state.CentralLocking || this.state.Clutch || this.state.Radiator_WaterPump || this.state.Driveshafts || this.state.Engine || this.state.Fuel_Ignition || this.state.Gearbox_Automatic || this.state.Gearbox_Manual || this.state.Lights || this.state.Mirrors || this.state.Steering || this.state.Windows || this.state.Wipers || this.state.Other)\r\n\t {\r\n\t\treturn true;\r\n\t }\r\n\t else\r\n\t {\r\n\t\t return false;\r\n\t }\r\n }\r\n}\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default WarrantyFaultCategory;\r\n","import React, { Component, useEffect } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text, TextInput } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\n\r\nclass WarrantyAdditionalInfo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n additionalInfo: props.additionalInfo\r\n };\r\n }\r\n\r\n additionalInfoChanged(value) {\r\n this.setState({additionalInfo: value});\r\n }\r\n \r\n canSubmit() {\r\n return (\r\n true\r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Is there any other information that you would like to let us know?\r\n\t\t\t\r\n\t\t\t this.additionalInfoChanged(e)} value={this.state.additionalInfo}>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={() => this.props.onSubmit(this.state.additionalInfo)}/>\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\ntextInput: {\r\n borderWidth: 1,\r\n fontSize: 16,\r\n height: 140,\r\n padding: 5,\r\n\tpaddingBottom: 15,\r\n\ttextAlignVertical: 'top'\r\n }\r\n})\r\nexport default WarrantyAdditionalInfo;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text, TextInput } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\n\r\nclass WarrantyLocation extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n vehicleLocation: props.vehicleLocation\r\n };\r\n }\r\n\r\n vehicleLocationChanged(value) {\r\n this.setState({vehicleLocation: value});\r\n }\r\n\r\n canSubmit() {\r\n return this.state.vehicleLocation.length > 3;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t What is the current location of your vehicle?\r\n\t\t\t\r\n\t\t\t\t this.vehicleLocationChanged(e)} value={this.state.vehicleLocation}>\r\n\t\t\t\t\r\n\t\t\tPlease enter a minimum of 3 characters\r\n\t\t\t{this.keepTyping()}\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={() => this.props.onContinue(this.state.vehicleLocation)}/>\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n keepTyping() {\r\n const d = this.state.vehicleLocation;\r\n if (d.length === 0 || d.length > 3) {\r\n return null;\r\n } else if (d.length === 3) {\r\n return (Keep typing (1 character to go));\r\n } else {\r\n return (Keep typing ({3 - d.length} characters to go));\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\ntextInput: {\r\n borderWidth: 1,\r\n fontSize: 16,\r\n height: 140,\r\n padding: 5,\r\n\tpaddingBottom: 15,\r\n\ttextAlignVertical: 'top'\r\n }\r\n})\r\n\r\nexport default WarrantyLocation;\r\n","import React, { Component } from 'react';\r\nimport popupclosebutton from '../icon-close2.png'\r\nimport { Image, StyleSheet, View, Dimensions, TouchableOpacity } from 'react-native'\r\n//import Dialog from \"react-native-dialog\";\r\n\r\nclass PhotoPreviewManage extends Component {\r\n\t\r\n\tconstructor(props) {\r\n // Required step: always call the parent class' constructor\r\n super(props);\r\n\r\n // Set the state directly. Use props if necessary.\r\n this.state = {\r\n isOpen: false\r\n }\r\n }\r\n\t/*state = { isOpen: false };\r\n\r\n handleShowDialog = () => {\r\n this.setState({ isOpen: !this.state.isOpen });\r\n console.log(\"clicked\");\r\n };*/\r\n\t handleShowDialog = () => {\r\n\t\tconsole.log(\"clicked\");\r\n\t\tthis.setState({ isOpen: !this.state.isOpen });\r\n\t };\r\n \r\n render() {\r\n\t const dimensions = Dimensions.get('window');\r\n\r\n const imageWidth = (dimensions.width - 80);\r\n if (this.props.data) {\r\n return(\r\n \r\n\t\t\t\r\n\t\t\t\t{'Preview'}\r\n\t\t\t\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%'\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '100%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n\r\nexport default PhotoPreviewManage;\r\n","import React from 'react';\r\nimport DefaultButton from './DefaultButton';\r\nimport PhotoPreviewManage from './PhotoPreviewManage';\r\nimport PhotosBadgeSelected from './PhotosBadgeSelected';\r\nimport { Image, StyleSheet, View, TouchableOpacity } from 'react-native'\r\n\r\nimport popupclosebutton from '../icon-close2.png'\r\n\r\nfunction PhotoPreviewWithDeleteNew(props) {\r\n return (\r\n \r\n \r\n\t\t props.onDelete(props.index)} style={{ position: 'absolute', zIndex: 99, top: -35, left: 0, height: 70, width: 70, paddingTop: 0, marginTop: 40}}>\r\n\t\t\t\"Delete\"\r\n\t\t\r\n\t\t\r\n \r\n );\r\n}\r\n\r\nexport default PhotoPreviewWithDeleteNew;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, Platform } from 'react-native'\r\nimport Bottom from './Bottom';\r\nimport ButtonList from './ButtonList';\r\nimport ConditionalButton from './ConditionalButton'\r\nimport DefaultButton from './DefaultButton';\r\n//import PhotoUpload from './PhotoUpload';\r\nimport PhotoPreviewWithDeleteNew from './PhotoPreviewWithDeleteNew';\r\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\r\nimport Styles from '../../constants/Styles'\r\nimport NavigationBar from './NavigationBar'\r\nimport ScreenHeading from './ScreenHeading'\r\nimport Para from './Para'\r\nimport VerticalSpace from './VerticalSpace'\r\nimport * as ImagePicker from 'expo-image-picker'\r\n\r\nclass MultiplePhotoUploadTogether extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n photos: props.photos,\r\n addingPhoto: props.photos.length === 0,\r\n\t errorDisplay: 'none',\r\n\t heading: props.heading,\r\n };\r\n\r\n this.removePhoto = this.removePhoto.bind(this);\r\n\tthis.pickImage = this.pickImage.bind(this);\r\n\tthis.isValidImage = this.isValidImage.bind(this);\r\n\tthis.setErrorDisplay = this.setErrorDisplay.bind(this);\r\n }\r\n \r\n setErrorDisplay(val)\r\n {\r\n\t\tthis.setState({errorDisplay: val});\r\n }\r\n\r\n onPhotoUploaded(data) {\r\n var photos = this.state.photos.slice();\r\n photos.push(data);\r\n this.setState({photos: photos, addingPhoto: false});\r\n }\r\n\r\n addPhoto() {\r\n this.setState({addingPhoto: true});\r\n }\r\n\r\n cancelAddPhoto() {\r\n this.setState({addingPhoto: false});\r\n }\r\n\r\n removePhoto(index) {\r\n\t console.log('2')\r\n let photos = this.state.photos.slice();\r\n photos.splice(index, 1);\r\n this.setState({photos: photos});\r\n }\r\n\r\n onDone() {\r\n this.props.onDone(this.state.photos);\r\n }\r\n\r\n render() {\r\n return this.multiplePhotoUploadTogether();\r\n }\r\n \r\n async pickImage() {\r\n const result : any = await ImagePicker.launchImageLibraryAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\tif (this.isValidImage(result.assets[0].uri))\r\n\t\t{\r\n\t\t\tif (Platform.OS != \"web\")\r\n\t\t\t{\r\n\t\t\t\tthis.onPhotoUploaded('data:image/jpeg;base64,' + result.assets[0].base64)\r\n\t\t\t\tconsole.log(result.assets[0]);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.onPhotoUploaded(result.assets[0].uri)\r\n\t\t\t\tconsole.log(result.assets[0]);\r\n\t\t\t}\r\n\t\t\tthis.setErrorDisplay('none')\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n\r\n isValidImage(dataURI){\r\n\t return true;\r\n\t var retVal = false;\r\n var byteString;\r\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\r\n byteString = atob(dataURI.split(',')[1]);\r\n } else {\r\n byteString = unescape(dataURI.split(',')[1]);\r\n }\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\t\r\n\tif (mimeString == 'image/jpeg' || mimeString == 'image/png')\r\n\t{\r\n\t\tretVal = true;\r\n\t}\r\n\treturn retVal;\r\n }\r\n\r\n multiplePhotoUploadTogether() {\r\n const photos = this.state.photos;\r\n\tconsole.log(photos.length)\r\n var previews = [];\r\n for (var i = 0; i < photos.length; i ++) {\r\n previews.push(\r\n \r\n );\r\n }\r\n return(\r\n \r\n\t \r\n \r\n \r\n You can select an image to expand it, or press the cross to delete it.\r\n \r\n\t\t\r\n\t\t{previews}\r\n\t\t\r\n\t\t \r\n\t\t this.state.photos.length < 2} onClick={this.pickImage}/>\r\n\t\t Invalid file type, please upload a jpg or png file\r\n\t\t \r\n\t\t this.onDone()}/>\r\n \r\n \r\n \t\r\n\t\r\n\t);\r\n }\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n\r\nexport default MultiplePhotoUploadTogether;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\r\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\r\nimport * as ImagePicker from 'expo-image-picker'\r\nimport OptionsMenu from \"react-native-options-menu\";\r\nimport store, { RootState } from '../../../redux/Store'\r\nimport { addPhoto, clearPhotos } from '../../../redux/SmartClaimSlice'\r\nimport NavigationBar from '../../components/NavigationBar'\r\nimport Para from '../../components/Para'\r\nimport ScreenHeading from '../../components/ScreenHeading'\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\nimport Styles from '../../../constants/Styles'\r\nimport ConditionalButton from '../../components/ConditionalButton'\r\nimport MultiplePhotoUploadTogether from '../../components/MultiplePhotoUploadTogether';\r\nimport { useSelector } from 'react-redux'\r\n\r\ninterface WarrantyPhotosProps {\r\n navigation: any\r\n onContinue: Function\r\n goHome: Function\r\n goBack: Function\r\n}\r\n\r\nexport default function WarrantyPhotos ({ navigation, onContinue, goHome, goBack }: WarrantyPhotosProps) {\r\n const images = useSelector((state: RootState) => state.smartClaim.value.allPhotos)\r\n const [managingPhotos, setManagingPhotos] = useState(false)\r\n const [errordisplay, setErrorDisplay] = useState('none')\r\n\r\n const emptyFunction = () => {}\r\n const canContinue = () => images.length > 0\r\n const canUpload = () => {\r\n images.length < 2\r\n ? pickImage()\r\n : alert('You have already uploaded 2 photos. Select Manage Photos to view or remove uploaded photos.')\r\n }\r\n const canTake = () => {\r\n images.length < 2\r\n ? takePhoto()\r\n : alert('You have already uploaded 2 photos. Select Manage Photos to view or remove uploaded photos.')\r\n }\r\n \r\n function doContinue()\r\n {\r\n\t onContinue(images)\r\n }\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if (Platform.OS !== 'web') {\r\n const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync()\r\n if (status !== 'granted') {\r\n alert('Sorry, we need camera roll permissions to make this work!')\r\n }\r\n\t\telse\r\n\t\t{\r\n\t\t\tconst camstatus = await ImagePicker.requestCameraPermissionsAsync()\r\n\t\t\tif (camstatus.status !== 'granted') {\r\n\t\t\t alert('Sorry, we need camera roll permissions to make this work!')\r\n\t\t\t}\r\n\t\t}\r\n }\r\n })()\r\n }, [])\r\n\r\n const pickImage = async () => {\r\n const result : any = await ImagePicker.launchImageLibraryAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.All,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\t//console.log(result);\r\n\t\tif (isValidImage(result.assets[0].uri))\r\n\t\t{\r\n // check file type! (validation method)\r\n\t\t\tif (Platform.OS != \"web\")\r\n\t\t\t{\r\n\t\t\t\tstore.dispatch(addPhoto('data:image/jpeg;base64,' + result.assets[0].base64))\r\n\t\t\t\t//console.log(result.base64);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tstore.dispatch(addPhoto(result.assets[0].uri))\r\n\t\t\t\t//console.log(result.uri);\r\n\t\t\t}\r\n\t\t\tsetErrorDisplay('none')\r\n\t\t}\r\n\t\telse {\r\n\t setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n \r\n const takePhoto = async () => {\r\n const result : any = await ImagePicker.launchCameraAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.All,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\t//console.log(result);\r\n\t\tif (isValidImage(result.uri))\r\n\t\t{\r\n // check file type! (validation method)\r\n\t\tconsole.log(Platform.OS);\r\n\t\t\tif (Platform.OS == \"android\")\r\n\t\t\t{\r\n\t\t\t\tstore.dispatch(addPhoto('data:image/jpeg;base64,' + result.base64))\r\n\t\t\t\t//console.log(result.base64);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tstore.dispatch(addPhoto(result.uri))\r\n\t\t\t\t//console.log(result.uri);\r\n\t\t\t}\r\n\t\t\tsetErrorDisplay('none')\r\n\t\t}\r\n\t\telse {\r\n\t setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n \r\n function isValidImage(dataURI){\r\n\t return true;\r\n\t var retVal = false;\r\n var byteString;\r\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\r\n byteString = atob(dataURI.split(',')[1]);\r\n } else {\r\n byteString = unescape(dataURI.split(',')[1]);\r\n }\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\t\r\n\tif (mimeString == 'image/jpeg' || mimeString == 'image/png')\r\n\t{\r\n\t\tretVal = true;\r\n\t}\r\n\treturn retVal;\r\n }\r\n \r\n const managePhotos = () => {\r\n\t\t//if (Platform.OS == \"web\")\r\n\t\t//{\r\n\t\t\tsetManagingPhotos(true)\r\n\t\t//}\r\n }\r\n\r\n const managePhotosDone = (photos) => {\r\n\t setManagingPhotos(false)\r\n\t store.dispatch(clearPhotos())\r\n\t\tfor (var i = 0; i < photos.length; i ++) {\r\n\t\t store.dispatch(addPhoto(photos[i]))\r\n\t\t}\r\n }\r\n \r\n if (managingPhotos) {\r\n return(\r\n \r\n );\r\n } \r\n\telse {\r\n return (\r\n \r\n \r\n \r\n \r\n Please upload a photo of your vehicle's speedometer, showing the current mileage.\r\n \r\n \r\n \r\n \r\n \r\n \r\n Upload / take photo\r\n\t\t\tInvalid file type, please upload a jpg or png file\r\n \r\n\t\t \r\n \r\n \r\n \r\n {/* extract this to own component? */}\r\n \r\n {images.length}\r\n \r\n \r\n\t\t\tManage photos\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\t)\r\n}\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%'\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '45%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n","import React, {Component} from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport Heading from '../../components/Heading';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass WarrantyFail extends Component {\r\n render() {\r\n return(\r\n \r\n\t\t\tError\r\n\t\t\t\r\n\t\t\t Unfortunately there was an error\r\n\t\t\t submitting your claim. Please contact\r\n\t\t\t us by phone instead.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default WarrantyFail;\r\n","import React from 'react';\r\nimport ScreenHeading from './ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from './Para'\r\nimport Heading from './Heading'\r\nimport Styles from '../../constants/Styles'\r\n\r\nfunction Submitting(props) {\r\n return (\r\n \r\n\t \r\n\t\t\r\n\t\t Submitting...\r\n\t\t \r\n\t\t\tPlease wait while your claim is being submitted.\r\n\t\t \r\n\t\t {props.content}\r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default Submitting;\r\n","import React from 'react';\r\nimport WarrantyFail from './WarrantyFail';\r\nimport Submitting from '../../components/Submitting';\r\nimport Para from '../../components/Para';\r\nimport Heading from '../../components/Heading';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\r\nimport Styles from '../../../constants/Styles'\r\nimport * as Progress from 'react-native-progress';\r\n\r\nfunction WarrantySubmitting(props) {\r\n return (\r\n \r\n\t \r\n\t\t\r\n\t\t Submitting...\r\n\t\t \r\n\t\t\tPlease wait while your claim is being submitted.\r\n\t\t \r\n\t\t\tUpload progress:\r\n\t\t\tPhoto: ({Math.floor(props.photoUploadProgress*100).toString()}%)\r\n\t\t\t\r\n\t\t\t\t{props.photoUploadFailed == false ? null :\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\n\r\nexport default WarrantySubmitting;","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction WarrantyThanks(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tThank you, we have received your warranty claim\r\n\t\t \r\n\t\t \r\n\t\t\tWe'll review the information and image you sent us within the next two working days.\r\n\t\t \r\n\t\t \r\n\t\t\tIf there's anything else we need, we'll be in touch.\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t \r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default WarrantyThanks;\r\n","import React, { Component } from 'react';\r\n\r\nimport WarrantyDate from './WarrantyDate';\r\nimport WarrantyFaultCategory from './WarrantyFaultCategory';\r\nimport WarrantyAdditionalInfo from './WarrantyAdditionalInfo';\r\nimport WarrantyLocation from './WarrantyLocation';\r\nimport WarrantyPhoto from './WarrantyPhoto';\r\nimport WarrantySubmitting from './WarrantySubmitting';\r\nimport WarrantyThanks from './WarrantyThanks';\r\nimport WarrantyFail from './WarrantyFail';\r\n\r\nclass Warranty extends Component {\r\n constructor() {\r\n super();\r\n\t\r\n this.state = this.freshState();\r\n\r\n this.handleChosenDate = this.handleChosenDate.bind(this);\r\n this.handleFaultCategory = this.handleFaultCategory.bind(this);\r\n this.handleAdditionalInfo = this.handleAdditionalInfo.bind(this);\r\n this.handlePhotoUpload = this.handlePhotoUpload.bind(this);\r\n this.handleLocationInput = this.handleLocationInput.bind(this);\r\n this.apiFail = this.apiFail.bind(this);\r\n this.uploadProgress = this.uploadProgress.bind(this);\r\n this.retryPhotos = this.retryPhotos.bind(this);\r\n\r\n };\r\n\r\n freshState() {\r\n return {\r\n stage: 'chooseDate',\r\n additionalInfo: '',\r\n faultCategory: null,\r\n vehicleLocation: '',\r\n photo: [],\r\n date: new Date(),\r\n\t photoUploadProgress: 0,\r\n\t photoUploadFailed: false,\r\n claimId: null\r\n };\r\n }\r\n\r\n handleChosenDate(date) {\r\n this.setState({stage: 'faultCategory', date: date});\r\n }\r\n\r\n handleFaultCategory(faultCategory) {\r\n this.setState({stage: 'additionalInfo', faultCategory: faultCategory});\r\n }\r\n \r\n handleAdditionalInfo(additionalInfo) {\r\n this.setState({stage: 'location', additionalInfo: additionalInfo});\r\n }\r\n\r\n handlePhotoUpload(photo) {\r\n const nextState = Object.assign(\r\n {}, this.state, {stage: 'submitting', photo: photo}\r\n );\r\n this.setState(nextState);\r\n this.submitClaim(nextState);\r\n }\r\n\r\n handleLocationInput(vehicleLocation) {\r\n const nextState = Object.assign(\r\n {}, this.state, {\r\n stage: 'photoUpload',\r\n vehicleLocation: vehicleLocation\r\n }\r\n );\r\n this.setState(nextState);\r\n }\r\n\r\n startAgain() {\r\n var state = this.freshState();\r\n state.stage = 'chooseDate';\r\n this.setState(state);\r\n }\r\n\r\n render() {\r\n if (this.state.stage === 'chooseDate') {\r\n return this.props.onDone()}/>;\r\n } else if (this.state.stage === 'faultCategory') {\r\n return this.setState({stage: 'chooseDate'})}/>;\r\n } else if (this.state.stage === 'additionalInfo') {\r\n return this.setState({stage: 'faultCategory'})}/>;\r\n } else if (this.state.stage === 'location') {\r\n return this.setState({stage: 'additionalInfo'})}/>;\r\n } else if (this.state.stage === 'photoUpload') {\r\n return this.setState({stage: 'location'})}/>;\r\n } else if (this.state.stage === 'submitting') {\r\n return this.setState({stage: 'photoUpload'})}/>;\r\n } else if (this.state.stage === 'thanks') {\r\n return this.props.onDone()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'fail') {\r\n return this.setState({'stage': 'chooseDate'})} goBack={() => this.props.onDone()}/>;\r\n }\r\n }\r\n\r\n submitClaim(state) {\r\n const component = this;\r\n this.props.api.warrantyClaim(\r\n this.props.policy,\r\n state.date,\r\n state.faultCategory,\r\n state.additionalInfo,\r\n\t state.vehicleLocation,\r\n function done(data) {\r\n state.claimId = data.claim_id;\r\n component.setState(state);\r\n component.submitPhotos(state);\r\n },\r\n component.apiFail\r\n );\r\n }\r\n\r\n apiFail(xhr) {\r\n console.log(xhr);\r\n this.setState({stage: 'fail'});\r\n }\r\n\r\n submitPhotos(state) {\r\n const component = this;\r\n const photos =\r\n state.photo.map(function(p) { return {type: 'speedometer', data: p}; });\r\n component.props.api.uploadPhotos(\r\n component.props.api.warrantyPhoto,\r\n state.claimId,\r\n photos,\r\n function done() { component.setState({stage: 'thanks'}) },\r\n component.apiFail,\r\n\t component.uploadProgress\r\n );\r\n }\r\n \r\n retryPhotos()\r\n {\r\n\t const nextState = Object.assign(\r\n {}, this.state, {\r\n photoUploadFailed: false\r\n }\r\n );\r\n\t \r\n\t this.setState(nextState)\r\n this.submitClaim(nextState);\r\n }\r\n\r\n uploadProgress(photoType, loaded, total)\r\n {\r\n\t let pc = loaded / total\r\n\t console.log(pc)\r\n\t this.setState({photoUploadProgress: pc})\r\n }\r\n}\r\n\r\nexport default Warranty;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction AlloySplash(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tWe're sorry that your alloy wheels have been damaged.\r\n\t\t \r\n\t\t \r\n\t\t\tTo help us arrange a repair we need you to provide:\r\n\t\t \r\n\t\t\t\r\n\t\t\t\t• Details of the incident.\r\n\t\t\t\t• Images of the damage.\r\n\t\t\t\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloySplash;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyIntro extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Before submitting your claim please check your terms and conditions to confirm the damage fits within the limits described. These were supplied when you purchased the product/s.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tThen click continue.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyIntro;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyDate extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n date: props.date\r\n };\r\n }\r\n\r\n render() {\r\n\t console.log(this.state.date)\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t When did you notice the damage?\r\n\t\t\t\r\n\t\t\t this.setDate(date)}/>\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={(e) => this.props.onSubmit(this.state.date)} />\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n setDate(newDate) {\r\n this.setState({date: newDate});\r\n }\r\n\r\n canSubmit() {\r\n return this.state.date <= new Date();\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyDate;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text, TextInput } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyDamageDescription extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n description: props.description\r\n };\r\n }\r\n\r\n descriptionChanged(value) {\r\n this.setState({description: value});\r\n }\r\n\r\n canSubmit() {\r\n return this.state.description.length > 8;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t \r\n\t\t\t\r\n\t\t\t Please enter a brief description of how the damage occurred.\r\n\t\t\t\r\n\t\t\t this.descriptionChanged(e)} value={this.state.description}>\r\n\t\t\t\r\n\t\t\tPlease enter a minimum of 9 characters\r\n\t\t\t{this.keepTyping()}\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={() => this.props.onContinue(this.state.description)}/>\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n keepTyping() {\r\n const d = this.state.description;\r\n if (d.length === 0 || d.length > 8) {\r\n return null;\r\n } else if (d.length === 8) {\r\n return (Keep typing (1 character to go));\r\n } else {\r\n return (Keep typing ({9 - d.length} characters to go));\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\ntextInput: {\r\n borderWidth: 1,\r\n fontSize: 16,\r\n height: 140,\r\n padding: 5,\r\n\tpaddingBottom: 15,\r\n\ttextAlignVertical: 'top'\r\n }\r\n})\r\n\r\nexport default AlloyDamageDescription;\r\n","import React, { Component } from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyDamageType extends Component {\r\n constructor() {\r\n super();\r\n this.handleChosenType = this.handleChosenType.bind(this);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please select the type of damage.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleChosenType('Scuff')}/>\r\n\t\t\t this.handleChosenType('Buckled')}/>\r\n\t\t\t this.handleChosenType('Cracked')}/>\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n handleChosenType(value) {\r\n this.props.onChosen(value);\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyDamageType;\r\n","import React, { Component } from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyWheelType extends Component {\r\n constructor() {\r\n super();\r\n this.handleChosenType = this.handleChosenType.bind(this);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please select the type of wheel.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleChosenType('Diamond cut')}/>\r\n\t\t\t this.handleChosenType('Painted')}/>\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n handleChosenType(value) {\r\n this.props.onChosen(value);\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyWheelType;\r\n","import React, { Component } from 'react';\r\n\r\n\r\nimport { Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\n\r\nclass AlloyWheelChoice extends Component {\r\n render() {\r\n return (\r\n this.props.onChosen(this.props.label)} style={styles.rowInnerContainer}>\r\n \r\n \r\n \r\n\t\t\t{this.props.label}\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%'\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '45%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n\r\n\r\nexport default AlloyWheelChoice;\r\n","import React, { Component } from 'react';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport AlloyWheelChoice from './AlloyWheelChoice';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyChooseWheel extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n\t\t \r\n\t\t\t\r\n\t\t\t Please tap an image to indicate for which alloy wheel you're claiming.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%',\r\n\tpaddingTop: 20,\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '45%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n\r\nexport default AlloyChooseWheel;\r\n","import React, { Component } from 'react';\r\nimport popupclosebutton from '../icon-close.png'\r\nimport { StyleSheet, View, Text, Pressable, Image } from 'react-native'\r\nimport Styles from '../../constants/Styles'\r\n\r\nclass PhotoPreview extends Component {\r\n\t\r\n\tconstructor(props) {\r\n // Required step: always call the parent class' constructor\r\n super(props);\r\n\r\n // Set the state directly. Use props if necessary.\r\n this.state = {\r\n isOpen: false\r\n }\r\n\t const handleShowDialog = () => {\r\n\t\tthis.setState({ isOpen: !this.state.isOpen });\r\n\t };\r\n }\r\n\r\n \r\n \r\n render() {\r\n if (this.props.data) {\r\n return(\r\n \r\n\t\t\t\t\r\n\t\t\t\t {'Preview'}\r\n\t\t\t\t\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%'\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '100%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n\r\nexport default PhotoPreview;\r\n","import React, { Component } from 'react';\r\nimport Bottom from './Bottom';\r\nimport ButtonList from './ButtonList';\r\nimport ConditionalButton from './ConditionalButton';\r\nimport DefaultButton from './DefaultButton';\r\nimport PhotoPreview from './PhotoPreview';\r\nimport Para from './Para'\r\nimport * as ImagePicker from 'expo-image-picker'\r\nimport $ from 'jquery';\r\nimport { StyleSheet, View, Text, Pressable, Platform } from 'react-native'\r\nimport Styles from '../../constants/Styles'\r\nimport OptionsMenu from \"react-native-options-menu\";\r\nimport VerticalSpace from './VerticalSpace'\r\n\r\nclass PhotoUpload extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n data: props.data,\r\n\t errordisplay: 'none'\r\n };\r\n\t\r\n\tthis.pickImage = this.pickImage.bind(this);\r\n\tthis.takePhoto = this.takePhoto.bind(this);\r\n }\r\n\r\n fileChanged(event) {\r\n\tvar ext = document.getElementById('fileUpload').value.split('.').pop().toLowerCase();\r\n\tif($.inArray(ext, ['png','jpg','jpeg']) == -1) {\r\n document.getElementById('fileTypeError').style.display = \"block\";\r\n\t\t\tthis.state.data = null;\r\n this.value='';\r\n\t\t\treturn;\r\n\t}\r\n\t\r\n let component = this;\r\n $.each(event.target.files, function(index, file) {\r\n var reader = new FileReader();\r\n reader.onload = function(event) {\r\n component.setState({data: event.target.result});\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n \r\n async pickImage() {\r\n\tlet component = this;\r\n const result : any = await ImagePicker.launchImageLibraryAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.All,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\tif (isValidImage(result.assets[0].uri))\r\n\t\t{\r\n // check file type! (validation method)\r\n\t\t\t//if (Platform.OS != \"web\")\r\n\t\t\t{\r\n\t\t\t\t//store.dispatch(addPhoto('data:image/jpeg;base64,' + result.base64))\r\n\t\t\t\tcomponent.setState({data: 'data:image/jpeg;base64,' + result.assets[0].base64});\r\n\t\t\t}\r\n\t\t\t/*else\r\n\t\t\t{\r\n//\t\t\t\tstore.dispatch(addPhoto(result.uri))\r\n\t\t\t\tcomponent.setState({data: result.assets[0].uri});\r\n\r\n\t\t\t}*/\r\n\t\t\tcomponent.setErrorDisplay('none')\r\n\t\t}\r\n\t\telse {\r\n\t component.setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n \r\n setErrorDisplay(value)\r\n {\r\n\t this.setState({errordisplay: value});\r\n }\r\n \r\n async takePhoto() {\r\n\tlet component = this;\r\n const result : any = await ImagePicker.launchCameraAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.All,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\t//console.log(result);\r\n\t\tif (isValidImage(result.assets[0].uri))\r\n\t\t{\r\n // check file type! (validation method)\r\n\t\t\tif (Platform.OS != \"web\")\r\n\t\t\t{\r\n\t\t\t\tcomponent.setState({data: 'data:image/jpeg;base64,' + result.assets[0].base64});\r\n\t\t\t\t//store.dispatch(addPhoto('data:image/jpeg;base64,' + result.base64))\r\n\t\t\t\t//console.log(result.base64);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tcomponent.setState({data: result.assets[0].uri});\r\n\t\t\t\t//store.dispatch(addPhoto(result.uri))\r\n\t\t\t\t//console.log(result.uri);\r\n\t\t\t}\r\n\t\t\tcomponent.setErrorDisplay('none')\r\n\t\t}\r\n\t\telse {\r\n\t component.setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n \r\n emptyFunction()\r\n {\r\n\t \r\n }\r\n \r\n render() {\r\n\tconst uploadButton = ( {'Select File'})\r\n return(\r\n \r\n\t { Platform.OS == \"web\" ?\r\n\t\t\r\n\t\t {'Select File'}\r\n\t\t\r\n\t :\r\n \r\n \r\n \r\n\t }\r\n\t\tOnly jpg or png files can be uploaded\r\n \r\n\t\t\t\r\n \r\n\t\t\r\n \r\n \r\n \r\n this.state.data} onClick={() => this.props.onUpload(this.state.data)}/>\r\n \r\n \r\n this.props.onCancel()}/>\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n function isValidImage(dataURI){\r\n\t return true;\r\n\t var retVal = false;\r\n var byteString;\r\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\r\n byteString = atob(dataURI.split(',')[1]);\r\n } else {\r\n byteString = unescape(dataURI.split(',')[1]);\r\n }\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\t\r\n\tif (mimeString == 'image/jpeg' || mimeString == 'image/png')\r\n\t{\r\n\t\tretVal = true;\r\n\t}\r\n\treturn retVal;\r\n }\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%'\r\n },\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n defaultButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n padding: 10\r\n }\r\n})\r\n\r\nexport default PhotoUpload;\r\n","import React from 'react';\r\nimport DefaultButton from './DefaultButton';\r\nimport PhotoPreview from './PhotoPreview';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Styles from '../../constants/Styles'\r\n\r\nfunction PhotoPreviewWithDelete(props) {\r\n return (\r\n \r\n \r\n\t\t props.onDelete(props.index)}/>\r\n \r\n );\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n deleteButton: {\r\n backgroundColor: '#d54b55',\r\n borderRadius: 4,\r\n padding: 10\r\n }\r\n})\r\n\r\nexport default PhotoPreviewWithDelete;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, Platform } from 'react-native'\r\nimport Bottom from './Bottom';\r\nimport ButtonList from './ButtonList';\r\nimport ConditionalButton from './ConditionalButton';\r\nimport DefaultButton from './DefaultButton';\r\nimport PhotoUpload from './PhotoUpload';\r\nimport Para from './Para';\r\nimport PhotoPreviewWithDelete from './PhotoPreviewWithDelete';\r\nimport ScreenHeading from './ScreenHeading';\r\nimport Styles from '../../constants/Styles'\r\n\r\nclass MultiplePhotoUpload extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n photos: props.photos,\r\n addingPhoto: props.photos.length === 0\r\n };\r\n\r\n this.removePhoto = this.removePhoto.bind(this);\r\n }\r\n\r\n onPhotoUploaded(data) {\r\n var photos = this.state.photos.slice();\r\n photos.push(data);\r\n this.setState({photos: photos, addingPhoto: false});\r\n }\r\n\r\n addPhoto() {\r\n this.setState({addingPhoto: true});\r\n }\r\n\r\n cancelAddPhoto() {\r\n this.setState({addingPhoto: false});\r\n }\r\n\r\n removePhoto(index) {\r\n let photos = this.state.photos.slice();\r\n photos.splice(index, 1);\r\n this.setState({photos: photos});\r\n }\r\n\r\n onDone() {\r\n this.props.onDone(this.state.photos);\r\n }\r\n\r\n render() {\r\n if (this.state.addingPhoto) {\r\n return (\r\n \r\n \r\n\t\t\t\r\n\t\t\t Please upload a {this.props.photo} photo.\r\n\t\t\t this.onPhotoUploaded(data)} onCancel={() => this.cancelAddPhoto()}/>\r\n\t\t\t\r\n \r\n );\r\n } else {\r\n return this.multiplePhotoUpload();\r\n }\r\n }\r\n\r\n multiplePhotoUpload() {\r\n const photos = this.state.photos;\r\n var previews = [];\r\n for (var i = 0; i < photos.length; i ++) {\r\n previews.push(\r\n \r\n );\r\n }\r\n return(\r\n \r\n \r\n\t\t\r\n\t\t\tYour {this.props.photo} photos:\r\n\t\t\t{previews}\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t this.state.photos.length < 2} onClick={() => this.addPhoto()}/>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t this.onDone()}/>\r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default MultiplePhotoUpload;\r\n","import React, { Component } from 'react';\r\n\r\nclass PhotosBadge extends Component {\r\n render() {\r\n return(\r\n
\r\n {this.props.count}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PhotosBadge;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport MultiplePhotoUpload from '../../components/MultiplePhotoUpload';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport Heading from '../../components/Heading';\r\nimport PhotosBadge from '../../components/PhotosBadge';\r\nimport { Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\r\nimport Styles from '../../../constants/Styles'\r\nimport Para from '../../components/Para'\r\n\r\nconst fileTypes = [\"JPG\", \"PNG\", \"GIF\"];\r\n\r\nclass AlloyPhotos extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n fullWheelPhotos: [],\r\n closeUpPhotos: [],\r\n currentPhoto: null\r\n };\r\n }\r\n\r\n addPhoto(whichPhoto) {\r\n this.setState({currentPhoto: whichPhoto});\r\n }\r\n\r\n addPhotoWithFile(whichPhoto, acceptedFiles) {\r\n\tfor (var i = 0; i < acceptedFiles.length; i++) {\r\n\t\tthis.onDoneDraggingPhoto(whichPhoto, acceptedFiles[i]);\r\n\t}\r\n }\r\n\r\n onDoneAddingPhotos(photos) {\r\n var nextState = {currentPhoto: null};\r\n if (this.state.currentPhoto === 'full wheel') {\r\n nextState.fullWheelPhotos = photos;\r\n } else if (this.state.currentPhoto === 'close up') {\r\n nextState.closeUpPhotos = photos;\r\n }\r\n this.setState(nextState);\r\n }\r\n\r\n onDoneDraggingPhoto(whichPhoto, photo) {\r\n\t console.log('test')\r\n\t\tconst reader = new FileReader()\t\r\n\t\treader.onload = () => {\r\n // Do whatever you want with the file contents\r\n const binaryStr = reader.result\r\n\t\t\t\tvar nextState = {currentPhoto: null};\r\n\t\t\t\tif (whichPhoto === 'full wheel') {\r\n\t\t\t\t nextState.fullWheelPhotos = this.state.fullWheelPhotos;\r\n\t\t\t\t\tif (!nextState.fullWheelPhotos.includes(binaryStr))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnextState.fullWheelPhotos.push(binaryStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (whichPhoto === 'close up') {\r\n\t\t\t\t nextState.closeUpPhotos = this.state.closeUpPhotos;\r\n\t\t\t\t\tif (!nextState.closeUpPhotos.includes(binaryStr))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnextState.closeUpPhotos.push(binaryStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.setState(nextState);\r\n }\r\n\r\n reader.readAsDataURL(photo);\r\n\t \r\n}\r\n\r\n currentPhotos() {\r\n if (this.state.currentPhoto === 'full wheel') {\r\n return this.state.fullWheelPhotos;\r\n } else if (this.state.currentPhoto === 'close up') {\r\n return this.state.closeUpPhotos;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.state.currentPhoto) {\r\n return(\r\n this.onDoneAddingPhotos(photos)}/>\r\n );\r\n } else {\r\n return (\r\n \r\n \r\n\t\t \r\n\t\t\t Nearly there, we just need to see some pictures of your {this.props.chosenWheel.toLowerCase()} wheel. As shown in the examples:\r\n\t\t\t \r\n\t\t\t\t• Showing the full wheel\r\n\t\t\t\t• A close up\r\n\t\t\t \r\n\r\n\r\n\t\t\t Examples\r\n\r\n\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tFull Wheel\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tClose Up\r\n\t\t\t\t \r\n\t\t\t\t\r\n\r\n\t\t\t \r\n\t\t\t\tAdd your photos here\r\n\t\t\t \r\n\r\n\t\t\t\t { Platform.OS == \"web\" ?\r\n\t\t\t\t\r\n\t\t\t\t this.addPhoto('full wheel')} style={styles.rowInnerContainer} >\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.fullWheelPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tFull Wheel\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t \r\n\t\t\t\t this.addPhoto('close up')} style={styles.rowInnerContainer} >\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.closeUpPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tClose Up\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t :\r\n\t\t\t\t \r\n\t\t\t\t this.addPhoto('full wheel')} style={styles.rowInnerContainer} onDragOver={() => alert('test')}>\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.fullWheelPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tFull Wheel\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t this.addPhoto('close up')} style={styles.rowInnerContainer} >\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.closeUpPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tClose Up\r\n\t\t\t\t \r\n\t\t\t \t }\r\n\t\t\t \r\n\t\t\t\t (this.state.fullWheelPhotos.length > 0 && this.state.closeUpPhotos.length > 0)} onClick={() => this.props.onContinue(this.state.fullWheelPhotos, this.state.closeUpPhotos)}/>\r\n\t\t\t \r\n\t\t\t
\r\n
\r\n );\r\n }\r\n }\r\n \r\n componentDidMount () {\r\n\tif (Platform.OS == \"web\")\r\n\t{\r\n\t\tvar fullwheeldropped = document.getElementById(\"fullwheeldropped\");\r\n\t\tvar closeupdropped = document.getElementById(\"closeupdropped\");\r\n\t\t\r\n\t\tif (fullwheeldropped != null && closeupdropped != null)\r\n\t\t{\r\n\t\t\tconst the_app = this;\r\n\t\t\t\r\n\t\t\tfullwheeldropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('full wheel', dt.files)\r\n\t\t\t fullwheeldropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tfullwheeldropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t fullwheeldropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\tfullwheeldropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t fullwheeldropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('close up', dt.files)\r\n\t\t\t closeupdropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t closeupdropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t closeupdropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n }\r\n\r\n componentDidUpdate () {\r\n\tif (Platform.OS == \"web\")\r\n\t{\r\n\t\tvar fullwheeldropped = document.getElementById(\"fullwheeldropped\");\r\n\t\tvar closeupdropped = document.getElementById(\"closeupdropped\");\r\n\t\t\r\n\t\tif (fullwheeldropped != null && closeupdropped != null)\r\n\t\t{\r\n\t\t\tconst the_app = this;\r\n\t\t\t\r\n\t\t\tfullwheeldropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('full wheel', dt.files)\r\n\t\t\t fullwheeldropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tfullwheeldropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t fullwheeldropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\tfullwheeldropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t fullwheeldropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('close up', dt.files)\r\n\t\t\t closeupdropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t closeupdropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t closeupdropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150,\r\n\talignItems: 'center',\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%',\r\n\tpaddingTop: 20,\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '45%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n\r\nexport default AlloyPhotos;\r\n","import React, {Component} from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Heading from '../../components/Heading'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyFail extends Component {\r\n render() {\r\n return(\r\n \r\n\t\t\tError\r\n\t\t\t\r\n\t\t\t Unfortunately there was an error\r\n\t\t\t submitting your claim.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyFail;\r\n","import React from 'react';\r\nimport AlloyFail from './AlloyFail';\r\nimport Submitting from '../../components/Submitting';\r\nimport Para from '../../components/Para';\r\nimport Heading from '../../components/Heading';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\r\nimport Styles from '../../../constants/Styles'\r\nimport * as Progress from 'react-native-progress';\r\n\r\nfunction AlloySubmitting(props) {\r\n return (\r\n \r\n\t \r\n\t\t\r\n\t\t Submitting...\r\n\t\t \r\n\t\t\tPlease wait while your claim is being submitted.\r\n\t\t \r\n\t\t\tUpload progress:\r\n\t\t\tFull wheel photo: ({Math.floor(props.fullWheelPhotoUploadProgress*100).toString()}%)\r\n\t\t\t\r\n\t\t\tClose up photo: ({Math.floor(props.closeUpPhotoUploadProgress*100).toString()}%)\r\n\t\t\t\r\n\t\t\t\t{props.photoUploadFailed == false ? null :\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\n\r\nexport default AlloySubmitting;\r\n","import React from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport ScreenHeading from './ScreenHeading'\r\nimport DefaultButton from './DefaultButton'\r\nimport VerticalSpace from './VerticalSpace'\r\nimport Para from './Para'\r\nimport Styles from '../../constants/Styles'\r\n\r\ninterface AnotherProps {\r\n doAnother: string\r\n heading: string\r\n onNo: Function\r\n onYes: Function\r\n goBack: Function\r\n}\r\n\r\nexport default function Another ({ doAnother, heading, onNo, onYes, goBack }: AnotherProps) {\r\n if (heading === 'Tyre Claim') {\r\n return (\r\n \r\n \r\n \r\n \r\n Thank you. You should shortly receive an email with instructions on what actions to take next.\r\n \r\n \r\n Would you like to {doAnother}?\r\n \r\n \r\n onYes()} text=\"Yes\"/>\r\n \r\n onNo()} text=\"No\"/>\r\n \r\n \r\n )\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n Thank you.\r\n \r\n \r\n Would you like to {doAnother}?\r\n \r\n \r\n onYes()} text=\"Yes\"/>\r\n \r\n onNo()} text=\"No\"/>\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n","import React from 'react';\r\nimport Another from '../../components/Another';\r\n\r\nfunction AlloyAnother(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default AlloyAnother;\r\n","import React from 'react';\r\nimport ButtonList from './ButtonList';\r\nimport DefaultButton from './DefaultButton';\r\nimport ScreenHeading from './ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from './Para'\r\nimport Styles from '../../constants/Styles'\r\n\r\nfunction Different(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tThank you for submitting your claim/claims, you will shortly receive an automated email confirming the information supplied.\r\n\t\t \r\n\t\t \r\n\t\t\tThere is no need to call us as we will review the information and images you have sent within the next two working days and if we require anything further will contact you directly. \r\n\t\t \r\n\r\n\t\t \r\n\t\t\tFinally, do you wish to submit a claim for another product?\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t props.onYes()}/>\r\n\t\t\t props.onNo()}/>\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default Different;\r\n","import React from 'react';\r\nimport Different from '../../components/Different';\r\n\r\nfunction AlloyDifferent(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default AlloyDifferent;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction AlloyThanks(props) {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t \r\n\t\t\tThanks for submitting your claim, you will shortly receive an automated email confirming the information supplied.\r\n\t\t \r\n\t\t \r\n\t\t\tWe'll review the information and images you sent us within the next two working days.\r\n\t\t \r\n\t\t \r\n\t\t\tIf there's anything else we need, we'll be in touch.\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyThanks;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport waitingimg from '../../loading-png-gif.gif';\r\n\r\nimport { StyleSheet, View, Text, Image } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyVehicleLocationStatement extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n\t loading: true,\r\n };\r\n\t\r\n\tlet theApp = this;\r\n setTimeout(function () {\r\n\t\t\r\n\t\ttheApp.setState({loading: false});\r\n\r\n\r\n }, 5000); }\r\n \r\n \r\n render() {\r\n\t\tif (this.state.loading == true)\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t Please wait... \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Waiting...\"\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t return (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\tThank you. \r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\tYour claim has been approved subject to the information you have provided.\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\tIn order for us to safely carry out your repair we will require:\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\t• Home or work address (not the vehicle retailer site).\r\n\t\t\t\t\t\t• A safe location i.e. driveway or private off-street parking.\r\n\t\t\t\t\t\t• Space for your vehicle and the technicians medium-sized van.\r\n\t\t\t\t\t\t• Supply parking permits where required.\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\tDoes your location meet the requirements above?\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default AlloyVehicleLocationStatement;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport LabeledTextField from '../../components/LabeledTextField';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass AlloyLocation extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n lookupPostcode: '',\r\n vehiclePostcode: '',\r\n vehicleHouseNumber: '',\r\n vehicleStreetName: '',\r\n vehicleTown: '',\r\n\t lookupOptions: '',\r\n\t lookupFailedMessage: '',\r\n\t items: [],\r\n\t\taddresses: null\r\n\r\n };\r\n\tthis.onLookupClick = this.onLookupClick.bind(this);\r\n\tthis.lookupPostcodeChanged = this.lookupPostcodeChanged.bind(this);\r\n\tthis.vehiclePostcodeChanged = this.vehiclePostcodeChanged.bind(this);\r\n\tthis.vehicleHouseNumberChanged = this.vehicleHouseNumberChanged.bind(this);\r\n\tthis.vehicleStreetNameChanged = this.vehicleStreetNameChanged.bind(this);\r\n\tthis.vehicleTownChanged = this.vehicleTownChanged.bind(this);\r\n\tthis.selectchange = this.selectchange.bind(this);\r\n }\r\n\r\n lookupPostcodeChanged(fieldId, value) {\r\n this.setState({lookupPostcode: value});\r\n }\r\n\r\n vehiclePostcodeChanged(fieldId, value) {\r\n this.setState({vehiclePostcode: value});\r\n }\r\n\r\n vehicleHouseNumberChanged(fieldId, value) {\r\n this.setState({vehicleHouseNumber: value});\r\n }\r\n\r\n vehicleStreetNameChanged(fieldId, value) {\r\n this.setState({vehicleStreetName: value});\r\n }\r\n\r\n vehicleTownChanged(fieldId, value) {\r\n this.setState({vehicleTown: value});\r\n }\r\n \r\n selectchange(e)\r\n {\r\n\t console.log(e.target.value);\r\n\t \r\n\t let address = this.state.addresses[e.target.value];\r\n\t \r\n\t var visible_address = address.building_number;\r\n\t if (visible_address.length == 0)\r\n\t {\r\n\t\t visible_address = address.building_name;\r\n\t }\r\n\t \r\n this.setState({vehicleHouseNumber: visible_address});\r\n this.setState({vehicleStreetName: address.thoroughfare});\r\n this.setState({vehicleTown: address.post_town});\r\n this.setState({vehiclePostcode: address.postcode});\r\n\r\n }\r\n\r\n canSubmit() {\r\n return ((this.state.vehiclePostcode.length > 3) && (this.state.vehicleHouseNumber.length > 0) && (this.state.vehicleStreetName.length > 3) && (this.state.vehicleTown.length > 3));\r\n }\r\n \r\n canSubmitLookup() {\r\n\t return true;\r\n //return (this.state.lookupPostcode.length > 3);\r\n }\r\n \r\n createSelectItems() {\r\n\t let theApp = this;\r\n\tthis.props.api.postcodeLookup(this.state.lookupPostcode, function done(addresses) {\r\n if (addresses) {\r\n\t\t console.log(addresses);\r\n const nextState = Object.assign({}, theApp.state, {addresses: addresses});\r\n theApp.setState(nextState);\r\n\t\ttheApp.state.items.push(); \r\n\t\tfor (var p = 0; p < theApp.state.addresses.length; p ++) {\r\n\t\t let address = theApp.state.addresses[p];\r\n\t\t \r\n\t\t var visible_address = address.building_name;\r\n\t\t if (visible_address.length > 0)\r\n\t\t {\r\n\t\t\t visible_address = visible_address + \", \";\r\n\t\t }\r\n\t\t \r\n\t\t visible_address = visible_address + address.building_number;\r\n\t\t if (address.building_number > 0)\r\n\t\t {\r\n\t\t\t visible_address = visible_address + \", \";\r\n\t\t }\r\n\r\n\t\t visible_address = visible_address + address.thoroughfare;\r\n\t\t theApp.state.items.push(); \r\n\t\t}\r\n\t\t\ttheApp.setState({lookupFailedMessage : ''});\r\n\t\t\ttheApp.setState({lookupOptions : });\r\n\t\t\tconsole.log(theApp.state.lookupOptions);\r\n }\r\n\t else\r\n\t {\r\n\t\t theApp.setState({lookupFailedMessage :
We're sorry we cannot find an address using that postcode, please enter the repair address manually.
});\r\n\t }\r\n }, function notFound() {\r\n\t\ttheApp.setState({lookupFailedMessage :
We're sorry we cannot find an address using that postcode, please enter the repair address manually.
});\r\n }, function fail(xhr) {\r\n console.log(xhr);\r\n theApp.setState({lookupFailedMessage :
We're sorry we cannot find an address using that postcode, please enter the repair address manually.
});\r\n });\t \r\n } \r\n \r\n onDropdownSelected(e) {\r\n console.log(\"THE VAL\", e.target.value);\r\n //here you will see the current selected value of the select input\r\n}\r\n\r\n\tonLookupClick(){\r\n\t\tthis.setState({lookupOptions: \"\"});\r\n\t\tthis.setState({addresses: []});\r\n\t\tthis.setState({items: []});\r\n\t\t\r\n\t\tthis.createSelectItems();\r\n\t}\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please provide the postcode of your preferred repair location.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.canSubmitLookup()} onClick={this.onLookupClick}>\r\n\t\t\tLOOK UP\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{ this.state.lookupOptions }\r\n\t\t\t\r\n\t\t\tOr provide the address here:\r\n\t\t\t\r\n\t\t\t{ this.state.lookupFailedMessage }\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={() => this.props.onContinue(this.state.vehiclePostcode, this.state.vehicleHouseNumber + ', ' + this.state.vehicleStreetName)}/>\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyLocation;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport moment from 'moment'\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport waitingimg from '../../loading-png-gif.gif';\r\n\r\nimport { StyleSheet, View, Text, Image } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\n\r\nclass AlloyRepairDate extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n date: new Date(),\r\n\t suggested_dates: [],\r\n\t dates_index: 0,\r\n\t current_suggested_date: '',\r\n\t loading: true,\r\n\t arrival_time_text: '',\r\n\t formatted_date: ''\r\n };\r\n\tthis.GetShineDates(props);\r\n }\r\n \r\n \r\n GetShineDates(props) {\r\n\t let theApp = this;\r\n\t this.setState({suggested_dates:[]});\r\n\tprops.api.shineAlloyDatesLookup(props.vehiclePostcode, function done(suggested_dates) {\r\n if (suggested_dates) {\r\n\t\tif (suggested_dates.length > 0)\r\n\t\t{\r\n setTimeout(function () {\r\n const nextState = Object.assign({}, theApp.state, {suggested_dates: suggested_dates});\r\n theApp.setState(nextState);\r\n\t\ttheApp.setState({current_suggested_date: suggested_dates[theApp.state.dates_index]});\r\n\t\t var date = new Date(suggested_dates[theApp.state.dates_index].Date.split(' ').join('')); \r\n\t\t var formattedDate = moment(date, 'DD-MM-YYYY').format('DD MMM YYYY');\r\n\t\t console.log(formattedDate);\r\n\t\t console.log(suggested_dates);\r\n\t\ttheApp.setState({formatted_date: formattedDate});\r\n\t\t\r\n\t\tif (suggested_dates[theApp.state.dates_index].Timeslot == \"AM\")\r\n\t\t{\r\n\t\t\ttheApp.setState({arrival_time_text: 'Between 8:00 am and 10:00am'});\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\ttheApp.setState({arrival_time_text: 'Between 11:30 and 15:30'});\r\n\t\t}\r\n\t\t\r\n\t\ttheApp.setState({loading: false});\r\n\r\n\r\n }, 5000);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tprops.onNoAppointment();\r\n\t\t}\r\n\r\n }\r\n\t else\r\n\t\t{\r\n\t\t\tprops.onNoAppointment();\r\n\t\t}\r\n }, function notFound() {\r\n\r\n }, function fail(xhr) {\r\n console.log(xhr);\r\n //onFail();\r\n });\t \r\n }\r\n \r\n GetNewShineDate()\r\n {\r\n\t if (this.state.dates_index < (this.state.suggested_dates.length - 1))\r\n\t {\r\n\t\t const theApp = this;\r\n\t\t var new_index = this.state.dates_index+1;\r\n\t\t this.setState({dates_index: new_index});\r\n\t\t this.setState({loading: true});\r\n\t\t setTimeout(function () {\r\n\t\t\ttheApp.setState({current_suggested_date: theApp.state.suggested_dates[theApp.state.dates_index]});\r\n\t\t\t var date = new Date(theApp.state.suggested_dates[theApp.state.dates_index].Date.split(' ').join('')); \r\n\t\t\t var formattedDate = moment(date, 'DD-MM-YYYY').format('DD MMM YYYY');\r\n\t\t\t console.log(formattedDate);\r\n\t\t\ttheApp.setState({formatted_date: formattedDate});\r\n\t\t\tif (theApp.state.suggested_dates[theApp.state.dates_index].Timeslot == \"AM\")\r\n\t\t\t{\r\n\t\t\t\ttheApp.setState({arrival_time_text: 'arrival time between 8:00 am and 10:00 am'});\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\ttheApp.setState({arrival_time_text: 'arrival time between 11:30 and 15:30'});\r\n\t\t\t}\r\n\t\t\ttheApp.setState({loading: false});\r\n\t\t\t}, 5000);\r\n\t\r\n\t }\r\n\t else\r\n\t {\r\n\t\t this.props.onNoAppointment();\r\n\t }\r\n }\r\n\r\n render() {\r\n\t\tif (this.state.suggested_dates.length == 0 || this.state.loading == true)\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t Please wait. \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tDo not leave this screen. We are retrieving your appointment date.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tThis may take up to 120 seconds.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Waiting...\"\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t Thank you for your patience.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t The next available date for your repair is:\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{this.state.formatted_date + \" \" + this.state.current_suggested_date.Timeslot}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{this.state.arrival_time_text}\r\n\t\t\t\t\t\r\n\t\t\t\t\tDo you wish to accept this date and time.\r\n\t\t\t\t\t\r\n\t\t\t\t\t this.props.onContinue(this.state.formatted_date + \" \" + this.state.current_suggested_date.Timeslot, this.state.current_suggested_date.Booking_Key)} />\r\n\t\t\t\t\t this.GetNewShineDate()} />\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n }\r\n\r\n setDate(newDate) {\r\n this.setState({date: newDate});\r\n }\r\n\r\n canSubmit() {\r\n return true;\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyRepairDate;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction AlloyNoAppointment(props) {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t \r\n\t\t\tWe are Sorry. \r\n\t\t \r\n\t\t \r\n\t\t\tAt this current time, we're unable to find you a suitable appointment.\r\n\t\t \r\n\t\t \r\n\t\t\tWe have received your claim and a call back request has been sent to our repairer.\r\n\t\t \r\n\t\t \r\n\t\t\tYou DO NOT need to contact us. A Shine! representative will call you within two working days.\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyNoAppointment;\r\n","import React from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction AlloyDifferentReferred(props) {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t \r\n\t\t\t\tThank you for submitting your claim/claims, you will shortly receive an automated email confirming the information supplied\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t There is no need to call us as we will review the information and images you have sent within the next two working days and if we require anything further will contact you directly.\r\n\t\t\t\r\n\r\n\t\t\t \r\n\t\t\t\tFinally, do you wish to submit a claim for another product?\r\n\t\t\t \r\n\r\n\t\t\t \r\n\t\t\t\t props.onYes()}/>\r\n\t\t\t\t props.onNo()}/>\r\n\t\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default AlloyDifferentReferred;\r\n","import React, { Component } from 'react';\r\nimport AlloySplash from './AlloySplash';\r\nimport AlloyIntro from './AlloyIntro';\r\nimport AlloyDate from './AlloyDate';\r\nimport AlloyDamageDescription from './AlloyDamageDescription';\r\nimport AlloyDamageType from './AlloyDamageType';\r\nimport AlloyWheelType from './AlloyWheelType';\r\nimport AlloyChooseWheel from './AlloyChooseWheel';\r\nimport AlloyPhotos from './AlloyPhotos';\r\nimport AlloySubmitting from './AlloySubmitting';\r\nimport AlloyAnother from './AlloyAnother';\r\nimport AlloyDifferent from './AlloyDifferent';\r\nimport AlloyThanks from './AlloyThanks';\r\nimport AlloyFail from './AlloyFail';\r\nimport AlloyVehicleLocationStatement from './AlloyVehicleLocationStatement';\r\nimport AlloyLocation from './AlloyLocation';\r\nimport AlloyRepairDate from './AlloyRepairDate';\r\nimport AlloyNoAppointment from './AlloyNoAppointment';\r\nimport AlloyDifferentReferred from './AlloyDifferentReferred';\r\n\r\n\r\nclass Alloy extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = this.freshState();\r\n\r\n this.handleIntroContinue = this.handleIntroContinue.bind(this);\r\n this.handleChosenDate = this.handleChosenDate.bind(this);\r\n this.handleDamageDescriptionContinue = this.handleDamageDescriptionContinue.bind(this);\r\n this.handleChosenDamageType = this.handleChosenDamageType.bind(this);\r\n this.handleChosenWheelType = this.handleChosenWheelType.bind(this);\r\n this.handleChosenWheel = this.handleChosenWheel.bind(this);\r\n this.handlePhotoUploads = this.handlePhotoUploads.bind(this);\r\n this.handleLocationContinue = this.handleLocationContinue.bind(this);\r\n this.handleRepairDateContinue = this.handleRepairDateContinue.bind(this);\r\n this.handleNoAppointment = this.handleNoAppointment.bind(this);\r\n this.uploadProgress = this.uploadProgress.bind(this);\r\n this.retryPhotos = this.retryPhotos.bind(this);\r\n\r\n this.apiFail = this.apiFail.bind(this);\r\n };\r\n\r\n freshState() {\r\n return {\r\n stage: 'splash',\r\n description: '',\r\n damageType: null,\r\n chosenWheel: '',\r\n fullWheelPhotos: [],\r\n closeUpPhotos: [],\r\n meetsShineBusinessRules: 'false',\r\n date: new Date(),\r\n wheelType: null,\r\n claimId: null,\r\n\t fullWheelPhotoUploadProgress: 0,\r\n\t closeUpPhotoUploadProgress: 0,\r\n\t photoUploadFailed: false,\r\n };\r\n }\r\n\r\n handleIntroContinue() {\r\n this.setState({stage: 'chooseDate'});\r\n }\r\n\r\n handleChosenDate(date) {\r\n this.setState({stage: 'damageDescription', date: date});\r\n }\r\n\r\n handleDamageDescriptionContinue(description) {\r\n var nextState = Object.assign({}, this.state, {stage: 'chooseDamageType', description: description});\r\n this.setState(nextState);\r\n }\r\n\r\n handleChosenDamageType(damageType) {\r\n this.setState({stage: 'chooseWheelType', damageType: damageType});\r\n }\r\n\r\n handleChosenWheelType(wheelType) {\r\n const nextState = Object.assign(\r\n {}, this.state, {stage: 'chooseWheel', wheelType: wheelType}\r\n );\r\n this.setState(nextState);\r\n }\r\n\r\n handleChosenWheel(whichWheel) {\r\n var nextState = Object.assign({}, this.state, {stage: 'photos', chosenWheel: whichWheel});\r\n this.setState(nextState);\r\n }\r\n\r\n handlePhotoUploads(fullWheelPhotos, closeUpPhotos) {\r\n const nextState = Object.assign(\r\n {}, this.state, {\r\n stage: 'submitting',\r\n fullWheelPhotos: fullWheelPhotos,\r\n closeUpPhotos: closeUpPhotos\r\n }\r\n );\r\n this.setState(nextState);\r\n this.submitClaim(nextState);\r\n }\r\n \r\n handleLocationContinue(postcode, address) {\r\n this.setState({vehiclePostcode: postcode});\r\n this.setState({vehicleAddress: address});\r\n this.setState({stage: 'chooseRepairDate'});\r\n }\r\n\r\n handleRepairDateContinue(repair_date, booking_Key) {\r\n\t console.log(booking_Key);\r\n const component = this;\r\n this.props.api.alloyRepairDate(\r\n this.state.vehiclePostcode,\r\n this.state.vehicleAddress,\r\n repair_date,\r\n booking_Key,\r\n function done() {\r\n },\r\n component.apiFail\r\n );\r\n\t \r\n this.setState({stage: 'different'});\r\n }\r\n\r\n handleNoAppointment() {\r\n this.setState({stage: 'noAppointment'});\r\n }\r\n \r\n retryPhotos()\r\n {\r\n\t const nextState = Object.assign(\r\n {}, this.state, {\r\n photoUploadFailed: false\r\n }\r\n );\r\n\t \r\n\t this.setState(nextState)\r\n this.submitClaim(nextState);\r\n }\r\n\r\n startAgain() {\r\n\t console.log('start');\r\n var state = this.freshState();\r\n state.stage = 'intro';\r\n this.setState(state);\r\n }\r\n\r\n render() {\r\n if (this.state.stage === 'splash') {\r\n return this.setState({stage: 'intro'})} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'intro') {\r\n return this.setState({stage: 'splash'})}/>;\r\n } else if (this.state.stage === 'chooseDate') {\r\n return this.setState({stage: 'intro'})}/>;\r\n } else if (this.state.stage === 'damageDescription') {\r\n return this.setState({stage: 'chooseDate'})}/>;\r\n } else if (this.state.stage === 'chooseDamageType') {\r\n return this.setState({stage: 'damageDescription'})}/>;\r\n } else if (this.state.stage === 'chooseWheelType') {\r\n return this.setState({stage: 'chooseDamageType'})}/>;\r\n } else if (this.state.stage === 'chooseWheel') {\r\n return this.setState({stage: 'chooseWheelType'})}/>;\r\n } else if (this.state.stage === 'photos') {\r\n return this.setState({stage: 'chooseWheel'})}/>;\r\n } else if (this.state.stage === 'submitting') {\r\n return this.setState({stage: 'photos'})} />;\r\n } else if (this.state.stage === 'another') {\r\n return this.startAgain()} onNo={() => this.setState({stage: 'shinedirectrules'})} goBack={() => this.setState({stage: 'photos'})}/>;\r\n } else if (this.state.stage === 'shinedirectrules') {\r\n\t\tconsole.log(this.state);\r\n if (this.state.meetsShineBusinessRules === 'true') {\r\n\t\t return this.setState({stage: 'thanks'})} onContinue={() => this.setState({stage: 'vehiclelocation'})} goBack={() => this.setState({stage: 'another'})}/>;\r\n\t }\r\n\t else {\r\n\t\t this.setState({stage: 'differentReferred'})\r\n\t\t return null;\r\n\t }\r\n } else if (this.state.stage === 'vehiclelocation') {\r\n\treturn this.setState({stage: 'shinedirectrules'})} />;\r\n } else if (this.state.stage === 'chooseRepairDate') {\r\n\treturn this.setState({stage: 'vehiclelocation'})} />;\r\n } else if (this.state.stage === 'noAppointment') {\r\n\treturn this.props.onDone()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'different') {\r\n return this.props.onDone()} onNo={() => this.props.onDoneNoMoreClaims()} />;\r\n } else if (this.state.stage === 'differentReferred') {\r\n return this.props.onDone()} onNo={() => this.props.onDoneNoMoreClaims()} />;\r\n } else if (this.state.stage === 'thanks') {\r\n return this.props.onDone()} />;\r\n } else if (this.state.stage === 'fail') {\r\n return this.setState({'stage': 'intro'})} />;\r\n }\r\n\telse\r\n\t{\r\n\t\treturn {this.state.stage}\r\n\t}\r\n }\r\n\r\n submitClaim(state) {\r\n const component = this;\r\n this.props.api.alloyClaim(\r\n this.props.policy,\r\n state.description,\r\n state.damageType,\r\n state.chosenWheel,\r\n state.date,\r\n state.wheelType,\r\n function done(data) {\r\n state.claimId = data.claim_id;\r\n\t\tstate.meetsShineBusinessRules = data.meetsShineBusinessRules;\r\n component.setState(state);\r\n component.submitPhotos(state);\r\n },\r\n component.apiFail\r\n );\r\n }\r\n\r\n apiFail(xhr) {\r\n this.setState({photoUploadFailed: true});\r\n }\r\n\r\n submitPhotos(state) {\r\n const component = this;\r\n const photos =\r\n state.fullWheelPhotos.map(function(p) { return {type: 'full wheel', data: p}; }).concat(\r\n state.closeUpPhotos.map(function(p) { return {type: 'close up', data: p}; })\r\n );\r\n component.props.api.uploadPhotos(\r\n component.props.api.alloyPhoto,\r\n state.claimId,\r\n photos,\r\n function done() { component.setState({stage: 'another'}) },\r\n component.apiFail,\r\n\t component.uploadProgress\r\n );\r\n }\r\n \r\n uploadProgress(photoType, loaded, total)\r\n {\r\n\t let pc = loaded / total\r\n\t if (photoType == \"full wheel\")\r\n\t {\r\n\t\t this.setState({fullWheelPhotoUploadProgress: pc})\r\n\t }\r\n\t else\r\n\t {\r\n\t\t this.setState({closeUpPhotoUploadProgress: pc})\r\n\t }\r\n }\r\n}\r\n\r\nexport default Alloy;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Heading from '../../components/Heading'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass GapIntro extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\tWelcome to GAP Claims.\r\n\t\t\t\r\n\t\t\t We're sorry you're without your vehicle at this time.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t To be able to process your claim quickly and easily we require some documents from you. However, for the moment let's start with some basic questions.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t Then we'll provide a web link for you to upload the information we need.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default GapIntro;\r\n","import React, { Component } from 'react';\r\n\r\nimport { StyleSheet, View, Text, Platform, TouchableOpacity } from 'react-native'\r\nimport VerticalSpace from './VerticalSpace'\r\n\r\nclass YesNo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checkState: props.checkState\r\n };\r\n\tthis.handleSelectTrue = this.handleSelectTrue.bind(this);\r\n\tthis.handleSelectFalse = this.handleSelectFalse.bind(this);\r\n }\r\n\r\n handleSelectTrue() {\r\n this.setState(Object.assign({}, this.state, {checkState: true}));\r\n this.props.onSelect(true);\r\n\tconsole.log('true')\r\n }\r\n\r\n handleSelectFalse() {\r\n this.setState(Object.assign({}, this.state, {checkState: false}));\r\n this.props.onSelect(false);\r\n\tconsole.log('false')\r\n }\r\n \r\n render() {\r\n return(\r\n\t\r\n \r\n \r\n \r\n {this.props.question}\r\n \r\n \r\n \r\n {this.yesCheck()}\r\n \r\n \r\n Yes\r\n \r\n \r\n \r\n \r\n {this.noCheck()}\r\n \r\n \r\n No\r\n \r\n \r\n \r\n\t\r\n );\r\n }\r\n\r\n yesCheck() {\r\n if (this.state.checkState === true) {\r\n return (✔);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n noCheck() {\r\n if (this.state.checkState === false) {\r\n return (✘);\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n\tyesNo: {\r\n\t display: 'flex',\r\n\t padding: 5,\r\n\t flexDirection: 'row',\r\n\t},\r\n\r\n\tyesNoQuestion: {\r\n\t flexBasis: '60%',\r\n\t},\r\n\r\n\tyesNoControl: {\r\n\t flexBasis: '20%',\r\n\t textAlign: 'center',\r\n\t alignItems: 'center',\r\n\t},\r\n\r\n\tyesNoBoxWeb: {\r\n\t margin: 'auto',\r\n\t width: 30,\r\n\t height: 30,\r\n\t backgroundColor: '#fff',\r\n\t borderWidth: 1,\r\n\t borderStyle: 'solid',\r\n\t borderColor: '#ccc',\r\n\t textAlign: 'center',\r\n\t cursor: 'pointer',\r\n\t lineHeight: 20,\r\n\t paddingTop: 5,\r\n\t},\r\n\r\n\tyesNoBox: {\r\n\t margin: 'auto',\r\n\t width: 30,\r\n\t height: 30,\r\n\t backgroundColor: '#fff',\r\n\t borderWidth: 1,\r\n\t borderStyle: 'solid',\r\n\t borderColor: '#ccc',\r\n\t textAlign: 'center',\r\n\t lineHeight: 30,\r\n\t paddingTop: 5,\r\n\t paddingLeft: 9,\r\n\t},\r\n\r\n\tyesNoTick: {\r\n\t color: 'green',\r\n\t},\r\n\r\n\tyesNoCross: {\r\n\t color: 'red',\r\n\t},\r\n\r\n\tyesNoLabel: {\r\n\t lineHeight: 20,\r\n\t},\r\n})\r\n\r\nexport default YesNo;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport YesNo from '../../components/YesNo';\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass GapInsurer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n financed: props.financed,\r\n settlementAccepted: props.settlementAccepted,\r\n lessthan12months: props.lessthan12months,\r\n newforold: props.newforold,\r\n date: props.date\r\n };\r\n }\r\n\r\n render() {\r\n return(\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t To help us to assist you can you please provide us with some information about the claim you have made with your road risk insurer.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t Provide us with the date the insurer declared your vehicle a total loss.\r\n\t\t\t\r\n\t\t\t this.setDate(date)}/>\r\n\t\t\t this.handleFinancedSelected(yes)}/>\r\n\t\t\t this.handleSettlementSelected(yes)}/>\r\n\t\t\t{this.dontAccept()}\r\n\t\t\t this.handleLessThan12MonthsSelected(yes)}/>\r\n\t\t\t{this.showNewForOld()}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={() => this.props.onSubmit(this.state.date, this.state.financed, this.state.settlementAccepted, this.state.newforold, this.state.lessthan12months)}/>\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n setDate(newDate) {\r\n const nextState = Object.assign({}, this.state, {date: newDate});\r\n this.setState(nextState);\r\n }\r\n\r\n handleFinancedSelected(selected) {\r\n this.setState(Object.assign({}, this.state, {financed: selected}));\r\n }\r\n\r\n handleSettlementSelected(selected) {\r\n this.setState(Object.assign({}, this.state, {settlementAccepted: selected}));\r\n }\r\n\r\n handleLessThan12MonthsSelected(selected) {\r\n\tif (selected === false)\r\n\t{\r\n\t\tthis.state.newforold = null;\r\n\t}\r\n this.setState(Object.assign({}, this.state, {lessthan12months: selected}));\r\n\r\n }\r\n\r\n handleNewForOldSelected(selected) {\r\n this.setState(Object.assign({}, this.state, {newforold: selected}));\r\n }\r\n\r\n dontAccept() {\r\n if (this.state.settlementAccepted === false) {\r\n return(\r\n \r\n That's good we really need to discuss any offer with you and your insurer before you accept it.\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n showNewForOld() {\r\n if (this.state.lessthan12months === true) {\r\n return(\r\n this.handleNewForOldSelected(yes)}/>\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n canSubmit() {\r\n if (this.state.financed === null) {\r\n return false;\r\n }\r\n if (this.state.settlementAccepted === null) {\r\n return false;\r\n }\r\n if (this.state.lessthan12months === null) {\r\n return false;\r\n }\r\n\telse\r\n\t{\r\n\t\tif (this.state.lessthan12months === true) {\r\n\t\t\tif (this.state.newforold === null) {\r\n\t\t\t return false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n return this.state.date >= Date.parse(this.props.policy.coverStartDate) &&\r\n this.state.date <= new Date();\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default GapInsurer;\r\n","import React, {Component} from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport SelectedButton from '../../components/SelectedButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport LabeledTextField from '../../components/LabeledTextField';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport ButtonList from '../../components/ButtonList';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass GapIncident extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n date: props.date,\r\n mileage: props.mileage,\r\n incident: props.incident || ''\r\n };\r\n this.handleFieldChange = this.handleFieldChange.bind(this);\r\n }\r\n\r\n handleFieldChange(value) {\r\n this.setState({mileage: value});\r\n }\r\n\r\n render() {\r\n return(\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\tIncident date\r\n\t\t\t this.setDate(date)}/>\r\n\t\t\tChoose incident\r\n\t\t\t\t\r\n\t\t\t\t this.setIncident('Theft')}/>\r\n\t\t\t\t this.setIncident('Fire')}/>\r\n\t\t\t\t this.setIncident('Vandalism')}/>\r\n\t\t\t\t this.setIncident('Road Accident')}/>\r\n\t\t\t\t this.setIncident('Flood')}/>\r\n\t\t\t\t\r\n\r\n\t\t\t{this.crimeReport()}\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={() => this.props.onSubmit(this.state.mileage, this.state.date, this.state.incident)}/>\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n setDate(newDate) {\r\n const nextState = Object.assign({}, this.state, {date: newDate});\r\n this.setState(nextState);\r\n }\r\n\r\n setIncident(value) {\r\n this.setState(\r\n Object.assign({}, this.state, {incident: value})\r\n );\r\n }\r\n\r\n crimeReport() {\r\n const incident = this.state.incident;\r\n if (incident === 'Theft' || incident === 'Fire' || incident === 'Vandalism') {\r\n return (\r\n \r\n \r\n Nothing to do just now but when we contact you next we will ask for a crime report if the total loss was due to theft, vandalism or fire.\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n canSubmit() {\r\n return this.state.incident !== null && this.state.incident !== '' &&\r\n this.state.date <= new Date();\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n crimeReport: {\r\n\t backgroundColor: '#d54b55',\r\n\t color: '#fff',\r\n\t margin: 10,\r\n\t padding: 5,\r\n\t fontWeight: 'bold',\r\n\t fontStyle: 'italic',\r\n },\r\n crimeReportText: {\r\n\t color: '#fff',\r\n\t margin: 5,\r\n\t padding: 5,\r\n\t fontWeight: 'bold',\r\n\t fontStyle: 'italic',\r\n }\r\n})\r\n\r\nexport default GapIncident;\r\n","import React, {Component} from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\n\r\nimport { GestureResponderEvent, Pressable, StyleSheet, Text, View } from 'react-native'\r\n\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass GapConfirmation extends Component {\r\n render() {\r\n const details = this.props.details;\r\n return(\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t We just need you to confirm the information below and we'll then email you with a link to a web page where you can upload all the documents we need to complete your claim and achieve a settlement as quickly as possible.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tName: {details.firstName} {details.surname}\r\n\t\t\t\tContact number: {details.mobileNumber}\r\n\t\t\t\tEmail: {details.email}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tMileage: {this.props.mileage}\r\n\t\t\t\tIncident date: {this.props.incidentDate.toLocaleDateString()}\r\n\t\t\t\tType of incident: {this.props.incident}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tInsurers total loss date: {this.props.insurerDate.toLocaleDateString()}\r\n\t\t\t\tVehicle financed? {this.yesOrNo(this.props.financed)}\r\n\t\t\t\tSettlement figure accepted?: {this.yesOrNo(this.props.settlementAccepted)}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t edit\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n yesOrNo(bool) {\r\n if (bool) {\r\n return 'Yes';\r\n } else {\r\n return 'No';\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n defaultButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n padding: 10\r\n },\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default GapConfirmation;\r\n","import React from 'react';\r\nimport Submitting from '../../components/Submitting';\r\n\r\nfunction GapSubmitting(props) {\r\n return ;\r\n}\r\n\r\nexport default GapSubmitting;\r\n","import React, {Component} from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Heading from '../../components/Heading'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass GapSuccess extends Component {\r\n render() {\r\n return(\r\n \r\n \r\n\t\t\r\n\t\t\tClaim Commenced\r\n\t\t\t\r\n\t\t\t Thank you for providing the information we need to get your claim underway. Please look out for an email from donotreply@autoprotect-mailer.net and remember to check your spam or junk mail folder. This email contains a link to a secure web\r\n\t\t\t page where you can upload the important\r\n\t\t\t documents we require to process and finalise\r\n\t\t\t your claim. You can check our FAQs section on\r\n\t\t\t the app to find out what these are.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default GapSuccess;\r\n","import React, {Component} from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Heading from '../../components/Heading'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass GapFail extends Component {\r\n render() {\r\n return(\r\n \r\n\t\t\tError\r\n\t\t\t\r\n\t\t\t Unfortunately there was an error\r\n\t\t\t submitting your claim. Please contact\r\n\t\t\t us by phone instead.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default GapFail;\r\n","import React, { Component } from 'react';\r\nimport GapIntro from './GapIntro';\r\nimport GapInsurer from './GapInsurer';\r\nimport GapIncident from './GapIncident';\r\nimport GapConfirmation from './GapConfirmation';\r\nimport GapSubmitting from './GapSubmitting';\r\nimport GapSuccess from './GapSuccess';\r\nimport GapFail from './GapFail';\r\n\r\nclass Gap extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n stage: 'intro',\r\n insurerDate: new Date(),\r\n financed: null,\r\n settlementAccepted: null,\r\n lessthan12months: null,\r\n newforold: null,\r\n mileage: '',\r\n incidentDate: new Date(),\r\n incident: null\r\n };\r\n\r\n this.handleInsurerDetails = this.handleInsurerDetails.bind(this);\r\n this.handleIncidentDetails = this.handleIncidentDetails.bind(this);\r\n };\r\n\r\n afterIntro() {\r\n this.setState(Object.assign({}, this.state, {stage: 'insurer'}));\r\n }\r\n\r\n handleInsurerDetails(date, financed, settlementAccepted, newforold, lessthan12months) {\r\n\t console.log(newforold);\r\n this.setState(Object.assign(\r\n {}, this.state, {\r\n stage: 'incident',\r\n insurerDate: date,\r\n financed: financed,\r\n newforold: newforold,\r\n\t\tlessthan12months: lessthan12months,\r\n settlementAccepted: settlementAccepted\r\n }\r\n ));\r\n }\r\n\r\n handleIncidentDetails(mileage, date, incident) {\r\n this.setState(Object.assign(\r\n {}, this.state, {\r\n stage: 'confirmation',\r\n mileage: mileage,\r\n incidentDate: date,\r\n incident: incident\r\n }\r\n ));\r\n }\r\n\r\n render() {\r\n if (this.state.stage === 'intro') {\r\n return(\r\n this.afterIntro()} goBack={() => this.props.onDone()}/>\r\n );\r\n } else if (this.state.stage === 'insurer') {\r\n return(\r\n this.setState({stage: 'intro'})}/>\r\n );\r\n } else if (this.state.stage === 'incident') {\r\n return(\r\n this.setState({stage: 'insurer'})}/>\r\n );\r\n } else if (this.state.stage === 'confirmation') {\r\n return(\r\n this.submitClaim()}\r\n onEditIncident={() => this.setState({stage: 'incident'})}\r\n onEditInsurer={() => this.setState({stage: 'insurer'})}\r\n\t\t goBack={() => this.setState({stage: 'incident'})}\r\n />\r\n );\r\n } else if (this.state.stage === 'submitting') {\r\n return(\r\n this.setState({stage: 'confirmation'})}/>\r\n );\r\n } else if (this.state.stage === 'success') {\r\n return(\r\n this.props.onDone()}/>\r\n );\r\n } else if (this.state.stage === 'fail') {\r\n return(\r\n this.setState({'stage': 'intro'})} goBack={() => this.props.onDone()}/>\r\n );\r\n }\r\n }\r\n\r\n submitClaim() {\r\n this.setState({stage: 'submitting'});\r\n const component = this;\r\n this.props.api.gapClaim(\r\n this.props.policy,\r\n this.state.insurerDate,\r\n this.state.financed,\r\n this.state.settlementAccepted,\r\n this.state.mileage,\r\n this.state.incidentDate,\r\n this.state.incident,\r\n this.state.newforold,\r\n function done(data) {\r\n component.setState({stage: 'success'});\r\n\t\tcomponent.props.policy.hasExistingClaim = true;\r\n },\r\n function fail(xhr) {\r\n console.log(xhr);\r\n component.setState({stage: 'fail'});\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default Gap;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass Gapresent extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n\r\n render() {\r\nreturn (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Thanks, your email has been scheduled to be resent. You should receive it within the next 10 minutes.\r\n\t\t\t\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n\t \r\n );\r\n }\r\n \r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default Gapresent;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport GapResent from './GapResent';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass Gapclaimed extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\t\r\n\tthis.state = {\r\n stage: 'intro'\r\n };\r\n }\r\n\r\n\r\n render() {\r\n\tif (this.state.stage === 'intro') {\r\n\treturn (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t We have already received a claim for this GAP policy. A link to upload the documents we require has been sent in an email to:\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t {this.props.existingClaimEmail}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t If you have not received the email, please check your junk folder as it may be in there.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tIf you would like us to resend the link to the email shown above, please select Resend Email below.\r\n\t\t\t\r\n\t\t\t this.onResendGapEmail()}/>\r\n\t\t\t\r\n\t\t\t\tIf the email address shown is incorrect, please contact our customer support team on 01279 456 500 and select option 1.\r\n\t\t\t\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t \r\n \r\n );\r\n\t}\r\n\telse\r\n\t{\r\n\t\treturn (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Thanks, your email has been scheduled to be resent. You should receive it within the next 10 minutes.\r\n\t\t\t\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t \r\n \r\n\t\t);\r\n\t}\r\n }\r\n \r\n \r\n onResendGapEmail() {\r\n\t const component = this;\r\n\tthis.props.api.resendGapEmail(\r\n this.props.existingClaimId,\r\n function done(data) {\r\n\t\tconsole.log('success');\r\n\t\tcomponent.setState({stage: 'emailsent'});\r\n },\r\n function fail(xhr) {\r\n console.log(xhr);\r\n }\r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default Gapclaimed;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction SmartSplash(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tWe're sorry that your vehicle has been damaged.\r\n\t\t \r\n\t\t \r\n\t\t\tTo help us arrange a repair we need you to provide:\r\n\t\t\t\r\n\t\t\t\t• Details of the incident.\r\n\t\t\t\t• Images of the damage.\r\n\t\t\t\r\n\t\t \r\n\t\t \r\n\t\t\tThen, before submitting your claim please check your policy terms and conditions to confirm the damage fits within the size (cms) and limits described. These were supplied when you purchased the product/s.\r\n\t\t \r\n\t\t \r\n\t\t\tThen press continue.\r\n\t\t \r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartSplash;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction SmartIntro(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t\t\r\n\t\t\t I confirm that all the details provided within this claim are in-line with my policy terms and conditions \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t Note, providing inaccurate information may result in a delay in your claim.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t By continuing you promise the information provided is true and correct.\r\n\t\t\t\r\n\t\t \r\n\t\t\tBefore submitting your claim please check your terms and conditions to confirm the damage fits within the size (cms) and limits described. These were supplied when you purchased the product/s.\r\n\t\t \r\n\t\t \r\n\t\t\tThen click continue.\r\n\t\t \r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartIntro;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass SmartDate extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n date: props.date\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t When did you notice the damage?\r\n\t\t\t\r\n\t\t\t this.setDate(date)}/>\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={(e) => this.props.onSubmit(this.state.date)} />\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n setDate(newDate) {\r\n this.setState({date: newDate});\r\n }\r\n\r\n canSubmit() {\r\n return this.state.date <= new Date();\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartDate;\r\n","import React, { Component } from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass SmartDamageType extends Component {\r\n constructor() {\r\n super();\r\n this.handleChosenType = this.handleChosenType.bind(this);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please select the type of damage.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleChosenType('Scuff')}/>\r\n\t\t\t this.handleChosenType('Chip')}/>\r\n\t\t\t this.handleChosenType('Dent')}/>\r\n\t\t\t this.handleChosenType('Dent with Broken Paint')}/>\r\n\t\t\t this.handleChosenType('Scratch')}/>\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n handleChosenType(value) {\r\n this.props.onChosen(value);\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartDamageType;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { ApiDamageLocation } from '../../ApiTypes'\r\nimport { GestureResponderEvent, Image, ImageSourcePropType, Pressable, StyleSheet, View } from 'react-native'\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\nimport Para from '../../components/Para'\r\n\r\ninterface SmartDamageMapProps {\r\n location: ApiDamageLocation\r\n onLocationChange: (location: ApiDamageLocation | null) => void\r\n}\r\n\r\nconst displayImageWidth = 210\r\nconst displayImageHeight = 368\r\nconst originalImageWidth = 1281\r\nconst scaleFactor = originalImageWidth / displayImageWidth\r\nlet selectedImage = require('../../smart-damage2/Normal.png')\r\nlet local_location = null\r\n\r\nconst SmartDamageMap = ({ location, onLocationChange }: SmartDamageMapProps) => {\r\n const hitTargets: Array<[number, number, number, number, ApiDamageLocation, ImageSourcePropType]> = [\r\n [894, 1615, 1281, 1981, \"driver's side rear arch\", require('../../smart-damage2/DS_RearArch.png')],\r\n [901, 1242, 1281, 1615, \"driver's side rear door\", require('../../smart-damage2/DS_RearDoor.png')],\r\n [900, 811, 1281, 1242, \"driver's side front door\", require('../../smart-damage2/DS_Door.png')],\r\n [960, 190, 1281, 586, \"driver's side front arch\", require('../../smart-damage2/DS_FrontArch.png')],\r\n [972, 607, 1281, 790, \"driver's side wing mirror\", require('../../smart-damage2/DS_WingMirror.png')],\r\n [978, 0, 1281, 181, \"driver's side front bumper corner\", require('../../smart-damage2/DS_FrontBumperCorner.png')],\r\n [1050, 1981, 1281, 2194, \"driver's side rear bumper corner\", require('../../smart-damage2/DS_RearBumperCorner.png')],\r\n [0, 1615, 391, 1981, \"passenger's side rear arch\", require('../../smart-damage2/PS_RearArch.png')],\r\n [0, 1242, 381, 1615, \"passenger's side rear door\", require('../../smart-damage2/PS_RearDoor.png')],\r\n [9, 792, 391, 1247, \"passenger's side front door\", require('../../smart-damage2/PS_Door.png')],\r\n [18, 199, 306, 586, \"passenger's side front arch\", require('../../smart-damage2/PS_FrontArch.png')],\r\n [0, 607, 321, 790, \"passenger's side wing mirror\", require('../../smart-damage2/PS_WingMirror.png')],\r\n [60, 0, 294, 181, \"passenger's side front bumper corner\", require('../../smart-damage2/PS_FrontBumperCorner.png')],\r\n [0, 1981, 252, 2194, \"passenger's side rear bumper corner\", require('../../smart-damage2/PS_RearBumperCorner.png')],\r\n [393, 1684, 882, 2032, 'boot', require('../../smart-damage2/Boot.png')],\r\n [396, 882, 881, 1452, 'roof', require('../../smart-damage2/Roof.png')],\r\n [342, 199, 945, 616, 'bonnet', require('../../smart-damage2/Bonnet.png')],\r\n [321, 2007, 971, 2242, 'rear', require('../../smart-damage2/Rear.png')],\r\n [324, 0, 969, 196, 'front', require('../../smart-damage2/Front.png')]\r\n ]\r\n // This does not work on desktop version\r\n const handlePress = (e: GestureResponderEvent) => {\r\n const x = (e.nativeEvent.locationX || e.nativeEvent.offsetX) * scaleFactor\r\n const y = (e.nativeEvent.locationY || e.nativeEvent.offsetY) * scaleFactor\r\n\r\n for (let i = 0; i < hitTargets.length; i++) {\r\n const ht = hitTargets[i]\r\n if (x >= ht[0] && y >= ht[1] && x <= ht[2] && y < ht[3]) {\r\n updateLocation(ht[4])\r\n return\r\n }\r\n }\r\n updateLocation(null)\r\n }\r\n\r\n const updateLocation = (location: ApiDamageLocation | null) => {\r\n\t onLocationChange(location)\r\n\t local_location = location\r\n\t for (let i = 0; i < hitTargets.length; i++) {\r\n\t\tconst ht = hitTargets[i]\r\n\t\tif (ht[4] === location) {\r\n\t\t selectedImage = ht[5]\r\n\t\t}\r\n\t }\r\n }\r\n\r\n useEffect(() => {\r\n selectedImage = require('../../smart-damage2/Normal.png')\r\n\tlocal_location = location\r\n\tupdateLocation(local_location)\r\n\tconsole.log(local_location)\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\t\r\n\t\t{local_location == null ? null : Selected location: {local_location}}\r\n\t\r\n \r\n )\r\n}\r\n\r\nexport default SmartDamageMap\r\n\r\nconst styles = StyleSheet.create({\r\n backdrop: {\r\n height: displayImageHeight,\r\n width: displayImageWidth,\r\n },\r\n backgroundContainer: {\r\n bottom: 0,\r\n left: 0,\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n },\r\n container: {\r\n height: displayImageHeight,\r\n width: displayImageWidth,\r\n\tmargin: 'auto',\r\n\talignSelf: 'center',\r\n }\r\n})\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport SmartDamageMap from './SmartDamageMap';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass SmartDamageLocation extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n location: props.damageLocation\r\n };\r\n }\r\n\r\n handleLocationChange(location) {\r\n this.setState({location: location});\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please tap to indicate the location of the damage.\r\n\t\t\t\r\n\t\t\t this.handleLocationChange(location)}/>\r\n\t\t\t\r\n\t\t\t this.canContinue()} onClick={() => this.props.onChosen(this.state.location)}/>\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n canContinue() {\r\n return this.state.location;\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartDamageLocation;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\r\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\r\nimport * as ImagePicker from 'expo-image-picker'\r\nimport OptionsMenu from \"react-native-options-menu\";\r\nimport store, { RootState } from '../../../redux/Store'\r\nimport { addPhoto, clearPhotos } from '../../../redux/SmartClaimSlice'\r\nimport NavigationBar from '../../components/NavigationBar'\r\nimport Bottom from '../../components/Bottom'\r\nimport Para from '../../components/Para'\r\nimport ScreenHeading from '../../components/ScreenHeading'\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\nimport Styles from '../../../constants/Styles'\r\nimport ConditionalButton from '../../components/ConditionalButton'\r\nimport MultiplePhotoUploadTogether from '../../components/MultiplePhotoUploadTogether';\r\nimport { useSelector } from 'react-redux'\r\n\r\n\r\ninterface SmartPhotosProps {\r\n navigation: any\r\n onContinue: Function\r\n goHome: Function\r\n goBack: Function\r\n}\r\n\r\nexport default function SmartPhotos ({ navigation, onContinue, goHome, goBack }: SmartPhotosProps) {\r\n const images = useSelector((state: RootState) => state.smartClaim.value.allPhotos)\r\n const [managingPhotos, setManagingPhotos] = useState(false)\r\n const [errordisplay, setErrorDisplay] = useState('none')\r\n\r\n const emptyFunction = () => {}\r\n const canContinue = () => images.length > 1\r\n const canUpload = () => {\r\n images.length < 2\r\n ? pickImage()\r\n : alert('You have already uploaded 2 photos. Select Manage Photos to view or remove uploaded photos.')\r\n }\r\n const canTake = () => {\r\n images.length < 2\r\n ? takePhoto()\r\n : alert('You have already uploaded 2 photos. Select Manage Photos to view or remove uploaded photos.')\r\n }\r\n \r\n function doContinue()\r\n {\r\n\t onContinue(images)\r\n }\r\n\r\n function addPhotoWithFile(acceptedFiles) {\r\n\tfor (var i = 0; i < acceptedFiles.length; i++) {\r\n\t\tonDoneDraggingPhoto(acceptedFiles[i]);\r\n\t}\r\n }\r\n\r\n function onDoneDraggingPhoto(photo) {\r\n\t\tconst reader = new FileReader()\t\r\n\t\treader.onload = () => {\r\n // Do whatever you want with the file contents\r\n const binaryStr = reader.result\r\n\t\tstore.dispatch(addPhoto(binaryStr))\r\n }\r\n\r\n reader.readAsDataURL(photo);\r\n\t \r\n}\r\n\r\n function onDoneAddingPhotos(photo) {\r\n\tstore.dispatch(addPhoto(photo))\r\n }\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if (Platform.OS !== 'web') {\r\n const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync()\r\n if (status !== 'granted') {\r\n alert('Sorry, we need camera roll permissions to make this work!')\r\n }\r\n\t\telse\r\n\t\t{\r\n\t\t\tconst camstatus = await ImagePicker.requestCameraPermissionsAsync()\r\n\t\t\tif (camstatus.status !== 'granted') {\r\n\t\t\t alert('Sorry, we need camera roll permissions to make this work!')\r\n\t\t\t}\r\n\t\t}\r\n }\r\n\t\tif (Platform.OS == \"web\")\r\n\t\t{\r\n\t\t\tvar imagedropped = document.getElementById(\"imagedropped\");\r\n\t\t\t\r\n\t\t\tif (imagedropped != null)\r\n\t\t\t{\r\n\t\t\t\timagedropped.addEventListener('drop', function(e) {\r\n\t\t\t\t e.preventDefault();\r\n\t\t\t\t const dt = e.dataTransfer;\r\n\t\t\t\t addPhotoWithFile(dt.files)\r\n\t\t\t\t imagedropped.style.border = 'none';\r\n\t\t\t\t})\r\n\t\t\t\timagedropped.addEventListener('dragover', function(e) {\r\n\t\t\t\t e.preventDefault();\r\n\t\t\t\t imagedropped.style.border = '4px dotted green';\r\n\t\t\t\t})\r\n\t\t\t\timagedropped.addEventListener('dragleave', function(e) {\r\n\t\t\t\t e.preventDefault();\r\n\t\t\t\t imagedropped.style.border = 'none';\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n })()\r\n }, [managingPhotos])\r\n \r\n \r\n useEffect(() => {\r\n (async () => {\r\n\t store.dispatch(clearPhotos())\r\n\r\n })()\r\n }, [])\r\n\r\n const pickImage = async () => {\r\n const result : any = await ImagePicker.launchImageLibraryAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.All,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\tif (isValidImage(result.assets[0].uri))\r\n\t\t{\r\n // check file type! (validation method)\r\n\t\t\tif (Platform.OS != \"web\")\r\n\t\t\t{\r\n\t\t\t\tstore.dispatch(addPhoto('data:image/jpeg;base64,' + result.assets[0].base64))\r\n\t\t\t\t//store.dispatch(addPhoto(result.assets[0].uri))\r\n\t\t\t\t//console.log(result);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tstore.dispatch(addPhoto(result.assets[0].uri))\r\n\t\t\t}\r\n\t\t\tsetErrorDisplay('none')\r\n\t\t}\r\n\t\telse {\r\n\t setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n \r\n const takePhoto = async () => {\r\n const result : any = await ImagePicker.launchCameraAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.All,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\t//console.log(result);\r\n\t\tif (isValidImage(result.uri))\r\n\t\t{\r\n // check file type! (validation method)\r\n\t\t\tif (Platform.OS != \"web\")\r\n\t\t\t{\r\n\t\t\t\tstore.dispatch(addPhoto('data:image/jpeg;base64,' + result.assets[0].base64))\r\n\t\t\t\t//console.log(result.base64);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tstore.dispatch(addPhoto(result.assets[0].uri))\r\n\t\t\t\t//console.log(result.uri);\r\n\t\t\t}\r\n\t\t\tsetErrorDisplay('none')\r\n\t\t}\r\n\t\telse {\r\n\t setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n \r\n function isValidImage(dataURI){\r\n\t return true;\r\n\t var retVal = false;\r\n var byteString;\r\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\r\n byteString = atob(dataURI.split(',')[1]);\r\n } else {\r\n byteString = unescape(dataURI.split(',')[1]);\r\n }\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\t\r\n\tif (mimeString == 'image/jpeg' || mimeString == 'image/png')\r\n\t{\r\n\t\tretVal = true;\r\n\t}\r\n\treturn retVal;\r\n }\r\n \r\n const managePhotos = () => {\r\n\t\t//if (Platform.OS == \"web\")\r\n\t\t//{\r\n\t\t\tsetManagingPhotos(true)\r\n\t\t//}\r\n }\r\n\r\n const managePhotosDone = (photos) => {\r\n\t setManagingPhotos(false)\r\n\t store.dispatch(clearPhotos())\r\n\t\tfor (var i = 0; i < photos.length; i ++) {\r\n\t\t store.dispatch(addPhoto(photos[i]))\r\n\t\t}\r\n }\r\n \r\n\r\n if (managingPhotos) {\r\n return(\r\n \r\n );\r\n } else if (1 == 2) {\r\n return (\r\n \r\n \r\n\t\t \r\n\t\t\t Please upload a {this.props.photo} photo.\r\n\t\t\t this.onPhotoUploaded(data)} onCancel={() => this.cancelAddPhoto()}/>\r\n\t\t\t\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n\t\t \r\n\t\t\t Nearly there, we just need you to upload some photos showing your vehicle's damage.\r\n\t\t\t WE REQUIRE 2 PHOTOS TO SUCCESSFULLY PROCESS YOUR CLAIM.\r\n\r\n\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t1 Close-Up\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t1 Further Away\r\n\t\t\t\t \r\n\t\t\t\t\r\n\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t { Platform.OS == \"web\" ?\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tUPLOAD/TAKE PHOTO\r\n\t\t\t\tInvalid file type, please upload a jpg or png file\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t \r\n\t\t\t\t\t{images.length}\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\tManage photos\r\n\t\t\t \r\n\t\t\t
\r\n\t\t\t\t :\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\tUPLOAD/TAKE PHOTO\r\n\t\t\t\tInvalid file type, please upload a jpg or png file\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t \r\n\t\t\t\t\t{images.length}\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\tManage photos\r\n\t\t\t \r\n\t\t\t\r\n\r\n\t\t\t\t }\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t
\r\n
\r\n );\r\n }\r\n }\r\n/* componentDidMount () {\r\n\tif (Platform.OS == \"web\")\r\n\t{\r\n\t\tvar imagedropped = document.getElementById(\"imagedropped\");\r\n\t\t\r\n\t\tif (imagedropped != null)\r\n\t\t{\r\n\t\t\tconst the_app = this;\r\n\t\t\t\r\n\t\t\timagedropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile(dt.files)\r\n\t\t\t imagedropped.style.border = 'none';\r\n\t\t\t imagedropped.style.width = '50%';\r\n\t\t\t})\r\n\t\t\timagedropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t imagedropped.style.border = '4px dotted green';\r\n\t\t\t imagedropped.style.width = '49%';\r\n\t\t\t})\r\n\t\t\timagedropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t imagedropped.style.border = 'none';\r\n\t\t\t imagedropped.style.width = '50%';\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n }\r\n\r\n componentDidUpdate () {\r\n\tif (Platform.OS == \"web\")\r\n\t{\r\n\t\tvar imagedropped = document.getElementById(\"imagedropped\");\r\n\t\t\r\n\t\tif (imagedropped != null)\r\n\t\t{\r\n\t\t\tconst the_app = this;\r\n\t\t\t\r\n\t\t\timagedropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile(dt.files)\r\n\t\t\t imagedropped.style.border = 'none';\r\n\t\t\t imagedropped.style.width = '50%';\r\n\t\t\t})\r\n\t\t\timagedropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t imagedropped.style.border = '4px dotted green';\r\n\t\t\t imagedropped.style.width = '49%';\r\n\t\t\t})\r\n\t\t\timagedropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t imagedropped.style.border = 'none';\r\n\t\t\t imagedropped.style.width = '50%';\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n }*/\r\n\r\n function isValidImage(dataURI){\r\n\t return true;\r\n\t var retVal = false;\r\n var byteString;\r\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\r\n byteString = atob(dataURI.split(',')[1]);\r\n } else {\r\n byteString = unescape(dataURI.split(',')[1]);\r\n }\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\t\r\n\tif (mimeString == 'image/jpeg' || mimeString == 'image/png')\r\n\t{\r\n\t\tretVal = true;\r\n\t}\r\n\treturn retVal;\r\n }\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150,\r\n\talignItems: 'center',\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%',\r\n\tpaddingTop: 20,\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '45%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n\r\n","import React, {Component} from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Heading from '../../components/Heading'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass SmartFail extends Component {\r\n render() {\r\n return(\r\n \r\n\t\t\tError\r\n\t\t\t\r\n\t\t\t Unfortunately there was an error\r\n\t\t\t submitting your claim.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartFail;\r\n","import React from 'react';\r\nimport SmartFail from './SmartFail';\r\nimport Submitting from '../../components/Submitting';\r\nimport Para from '../../components/Para';\r\nimport Heading from '../../components/Heading';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\r\nimport Styles from '../../../constants/Styles'\r\nimport * as Progress from 'react-native-progress';\r\n\r\nfunction SmartSubmitting(props) {\r\n return (\r\n \r\n\t \r\n\t\t\r\n\t\t Submitting...\r\n\t\t \r\n\t\t\tPlease wait while your claim is being submitted.\r\n\t\t \r\n\t\t\tUpload progress:\r\n\t\t\tPhoto 1: ({Math.floor(props.photo1UploadProgress*100).toString()}%)\r\n\t\t\t\r\n\t\t\tPhoto 2: ({Math.floor(props.photo2UploadProgress*100).toString()}%)\r\n\t\t\t\r\n\t\t\t\t{props.photoUploadFailed == false ? null :\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\n\r\nexport default SmartSubmitting;\r\n\r\n","import React from 'react';\r\nimport Another from '../../components/Another';\r\n\r\nfunction SmartAnother(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default SmartAnother;\r\n","import React from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction SmartDifferent(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tThank you for submitting your claim/claims, you will shortly receive an automated email confirming the information supplied.\r\n\t\t \r\n\t\t \r\n\t\t There is no need to call us as we will review the information and images you have sent within the next two working days and if we require anything further will contact you directly.\r\n\t\t\r\n\r\n\t\t \r\n\t\t\tFinally, do you wish to submit a claim for another product?\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t props.onYes()}/>\r\n\t\t\t props.onNo()}/>\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartDifferent;\r\n","import React from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction SmartDifferentReferred(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tThank you for submitting your claim/claims, you will shortly receive an automated email confirming the information supplied.\r\n\t\t \r\n\t\t \r\n\t\t There is no need to call us as we will review the information and images you have sent within the next two working days and if we require anything further will contact you directly.\r\n\t\t\r\n\r\n\t\t \r\n\t\t\tFinally, do you wish to submit a claim for another product? \r\n\t\t \r\n\r\n\t\t \r\n\t\t\t props.onYes()}/>\r\n\t\t\t props.onNo()}/>\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartDifferentReferred;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction SmartThanks(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tThank you for submitting your claim/s, you will shortly receive an automated email confirming the information supplied. \r\n\t\t \r\n\t\t \r\n\t\t\tWe'll review the information and images you sent us within the next two working days.\r\n\t\t \r\n\t\t \r\n\t\t\tIf there's anything else we need, we'll be in touch.\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartThanks;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport waitingimg from '../../loading-png-gif.gif';\r\n\r\nimport { StyleSheet, View, Text, Image } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass SmartVehicleLocationStatement extends Component {\r\n constructor(props) {\r\n super();\r\n }\r\n \r\n \r\n render() {\r\n\t\t\t return (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\tThank you. \r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\tYour claim has been approved subject to the information you have provided.\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\tIn order for us to safely carry out your repair we will require:\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\t• Home or work address (not the vehicle retailer site).\r\n\t\t\t\t\t\t• A safe location i.e. driveway or private off-street parking.\r\n\t\t\t\t\t\t• Space for your vehicle and the technicians medium-sized van.\r\n\t\t\t\t\t\t• Supply parking permits where required.\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\tDoes your location meet the requirements above?\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t);\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartVehicleLocationStatement;\r\n","import React, { useState } from 'react'\r\nimport { View, StyleSheet, Platform } from 'react-native'\r\nimport {Picker} from '@react-native-picker/picker';\r\nimport Para from './Para'\r\nimport VerticalSpace from './VerticalSpace'\r\nimport { setVehiclePostcode } from '../../redux/SmartClaimSlice'\r\nimport Styles from '../../constants/Styles'\r\n\r\ninterface AddressSelectOptionsProps {\r\n addresses: any;\r\n formatAddress: any;\r\n onChange: any;\r\n}\r\n\r\nexport default function AddressSelectOptions ({ addresses, formatAddress, onChange }: AddressSelectOptionsProps) {\r\n\tconst [selectedValue, setSelectedValue] = useState('s')\r\n const selectAddress = (event : any) => {\r\n\t console.log(event);\r\n const index = (event - 1)\r\n\tsetSelectedValue(index)\r\n onChange(addresses[index])\r\n setVehiclePostcode(addresses[index]?.postcode)\r\n\tconsole.log('test')\r\n }\r\n\r\n if (addresses?.length > 0) {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t selectAddress(itemIndex)}>\r\n\t\t\t\t\r\n\t\t\t {\r\n\t\t\t addresses.map((address : any, i : number) =>\r\n\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t }\r\n\t\t\t\r\n\t\t\r\n \r\n )\r\n } else if (addresses?.length === 0) {\r\n return (\r\n We are sorry we cannot find an address using that postcode, please enter the repair address manually.\r\n )\r\n } else {\r\n return <>\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n\tpickerwrapper: {\r\n\t\tborderWidth: 1,\r\n\t\tbackgroundColor: '#ffffff',\r\n\t\tborderColor: '#000000',\r\n\t},\r\n\tpickerbox: {\r\n\t\tfontSize: 16,\r\n\t\tborderWidth: 0,\r\n\t\t...Platform.select({\r\n\t\t web: {\r\n\t\t\theight: 55\r\n\t\t },\r\n\t\t android: {\r\n\t\t\theight: 55\r\n\t\t },\r\n\t\t}),\r\n\t},\r\n selectBox: {\r\n fontSize: 16,\r\n\tmargin: 4,\r\n borderWidth: 2,\r\n\tborderStyle: 'solid',\r\n minHeight: 35,\r\n\tborderColor: 'black'\r\n }\r\n})\r\n","import React, { useState } from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\r\nimport AddressSelectOptions from '../../components/AddressSelectOptions'\r\nimport API from '../../API'\r\nimport ConditionalButton from '../../components/ConditionalButton'\r\nimport DefaultButton from '../../components/DefaultButton'\r\nimport LabeledTextField from '../../components/LabeledTextField'\r\nimport NavigationBar from '../../components/NavigationBar'\r\nimport Para from '../../components/Para'\r\nimport ScreenHeading from '../../components/ScreenHeading'\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\nimport Styles from '../../../constants/Styles'\r\n\r\ninterface SmartLocationProps {\r\n navigation: any\r\n onContinue: Function\r\n goHome: Function\r\n goBack: Function\r\n api: any\r\n}\r\n\r\nexport default function SmartLocation ({ navigation, onContinue, goHome, goBack, api }: SmartLocationProps) {\r\n const [postcode, setPostcode] = useState('')\r\n const [addresses, setAddresses] = useState(null)\r\n const [house_number, setHouseNumber] = useState('')\r\n const [confirmed_postcode, setConfirmedPostcode] = useState('')\r\n const [town, setTown] = useState('')\r\n const [street_name, setStreetName] = useState('')\r\n const [selectedAddress, setSelectedAddress] = useState(JSON.parse('{\"postcode\":\"\",\"post_town\":\"\",\"thoroughfare\":\"\",\"building_number\":\"3\",\"building_name\":\"\",\"postal_county\":\"\",\"sub_building_name\":\"\"}'))\r\n\r\n const formatAddress = (address : any) => {\r\n let formattedAddress = ''\r\n if (address.building_name) formattedAddress += `${address.building_name}`\r\n if (address.building_number) formattedAddress += ` ${address.building_number},`\r\n if (address.thoroughfare) formattedAddress += ` ${address.thoroughfare}`\r\n return formattedAddress\r\n }\r\n\r\n const canContinue = () => selectedAddress !== ''\r\n \r\n\r\n const setSelectedAddressFn = (address) => {\r\n\t setHouseNumber(address.building_number ? address.building_number : address.building_name)\r\n\t setConfirmedPostcode(address.postcode)\r\n\t setStreetName(address.thoroughfare)\r\n\t setTown(address.post_town)\r\n }\r\n\r\n const vehiclePostcodeChanged = (text: string) => {\r\n\t setConfirmedPostcode(text)\r\n }\r\n\r\n function vehicleHouseNumberChanged(text: string){\r\n\t setHouseNumber(text)\r\n }\r\n\r\n const vehicleStreetNameChanged = (text: string) => {\r\n\t setStreetName(text)\r\n }\r\n\r\n const vehicleTownChanged = (text: string) => {\r\n\t setTown(text)\r\n }\r\n\r\n \r\n const findAddresses = () => {\r\n const done = (data : any) => {\r\n setAddresses(data)\r\n }\r\n const fail = () => {\r\n setAddresses([])\r\n }\r\n api.postcodeLookup(postcode, done, fail)\r\n }\r\n \r\n function doContinue()\r\n {\r\n\t //postcode, address\r\n\t let address = selectedAddress;\r\n\t address.building_number = house_number;\r\n\t address.thoroughfare = street_name;\r\n\t address.post_town = town;\r\n\t address.postcode = confirmed_postcode;\r\n\t console.log(address);\r\n\t onContinue(confirmed_postcode, formatAddress(address))\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Please provide the postcode of your preferred repair location.\r\n \r\n \r\n \r\n findAddresses()} text=\"Look up\"/>\r\n \r\n \r\n Or provide the address here:\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\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport moment from 'moment'\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport waitingimg from '../../loading-png-gif.gif';\r\n\r\nimport { StyleSheet, View, Text, Image } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass SmartRepairDate extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n date: new Date(),\r\n\t suggested_dates: [],\r\n\t dates_index: 0,\r\n\t current_suggested_date: '',\r\n\t loading: true,\r\n\t arrival_time_text: '',\r\n\t formatted_date: '',\r\n\t showDatesText: 'Retrieving dates...',\r\n\t yes_text: 'Yes',\r\n\t not_submitting: true,\r\n };\r\n\tthis.GetShineDates(props);\r\n }\r\n \r\n \r\n GetShineDates(props) {\r\n\t let theApp = this;\r\n\t this.setState({suggested_dates:[]});\r\n\tprops.api.shineDatesLookup(props.vehiclePostcode, function done(suggested_dates) {\r\n if (suggested_dates) {\r\n\t\tif (suggested_dates.length > 0)\r\n\t\t{\r\n setTimeout(function () {\r\n const nextState = Object.assign({}, theApp.state, {suggested_dates: suggested_dates});\r\n theApp.setState(nextState);\r\n\t\ttheApp.setState({current_suggested_date: suggested_dates[theApp.state.dates_index]});\r\n\t\t var date = new Date(suggested_dates[theApp.state.dates_index].Date.split(' ').join('')); \r\n\t\t var formattedDate = moment(date, 'DD-MM-YYYY').format('DD MMM YYYY');\r\n\t\t console.log(formattedDate);\r\n\t\t console.log(suggested_dates);\r\n\t\ttheApp.setState({formatted_date: formattedDate});\r\n\t\t\r\n\t\tif (suggested_dates[theApp.state.dates_index].Timeslot == \"AM\")\r\n\t\t{\r\n\t\t\ttheApp.setState({arrival_time_text: 'Between 8:00 am and 10:00am'});\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\ttheApp.setState({arrival_time_text: 'Between 11:30 and 15:30'});\r\n\t\t}\r\n\t\t\r\n\t\ttheApp.setState({showDatesText: 'Show my dates'});\r\n\r\n\r\n }, 50);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tprops.onNoAppointment();\r\n\t\t}\r\n\r\n }\r\n\t else\r\n\t\t{\r\n\t\t\tprops.onNoAppointment();\r\n\t\t}\r\n }, function notFound() {\r\n\t\tthis.props.onNoAppointment();\r\n }, function fail(xhr) {\r\n this.props.onNoAppointment();\r\n });\t \r\n }\r\n\r\n canGetDates() {\r\n return (\r\n this.state.suggested_dates.length > 0\r\n );\r\n }\r\n \r\n notSubmitting() {\r\n\t return this.state.not_submitting;\r\n }\r\n\r\n handleSelectDate(index) {\r\n\t this.setState({not_submitting: false});\r\n\t this.setState({yes_text: \"Please wait\"});\r\n\t \r\n\t var date = new Date(this.state.suggested_dates[index].Date.split(' ').join('')); \r\n\t var formattedDate = moment(date, 'DD-MM-YYYY').format('DD MMM YYYY');\r\n\t this.props.onContinue(formattedDate + \" \" + this.state.suggested_dates[index].Timeslot, this.state.suggested_dates[index].Booking_Key);\r\n }\r\n \r\n GetNewShineDate()\r\n {\r\n\t if (this.state.dates_index < (this.state.suggested_dates.length - 1))\r\n\t {\r\n\t\t const theApp = this;\r\n\t\t var new_index = this.state.dates_index+1;\r\n\t\t this.setState({dates_index: new_index});\r\n\t\t //this.setState({loading: true});\r\n\t\t setTimeout(function () {\r\n\t\t\ttheApp.setState({current_suggested_date: theApp.state.suggested_dates[theApp.state.dates_index]});\r\n\t\t\t var date = new Date(theApp.state.suggested_dates[theApp.state.dates_index].Date.split(' ').join('')); \r\n\t\t\t var formattedDate = moment(date, 'DD-MM-YYYY').format('DD MMM YYYY');\r\n\t\t\t console.log(formattedDate);\r\n\t\t\ttheApp.setState({formatted_date: formattedDate});\r\n\t\t\tif (theApp.state.suggested_dates[theApp.state.dates_index].Timeslot == \"AM\")\r\n\t\t\t{\r\n\t\t\t\ttheApp.setState({arrival_time_text: 'arrival time between 8:00 am and 10:00 am'});\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\ttheApp.setState({arrival_time_text: 'arrival time between 11:30 and 15:30'});\r\n\t\t\t}\r\n\t\t\t//theApp.setState({loading: false});\r\n\t\t\t}, 1);\r\n\t\r\n\t }\r\n\t else\r\n\t {\r\n\t\t this.props.onNoAppointment();\r\n\t }\r\n }\r\n\r\n render() {\r\n\t\tif (this.state.loading == true)\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWe are now going to offer up to 5 repair dates- Please note if you don't accept a date then this will push your repair date further away.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWith a small number of claims a date won't be offered but we will contact you directly so there is no need for you to call us.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t this.setState({loading: false})} condition={() => this.canGetDates()} />\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t Select a date and time from the following:\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{ this.notSubmitting() ?\r\n\t\t\t\t\tthis.state.suggested_dates.map((thedate, index) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.notSubmitting()}\r\n\t\t\t\t\t\t\ttext = { moment(thedate.Date.split(' ').join(''), 'DD-MM-YYYY').format('DD MMM YYYY') + \" \" + thedate.Timeslot }\r\n\t\t\t\t\t\t\tonClick={(e) => this.handleSelectDate(index)}\r\n\t\t\t\t\t\t />\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t )):\r\n\t\t\t\t\t Please wait ...\r\n\t\t\t\t\t }\r\n\t\t\t\t\t\r\n\t\t\t\t\tThe arrival time for AM slots is between 8:00 am and 10:00am\r\n\t\t\t\t\tThe arrival time for PM slots is between 11:30 and 15:30\r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n }\r\n\r\n setDate(newDate) {\r\n this.setState({date: newDate});\r\n }\r\n\r\n canSubmit() {\r\n return true;\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartRepairDate;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction SmartNoAppointment(props) {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t \r\n\t\t\tWe are Sorry. \r\n\t\t \r\n\t\t \r\n\t\t\tAt this current time, we're unable to find you a suitable appointment.\r\n\t\t \r\n\t\t \r\n\t\t\tWe have received your claim and a call back request has been sent to our repairer.\r\n\t\t \r\n\t\t \r\n\t\t\tYou DO NOT need to contact us. A Shine! representative will call you within two working days.\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default SmartNoAppointment;\r\n","import React, { Component } from 'react';\r\nimport SmartSplash from './SmartSplash';\r\nimport SmartIntro from './SmartIntro';\r\nimport SmartDate from './SmartDate';\r\nimport SmartDamageType from './SmartDamageType';\r\nimport SmartDamageLocation from './SmartDamageLocation';\r\nimport SmartPhotos from './SmartPhotos';\r\nimport SmartSubmitting from './SmartSubmitting';\r\nimport SmartAnother from './SmartAnother';\r\nimport SmartDifferent from './SmartDifferent';\r\nimport SmartDifferentReferred from './SmartDifferentReferred';\r\nimport SmartThanks from './SmartThanks';\r\nimport SmartFail from './SmartFail';\r\nimport SmartVehicleLocationStatement from './SmartVehicleLocationStatement';\r\nimport SmartLocation from './SmartLocation';\r\nimport SmartRepairDate from './SmartRepairDate';\r\nimport SmartNoAppointment from './SmartNoAppointment';\r\n\r\n\r\nclass Smart extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = this.freshState();\r\n\r\n this.handleSplashContinue = this.handleSplashContinue.bind(this);\r\n this.handleIntroContinue = this.handleIntroContinue.bind(this);\r\n this.handleLocationContinue = this.handleLocationContinue.bind(this);\r\n this.handleRepairDateContinue = this.handleRepairDateContinue.bind(this);\r\n this.handleChosenDate = this.handleChosenDate.bind(this);\r\n this.handleChosenDamageType = this.handleChosenDamageType.bind(this);\r\n this.handleChosenDamageLocation = this.handleChosenDamageLocation.bind(this);\r\n this.handlePhotoUploads = this.handlePhotoUploads.bind(this);\r\n this.handleNoAppointment = this.handleNoAppointment.bind(this);\r\n this.uploadProgress = this.uploadProgress.bind(this);\r\n this.retryPhotos = this.retryPhotos.bind(this);\r\n\t\r\n this.apiFail = this.apiFail.bind(this);\r\n this.apiDone = this.apiDone.bind(this);\r\n }\r\n\r\n freshState() {\r\n return {\r\n stage: 'intro',\r\n date: new Date(),\r\n damageType: null,\r\n damageLocation: null,\r\n allPhotos: [],\r\n claimId: null,\r\n meetsShineBusinessRules: 'false',\r\n vehiclePostcode: '',\r\n\t vehicleAddress: '',\r\n\t photo1UploadProgress: 0,\r\n\t photo2UploadProgress: 0,\r\n\t photoUploadFailed: false,\r\n };\r\n }\r\n\r\n handleSplashContinue() {\r\n this.setState({stage: 'chooseDamageLocation'});\r\n }\r\n\r\n handleIntroContinue() {\r\n this.setState({stage: 'chooseDamageLocation'});\r\n }\r\n\r\n handleLocationContinue(postcode, address) {\r\n this.setState({vehiclePostcode: postcode});\r\n this.setState({vehicleAddress: address});\r\n this.setState({stage: 'chooseRepairDate'});\r\n }\r\n\r\n handleRepairDateContinue(repair_date, booking_Key) {\r\n\t console.log(booking_Key);\r\n const component = this;\r\n this.props.api.smartRepairDate(\r\n this.state.vehiclePostcode,\r\n this.state.vehicleAddress,\r\n repair_date,\r\n booking_Key,\r\n function done() {\r\n\t\tcomponent.setState({stage: 'different'});\r\n },\r\n function fail(data) {\r\n\t\tcomponent.setState({stage: 'noAppointment'});\r\n },\r\n );\r\n }\r\n\r\n handleChosenDate(date) {\r\n this.setState({stage: 'chooseDamageType', date: date});\r\n }\r\n\r\n handleChosenDamageType(damageType) {\r\n this.setState({stage: 'photos', damageType: damageType});\r\n }\r\n\r\n handleChosenDamageLocation(damageLocation) {\r\n this.setState({stage: 'chooseDate', damageLocation: damageLocation});\r\n }\r\n\r\n handleNoAppointment() {\r\n this.setState({stage: 'noAppointment'});\r\n }\r\n\r\n handlePhotoUploads(allPhotos) {\r\n const nextState = Object.assign(\r\n {}, this.state, {\r\n stage: 'submitting',\r\n allPhotos: allPhotos,\r\n }\r\n );\r\n this.setState(nextState);\r\n this.submitClaim(nextState);\r\n }\r\n\r\n retryPhotos()\r\n {\r\n\t const nextState = Object.assign(\r\n {}, this.state, {\r\n photoUploadFailed: false\r\n }\r\n );\r\n\t \r\n\t this.setState(nextState)\r\n this.submitClaim(nextState);\r\n }\r\n\r\n startAgain() {\r\n var state = this.freshState();\r\n this.setState(state);\r\n }\r\n\r\n render() {\r\n if (this.state.stage === 'intro') {\r\n return this.props.onDone()}/>;\r\n } else if (this.state.stage === 'splash') {\r\n return this.props.onDone()}/>;\r\n } else if (this.state.stage === 'chooseDate') {\r\n return this.setState({stage: 'chooseDamageLocation'})}/>;\r\n } else if (this.state.stage === 'chooseDamageType') {\r\n return this.setState({stage: 'chooseDate'})}/>;\r\n } else if (this.state.stage === 'chooseDamageLocation') {\r\n return this.setState({stage: 'intro'})}/>;\r\n } else if (this.state.stage === 'photos') {\r\n return this.setState({stage: 'chooseDamageType'})}/>;\r\n } else if (this.state.stage === 'submitting') {\r\n return this.setState({stage: 'photos'})} />;\r\n } else if (this.state.stage === 'another') {\r\n return this.startAgain()} onNo={() => this.setState({stage: 'shinedirectrules'})} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'shinedirectrules') {\r\n if (this.state.meetsShineBusinessRules === 'true') {\r\n\t\t return this.setState({stage: 'thanks'})} onContinue={() => this.setState({stage: 'vehiclelocation'})} goBack={() => this.setState({stage: 'photos'})}/>;\r\n\t }\r\n\t else {\r\n\t\t this.setState({stage: 'differentReferred'});\r\n\t\t return null;\r\n\t }\r\n } else if (this.state.stage === 'vehiclelocation') {\r\n\treturn this.setState({stage: 'shinedirectrules'})}/>;\r\n } else if (this.state.stage === 'chooseRepairDate') {\r\n\treturn this.setState({stage: 'vehiclelocation'})} />;\r\n } else if (this.state.stage === 'noAppointment') {\r\n\treturn this.props.onDone()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'different') {\r\n return this.props.onDone()} onNo={() => this.props.onDoneNoMoreClaims()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'differentReferred') {\r\n return this.props.onDone()} onNo={() => this.props.onDoneNoMoreClaims()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'thanks') {\r\n return this.props.onDone()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'fail') {\r\n return this.setState({'stage': 'intro'})} goBack={() => this.props.onDone()}/>;\r\n }\r\n }\r\n\r\n submitClaim(state) {\r\n const component = this;\r\n this.props.api.smartClaim(\r\n this.props.policy,\r\n state.date,\r\n state.damageType,\r\n state.damageLocation,\r\n function done(data) {\r\n state.claimId = data.claim_id;\r\n\t\tstate.meetsShineBusinessRules = data.meetsShineBusinessRules;\r\n component.setState(state);\r\n component.submitPhotos(state);\r\n },\r\n component.apiFail\r\n );\r\n }\r\n\r\n apiFail(xhr) {\r\n this.setState({photoUploadFailed: true});\r\n }\r\n \r\n apiDone() {\r\n\t this.setState({photoUploadFailed: true});\r\n\t this.setState({stage: 'another'})\r\n }\r\n\r\n submitPhotos(state) {\r\n const component = this;\r\n const photos =\r\n state.allPhotos.map(function(p, index) { return {type: index.toString(), data: p}; });\r\n component.props.api.uploadPhotos(\r\n component.props.api.smartPhoto,\r\n state.claimId,\r\n photos,\r\n component.apiDone,\r\n component.apiFail,\r\n\t component.uploadProgress\r\n );\r\n }\r\n\r\n uploadProgress(photoType, loaded, total)\r\n {\r\n\t let pc = loaded / total\r\n\t if (photoType == \"1\")\r\n\t {\r\n\t\t this.setState({photo1UploadProgress: pc})\r\n\t }\r\n\t else\r\n\t {\r\n\t\t this.setState({photo2UploadProgress: pc})\r\n\t }\r\n }\r\n}\r\n\r\nexport default Smart;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction TyreSplash(props) {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t \r\n\t\t\tWe're sorry that your tyre has been damaged.\r\n\t\t \r\n\t\t \r\n\t\t\tTo help us arrange a repair we need you to provide:\r\n\t\t \r\n\t\t\t\r\n\t\t\t\t• Details of the incident.\r\n\t\t\t\t• Images of the damage.\r\n\t\t\t\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default TyreSplash;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass TyreIntro extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n stage: 'intro',\r\n chosenTyre: ''\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Before submitting your claim please check your terms and conditions to confirm the damage fits within the limits described. These were supplied when you purchased the product/s.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t Then click continue.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default TyreIntro;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass TyreDate extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n date: props.date\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t When did you notice the problem?\r\n\t\t\t\r\n\t\t\t this.setDate(date)}/>\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={(e) => this.props.onSubmit(this.state.date)} />\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n setDate(newDate) {\r\n this.setState({date: newDate});\r\n }\r\n\r\n canSubmit() {\r\n return this.state.date <= new Date();\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default TyreDate;\r\n","import React, { Component } from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass TyreDamageType extends Component {\r\n constructor() {\r\n super();\r\n this.handleChosenType = this.handleChosenType.bind(this);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please select the type of damage.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleChosenType('Punctured')}/>\r\n\t\t\t this.handleChosenType('Damaged')}/>\r\n\t\t\t this.handleChosenType('Dont Know')}/>\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n handleChosenType(value) {\r\n this.props.onChosen(value);\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default TyreDamageType;\r\n","import React, { Component } from 'react';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport AlloyWheelChoice from '../Alloy/AlloyWheelChoice';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass TyreChoose extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n stage: 'intro',\r\n chosenTyre: ''\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please tap an image to indicate which tyre you're claiming for.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%',\r\n\tpaddingTop: 20,\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '45%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n\r\nexport default TyreChoose;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport MultiplePhotoUpload from '../../components/MultiplePhotoUpload';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport PhotosBadge from '../../components/PhotosBadge';\r\nimport { StyleSheet, View, Text, TouchableOpacity, Platform, Image } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Heading from '../../components/Heading'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass TyrePhotos extends Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n fullWheelPhotos: [],\r\n closeUpPhotos: [],\r\n treadPhotos: [],\r\n currentPhoto: null\r\n };\r\n }\r\n\r\n addPhoto(whichPhoto) {\r\n this.setState({currentPhoto: whichPhoto});\r\n }\r\n\r\n addPhotoWithFile(whichPhoto, acceptedFiles) {\r\n\tfor (var i = 0; i < acceptedFiles.length; i++) {\r\n\t\tthis.onDoneDraggingPhoto(whichPhoto, acceptedFiles[i]);\r\n\t}\r\n }\r\n\r\n onDoneDraggingPhoto(whichPhoto, photo) {\r\n\t console.log('test')\r\n\t\tconst reader = new FileReader()\t\r\n\t\treader.onload = () => {\r\n // Do whatever you want with the file contents\r\n const binaryStr = reader.result\r\n\t\t\t\tvar nextState = {currentPhoto: null};\r\n\t\t\t\tif (whichPhoto === 'full wheel') {\r\n\t\t\t\t nextState.fullWheelPhotos = this.state.fullWheelPhotos;\r\n\t\t\t\t\tif (!nextState.fullWheelPhotos.includes(binaryStr))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnextState.fullWheelPhotos.push(binaryStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (whichPhoto === 'close up') {\r\n\t\t\t\t nextState.closeUpPhotos = this.state.closeUpPhotos;\r\n\t\t\t\t\tif (!nextState.closeUpPhotos.includes(binaryStr))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnextState.closeUpPhotos.push(binaryStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (whichPhoto === 'tread') {\r\n\t\t\t\t nextState.treadPhotos = this.state.treadPhotos;\r\n\t\t\t\t\tif (!nextState.treadPhotos.includes(binaryStr))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tnextState.treadPhotos.push(binaryStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.setState(nextState);\r\n }\r\n\r\n reader.readAsDataURL(photo);\r\n\t \r\n}\r\n\r\n onDoneAddingPhotos(photos) {\r\n var nextState = {currentPhoto: null};\r\n if (this.state.currentPhoto === 'full wheel') {\r\n nextState.fullWheelPhotos = photos;\r\n } else if (this.state.currentPhoto === 'close up') {\r\n nextState.closeUpPhotos = photos;\r\n } else if (this.state.currentPhoto === 'tread') {\r\n nextState.treadPhotos = photos;\r\n }\r\n this.setState(nextState);\r\n }\r\n\r\n currentPhotos() {\r\n if (this.state.currentPhoto === 'full wheel') {\r\n return this.state.fullWheelPhotos;\r\n } else if (this.state.currentPhoto === 'close up') {\r\n return this.state.closeUpPhotos;\r\n } else if (this.state.currentPhoto === 'tread') {\r\n return this.state.treadPhotos;\r\n }\r\n }\r\n\r\n canSubmit() {\r\n return (\r\n this.state.fullWheelPhotos.length > 0 &&\r\n this.state.closeUpPhotos.length > 0 &&\r\n this.state.treadPhotos.length > 0\r\n );\r\n }\r\n\r\n onContinue() {\r\n this.props.onContinue(\r\n this.state.fullWheelPhotos,\r\n this.state.closeUpPhotos,\r\n this.state.treadPhotos\r\n );\r\n }\r\n\r\n render() {\r\n if (this.state.currentPhoto) {\r\n return(\r\n this.onDoneAddingPhotos(photos)}/>\r\n );\r\n } else {\r\n return (\r\n \r\n \r\n\t\t\t\r\n\t\t\t Nearly there, we just need to see some pictures of your {this.props.chosenTyre.toLowerCase()} tyre. As shown in the examples:\r\n\t\t\t \r\n\t\t\t\t• Showing the full wheel\r\n\t\t\t\t• A close up\r\n\t\t\t\t• Tyre tread\r\n\t\t\t \r\n\r\n\t\t\t Examples\r\n\r\n\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tFull Wheel\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tClose Up\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tTread\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t \r\n\t\t\t\tAdd your photos here\r\n\t\t\t \r\n\r\n\t\t\t\t { Platform.OS == \"web\" ?\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t this.addPhoto('full wheel')} style={styles.rowInnerContainer} >\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.fullWheelPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tFull Wheel\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t \r\n\t\t\t\t this.addPhoto('close up')} style={styles.rowInnerContainer} >\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.closeUpPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tClose Up\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t this.addPhoto('tread')} style={styles.rowInnerContainer} >\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.treadPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tTread\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\t
\r\n\t\t\t\t
:\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t this.addPhoto('full wheel')} style={styles.rowInnerContainer} id=\"fullwheeldropped\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.fullWheelPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tFull Wheel\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t this.addPhoto('close up')} style={styles.rowInnerContainer} id=\"closeupdropped\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.closeUpPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tClose Up\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t this.addPhoto('tread')} style={styles.rowInnerContainer} id=\"treaddropped\">\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t {/* extract this to own component? */}\r\n\t\t\t\t\t 0 ? 'green' : 'red', borderRadius: 17, height: 34, justifyContent: 'center', right: 15, position: 'absolute', top: 20, width: 34 }}>\r\n\t\t\t\t\t\t{this.state.treadPhotos.length}\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\tTread\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t }\r\n\t\t\t \r\n\t\t\t\t this.canSubmit()} onClick={() => this.onContinue()}/>\r\n\t\t\t \r\n\t\t\t
\r\n
\r\n );\r\n }\r\n }\r\n\r\n componentDidMount () {\r\n\tif (Platform.OS == \"web\")\r\n\t{\r\n\t\tvar fullwheeldropped = document.getElementById(\"fullwheeldropped\");\r\n\t\tvar closeupdropped = document.getElementById(\"closeupdropped\");\r\n\t\tvar treaddropped = document.getElementById(\"treaddropped\");\r\n\t\t\r\n\t\tif (fullwheeldropped != null && closeupdropped != null && treaddropped != null)\r\n\t\t{\r\n\t\t\tconst the_app = this;\r\n\t\t\t\r\n\t\t\tfullwheeldropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('full wheel', dt.files)\r\n\t\t\t fullwheeldropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tfullwheeldropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t fullwheeldropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\tfullwheeldropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t fullwheeldropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('close up', dt.files)\r\n\t\t\t closeupdropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t closeupdropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t closeupdropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\ttreaddropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('tread', dt.files)\r\n\t\t\t treaddropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\ttreaddropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t treaddropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\ttreaddropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t treaddropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n }\r\n\r\n componentDidUpdate () {\r\n\tif (Platform.OS == \"web\")\r\n\t{\r\n\t\tvar fullwheeldropped = document.getElementById(\"fullwheeldropped\");\r\n\t\tvar closeupdropped = document.getElementById(\"closeupdropped\");\r\n\t\tvar treaddropped = document.getElementById(\"treaddropped\");\r\n\t\t\r\n\t\tif (fullwheeldropped != null && closeupdropped != null && treaddropped != null)\r\n\t\t{\r\n\t\t\tconst the_app = this;\r\n\t\t\t\r\n\t\t\tfullwheeldropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('full wheel', dt.files)\r\n\t\t\t fullwheeldropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tfullwheeldropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t fullwheeldropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\tfullwheeldropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t fullwheeldropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('close up', dt.files)\r\n\t\t\t closeupdropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t closeupdropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\tcloseupdropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t closeupdropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\ttreaddropped.addEventListener('drop', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t const dt = e.dataTransfer;\r\n\t\t\t the_app.addPhotoWithFile('tread', dt.files)\r\n\t\t\t treaddropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t\ttreaddropped.addEventListener('dragover', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t treaddropped.style.border = '4px dotted green';\r\n\t\t\t})\r\n\t\t\ttreaddropped.addEventListener('dragleave', function(e) {\r\n\t\t\t e.preventDefault();\r\n\t\t\t treaddropped.style.border = 'none';\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n }\r\n\r\n\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n imageContainer: {\r\n width: 150,\r\n\theight: 150,\r\n\talignItems: 'center',\r\n },\r\n containedImage: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n imageOverlay: {\r\n position: 'relative',\r\n top: -35,\r\n width: '90%'\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n },\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%',\r\n\tpaddingTop: 20,\r\n },\r\n rowImage: {\r\n height: 140,\r\n resizeMode: 'cover',\r\n width: 140\r\n },\r\n rowInnerContainer: {\r\n width: '45%',\r\n\tdisplay: 'flex',\r\n\talignItems: 'center',\r\n\ttextAlignVertical: 'top',\r\n }\r\n})\r\n\r\nexport default TyrePhotos;\r\n","import React, {Component} from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Heading from '../../components/Heading'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass TyreFail extends Component {\r\n render() {\r\n return(\r\n \r\n\t\t\tError\r\n\t\t\t\r\n\t\t\t Unfortunately there was an error\r\n\t\t\t submitting your claim.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default TyreFail;\r\n","import React from 'react';\r\nimport TyreFail from './TyreFail';\r\nimport Submitting from '../../components/Submitting';\r\nimport Para from '../../components/Para';\r\nimport Heading from '../../components/Heading';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { Image, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\r\nimport Styles from '../../../constants/Styles'\r\nimport * as Progress from 'react-native-progress';\r\n\r\nfunction TyreSubmitting(props) {\r\n return (\r\n \r\n\t \r\n\t\t\r\n\t\t Submitting...\r\n\t\t \r\n\t\t\tPlease wait while your claim is being submitted.\r\n\t\t \r\n\t\t\tUpload progress:\r\n\t\t\tFull wheel photo: ({Math.floor(props.fullWheelPhotoUploadProgress*100).toString()}%)\r\n\t\t\t\r\n\t\t\tClose up photo: ({Math.floor(props.closeUpPhotoUploadProgress*100).toString()}%)\r\n\t\t\t\r\n\t\t\tTread photo: ({Math.floor(props.treadPhotoUploadProgress*100).toString()}%)\r\n\t\t\t\r\n\t\t\t\t{props.photoUploadFailed == false ? null :\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\n\r\nexport default TyreSubmitting;\r\n\r\n","import React from 'react';\r\nimport Another from '../../components/Another';\r\n\r\nfunction TyreAnother(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default TyreAnother;\r\n","import React from 'react';\r\nimport Different from '../../components/Different';\r\n\r\nfunction TyreDifferent(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default TyreDifferent;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction TyreThanks(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tThanks for submitting your claim, you will shortly receive an automated email confirming the information supplied.\r\n\t\t \r\n\t\t \r\n\t\t\tWe'll review the information and images you sent us within the next two working days.\r\n\t\t \r\n\t\t \r\n\t\t\tIf there's anything else we need, we'll be in touch.\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n \r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default TyreThanks;\r\n","import React, { Component } from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass TyreDrivable extends Component {\r\n constructor() {\r\n super();\r\n this.handleChosen = this.handleChosen.bind(this);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Thank you for providing your tyre claim details.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t Please answer the following question and you will be provided with detailed instructions on what you should do next:\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tIS YOUR VEHICLE CURRENTLY DRIVABLE?\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleChosen('Yes')}/>\r\n\t\t\t this.handleChosen('No')}/>\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n handleChosen(value) {\r\n this.props.onContinue(value);\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default TyreDrivable;\r\n","import React, { Component } from 'react';\r\nimport TyreSplash from './TyreSplash';\r\nimport TyreIntro from './TyreIntro';\r\nimport TyreDate from './TyreDate';\r\nimport TyreDamageType from './TyreDamageType';\r\nimport TyreChoose from './TyreChoose';\r\nimport TyrePhotos from './TyrePhotos';\r\nimport TyreSubmitting from './TyreSubmitting';\r\nimport TyreAnother from './TyreAnother';\r\nimport TyreDifferent from './TyreDifferent';\r\nimport TyreThanks from './TyreThanks';\r\nimport TyreFail from './TyreFail';\r\nimport TyreDrivable from './TyreDrivable';\r\n\r\nclass Tyre extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = this.freshState();\r\n\r\n this.handleIntroContinue = this.handleIntroContinue.bind(this);\r\n this.handleChosenDate = this.handleChosenDate.bind(this);\r\n this.handleChosenDamageType = this.handleChosenDamageType.bind(this);\r\n this.handleChosenIsDrivable = this.handleChosenIsDrivable.bind(this);\r\n this.handleChosenTyre = this.handleChosenTyre.bind(this);\r\n this.handlePhotoUploads = this.handlePhotoUploads.bind(this);\r\n this.uploadProgress = this.uploadProgress.bind(this);\r\n this.retryPhotos = this.retryPhotos.bind(this);\r\n this.apiFail = this.apiFail.bind(this);\r\n }\r\n\r\n freshState() {\r\n return {\r\n stage: 'splash',\r\n chosenTyre: '',\r\n isDrivable: '',\r\n date: new Date(),\r\n damageType: null,\r\n fullWheelPhotos: [],\r\n closeUpPhotos: [],\r\n treadPhotos: [],\r\n claimId: null,\r\n\t fullWheelPhotoUploadProgress: 0,\r\n\t closeUpPhotoUploadProgress: 0,\r\n\t treadPhotoUploadProgress: 0,\r\n\t photoUploadFailed: false,\r\n };\r\n }\r\n\r\n handleIntroContinue() {\r\n this.setState({stage: 'chooseDate'});\r\n }\r\n\r\n handleChosenDate(date) {\r\n this.setState({stage: 'chooseDamageType', date: date});\r\n }\r\n\r\n handleChosenDamageType(damageType) {\r\n this.setState({stage: 'chooseTyre', damageType: damageType});\r\n }\r\n\r\n handleChosenIsDrivable(isDrivable) {\r\n var nextState = Object.assign({}, this.state, {stage: 'submitting', isDrivable: isDrivable});\r\n this.setState(nextState);\r\n\r\n this.submitClaim(nextState);\r\n }\r\n\r\n handleChosenTyre(whichTyre) {\r\n var nextState = Object.assign({}, this.state, {stage: 'photos', chosenTyre: whichTyre});\r\n this.setState(nextState);\r\n }\r\n\r\n handlePhotoUploads(fullWheelPhotos, closeUpPhotos, treadPhotos) {\r\n const nextState = Object.assign(\r\n {}, this.state, {\r\n stage: 'isdrivable',\r\n fullWheelPhotos: fullWheelPhotos,\r\n closeUpPhotos: closeUpPhotos,\r\n treadPhotos: treadPhotos\r\n }\r\n );\r\n this.setState(nextState);\r\n }\r\n\r\n startAgain() {\r\n var state = this.freshState();\r\n state.stage = 'intro';\r\n this.setState(state);\r\n }\r\n\r\n retryPhotos()\r\n {\r\n\t //this.setState({'photoUploadFailed': false, 'stage': 'photos'})\r\n\t const nextState = Object.assign(\r\n {}, this.state, {\r\n photoUploadFailed: false\r\n }\r\n );\r\n\t \r\n\t this.setState(nextState)\r\n this.submitClaim(nextState);\r\n }\r\n\r\n render() {\r\n if (this.state.stage === 'splash') {\r\n return this.setState({stage: 'intro'})} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'intro') {\r\n return this.setState({stage: 'splash'})}/>;\r\n } else if (this.state.stage === 'chooseDate') {\r\n\treturn this.setState({stage: 'intro'})}/>;\r\n } else if (this.state.stage === 'chooseDamageType') {\r\n return this.setState({stage: 'chooseDate'})}/>;\r\n } else if (this.state.stage === 'chooseTyre') {\r\n return this.setState({stage: 'chooseDamageType'})}/>;\r\n } else if (this.state.stage === 'photos') {\r\n return this.setState({stage: 'chooseTyre'})}/>;\r\n } else if (this.state.stage === 'isdrivable') {\r\n return this.setState({stage: 'photos'})}/>;\r\n } else if (this.state.stage === 'submitting') {\r\n return ;\r\n } else if (this.state.stage === 'another') {\r\n return this.startAgain()} onNo={() => this.setState({stage: 'different'})} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'different') {\r\n return this.props.onDone()} onNo={() => this.props.onDoneReturnToWelcome()} goBack={() => this.props.onDone()}/>;\r\n /*} else if (this.state.stage === 'different') {\r\n return this.props.onDone()} onNo={() => this.setState({stage: 'thanks'})}/>;\r\n } else if (this.state.stage === 'thanks') {\r\n return this.props.onDone()}/>;*/\r\n } else if (this.state.stage === 'fail') {\r\n return this.setState({'stage': 'intro'})} goBack={() => this.props.onDone()}/>;\r\n }\r\n }\r\n\r\n submitClaim(state) {\r\n const component = this;\r\n this.props.api.tyreClaim(\r\n this.props.policy,\r\n state.damageType,\r\n state.chosenTyre,\r\n state.isDrivable,\r\n state.date,\r\n function done(data) {\r\n state.claimId = data.claim_id;\r\n component.setState(state);\r\n component.submitPhotos(state);\r\n },\r\n component.apiFail\r\n );\r\n }\r\n\r\n apiFail(xhr) {\r\n this.setState({photoUploadFailed: true});\r\n }\r\n\r\n submitPhotos(state) {\r\n const component = this;\r\n const photos =\r\n state.fullWheelPhotos.map(function(p) { return {type: 'full wheel', data: p}; }).concat(\r\n state.closeUpPhotos.map(function(p) { return {type: 'close up', data: p}; }).concat(\r\n state.treadPhotos.map(function(p) { return {type: 'tread', data: p}; })\r\n )\r\n );\r\n component.props.api.uploadPhotos(\r\n component.props.api.tyrePhoto,\r\n state.claimId,\r\n photos,\r\n function done() { component.setState({stage: 'another'}) },\r\n component.apiFail,\r\n\t component.uploadProgress\r\n );\r\n }\r\n\r\n uploadProgress(photoType, loaded, total)\r\n {\r\n\t let pc = loaded / total\r\n\t if (photoType == \"full wheel\")\r\n\t {\r\n\t\t this.setState({fullWheelPhotoUploadProgress: pc})\r\n\t }\r\n\t else if (photoType == \"tread\")\r\n\t {\r\n\t\t this.setState({treadPhotoUploadProgress: pc})\r\n\t }\r\n\t else\r\n\t {\r\n\t\t this.setState({closeUpPhotoUploadProgress: pc})\r\n\t }\r\n }\r\n}\r\n\r\nexport default Tyre;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View } from 'react-native'\r\nimport Styles from '../../../constants/Styles'\r\nimport Para from '../../components/Para'\r\n\r\nfunction CancellationIntro(props) {\r\n\tif (props.policy.currencyCode == 'GBP') {\t \r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tSorry you wish to leave us. Please note the following:\r\n\t\t \r\n\t\t\t\t- There is a £35 cancellation fee per product\r\n\t\t\t\t- We require your bank details so any applicable refund can be processed.\r\n\t\t\t\t- Upon cancellation, the product benefits you currently have will stop.\r\n\t\t \r\n\t\t\tIf you would still like to proceed please select continue.\r\n\t\t \r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n\t}\r\n\telse\r\n\t{\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tSorry you wish to leave us. Please note the following:\r\n\t\t \r\n\t\t\t\t- There is a €35 cancellation fee per product\r\n\t\t\t\t- We require your bank details so any applicable refund can be processed.\r\n\t\t\t\t- Upon cancellation, the product benefits you currently have will stop.\r\n\t\t \r\n\t\t\tIf you would still like to proceed please select continue.\r\n\t\t \r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n\t}\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\n\r\nexport default CancellationIntro;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View } from 'react-native'\r\nimport ButtonList from '../../components/ButtonList';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport ProductInfo from '../../ProductInfo';\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass CancellationProduct extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n\t\t \r\n\t\t\t\r\n\t\t\t Please select the product you wish to cancel.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t {this.productButtons()}\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n productButtons() {\r\n var info = new ProductInfo(this.props.policies);\r\n var cancellable = info.cancellablePolicies(true);\r\n var buttons = [];\r\n for (var i = 0; i < cancellable.length; i++) {\r\n let policy = cancellable[i];\r\n buttons.push(\r\n \r\n !policy.isPendingCancellation} text={policy.product} onClick={(e) => this.props.onChosen(policy)}/>\r\n \r\n );\r\n }\r\n return buttons;\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default CancellationProduct;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction CancellationContactDealer(props) {\r\n return(\r\n \r\n \r\n\t\t\r\n\t\t \r\n\t\t\tAs your purchase was within the last\r\n\t\t\t30 days, you will need to arrange your cancellation via your retailer.\r\n\t\t \r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n\r\nexport default CancellationContactDealer;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport DatePicker from '../../components/DatePicker';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass CancellationDate extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n date: props.date\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t \r\n\t\t\t\r\n\t\t\t Please choose the date from when you wish to cancel\r\n\t\t\t\r\n\t\t\t this.setDate(date)}/>\r\n\t\t\t\t{ !this.canSubmit() ? Cancellation date cannot be in the past : null }\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={(e) => this.props.onSubmit(this.state.date)} />\r\n\t\t\t\r\n\t\t \r\n \r\n );\r\n }\r\n\r\n setDate(newDate) {\r\n const nextState = Object.assign({}, this.state, {date: newDate});\r\n this.setState(nextState);\r\n }\r\n\r\n canSubmit() {\r\n var beginningOfDay = new Date();\r\n beginningOfDay.setHours(0, 0, 0, 0);\r\n\r\n return this.state.date >= beginningOfDay &&\r\n this.state.date <= Date.parse(this.props.policy.expiryDate);\r\n }\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default CancellationDate;\r\n","import React, { Component } from 'react';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass CancellationReason extends Component {\r\n constructor() {\r\n super();\r\n this.handleChosenReason = this.handleChosenReason.bind(this);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n\t\t \r\n\t\t\t\r\n\t\t\t Please select the reason for your cancellation.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleChosenReason('Buying a new car')}/>\r\n\t\t\t this.handleChosenReason('No longer required')}/>\r\n\t\t\t this.handleChosenReason('Found better cover')}/>\r\n\t\t\t this.handleChosenReason('Found cheaper cover')}/>\r\n\t\t\t this.handleChosenReason('Sold my car')}/>\r\n\t\t\t this.handleChosenReason('Other')}/>\r\n\t\t\t\r\n\t\t\r\n \r\n );\r\n }\r\n\r\n handleChosenReason(reason) {\r\n this.props.onChosen(reason);\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default CancellationReason;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport PhoneButton from '../../components/PhoneButton';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\n\r\nclass CancellationRefundAmount extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n refundAmount: null,\r\n\t refundFee: null,\r\n\t refundAfterFee: null,\r\n\t submitPressed: false\r\n };\r\n let component = this;\r\n props.api.refundAmount(\r\n props.policy, props.date,\r\n function done(amount) {\r\n\t\t console.log(amount);\r\n component.setState({refundAmount: amount, refundAfterFee: (amount - 35).toFixed(2)});\r\n\t\t//component.setState({refundAmount: 100, refundAfterFee: (100 - 35).toFixed(2)});\r\n },\r\n function fail(xhr) {\r\n console.log(xhr);\r\n }\r\n );\r\n }\r\n\r\n render() {\r\n if (this.props.policy.isProRataRefundable) {\r\n return this.amount();\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.setState({submitPressed: false});\r\n }\r\n\r\n handleSubmit() {\r\n this.setState({submitPressed: true});\r\n \r\n }\r\n\r\n amount() {\r\n if (this.state.refundAmount) {\r\n if (parseFloat(this.state.refundAmount) <= 35.00) {\r\n\t\t return (\r\n\t\t\r\n\t\t\r\n Unfortunately it has been calculated that you are not due a refund. \r\n \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tRefund:\r\n\t\t\t\t\t£{this.state.refundAmount}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tFee:\r\n\t\t\t\t\t-£35.00\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tAmount due:\r\n\t\t\t\t\t£0.00\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\tIf you would still like to cancel your agreement, please call our claims team on the number shown below.\r\n\t\tOffice opening hours:\r\n\t\tMon - Fri 9am to 5pm\r\n\t\tSat - 9am to 1pm\r\n\t\tClosed Sundays and Bank Holidays\r\n\t\t\r\n \r\n \r\n \r\n 01279 456500\r\n \r\n \r\n\t \r\n\t\t\t\r\n \r\n\t\t\r\n\t\t);\r\n /*} else if (this.state.refundAmount === '0.00') {\r\n return null;*/\r\n } \r\n\t else if (this.state.submitPressed == true) {\r\n\t\t return (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t You are about to cancel your agreement. Please note, once this is done we will not able to reverse this. Are you sure you wish to proceed?\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t this.onCancel()}/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t );\r\n\t }\r\n\t else if (this.props.policy.currencyCode == 'GBP') {\r\n return (\r\n\t\t\r\n\t\t\t\r\n\t\t\t As per your terms and conditions, there is a cancellation fee of £35 for this product.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t This fee will be taken out of your pro-rata refund. The amount due will then be paid directly into your bank account.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tRefund: \r\n\t\t\t\t\t£{this.state.refundAmount}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tFee: \r\n\t\t\t\t\t-£35.00\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tAmount due: \r\n\t\t\t\t\t£{this.state.refundAfterFee}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleSubmit()}/>\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n );\r\n } else {\r\n return (\r\n\t\t\r\n\t\t\t\r\n\t\t\t As per your terms and conditions, there is a cancellation fee of €35 for this product.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t This fee will be taken out of your pro-rata refund. The amount due will then be paid directly into your bank account.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tRefund:\r\n\t\t\t\t\t€{this.state.refundAmount}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tFee:\r\n\t\t\t\t\t-€35.00\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tAmount due:\r\n\t\t\t\t\t€{this.state.refundAfterFee}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.handleSubmit()}/>\r\n\t\t\t\r\n\t\t\t\r\n );\r\n }\r\n } else {\r\n return(\r\n\t \r\n \r\n Please wait while we calculate your refund amount...\r\n \r\n\t\r\n );\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default CancellationRefundAmount;\r\n","import React, { Component } from 'react';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport CancellationRefundAmount from './CancellationRefundAmount';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass CancellationAmountConfirmation extends Component {\r\n render() {\r\n\t \r\n\t\treturn (\r\n\t\t \r\n\t\t \r\n\t\t\t this.props.onDone()} onSubmit={() => this.props.onSubmit()}/>\r\n\t\t \r\n\t\t);\r\n }\r\n}\r\n\r\nexport default CancellationAmountConfirmation;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport PhoneButton from '../../components/PhoneButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction CancellationFailure(props) {\r\n return (\r\n\t\r\n \r\n Hmmm, for some reason, your payment didn't go through but there's no need to worry. Please contact the Cancellations Team on the number below and they'll get the issue resolved.\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\n\r\nexport default CancellationFailure;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View } from 'react-native'\r\nimport Checkbox from 'expo-checkbox';\r\nimport Para from './Para'\r\n\r\nclass LabeledCheckboxField extends Component {\r\n constructor(props) {\r\n super(props);\r\n\t\r\n\tthis.state = {\r\n isChecked: this.props.value\r\n };\r\n\r\n this.toggleCheck = this.toggleCheck.bind(this);\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(event) {\r\n\t console.log(event)\r\n var value = event;\r\n this.props.onChange(this.props.id, value);\r\n }\r\n \r\n toggleCheck() {\r\n this.setState({isChecked: !this.state.isChecked});\r\n\tthis.props.onChange(this.props.id, this.state.isChecked);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\t\t\r\n\t\t\t {this.props.label}\r\n\t\t\r\n \r\n\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default LabeledCheckboxField;\r\n\r\nconst styles = StyleSheet.create({\r\n LabeledCheckboxField: {\r\n margin: 5,\r\n\ttextAlign: 'left',\r\n\tpaddingTop: 10\r\n },\r\n LabeledCheckboxFieldLabel: {\r\n fontSize: 20,\r\n\tmarginBottom: 5,\r\n\tcolor: '#120e28'\r\n },\r\n LabeledCheckboxFieldField: {\r\n fontSize: 25,\r\n\tpadding: 5,\r\n\tmarginRight: 10\r\n }\r\n})\r\n\r\n\r\n","import React, { Component } from 'react';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport LabeledTextField from '../../components/LabeledTextField';\r\nimport LabeledCheckboxField from '../../components/LabeledCheckboxField';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass CancellationBankDetails extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n accountName: '',\r\n sortCode: '',\r\n accountNumber: '',\r\n\t confirmed: false,\r\n submitting: false\r\n };\r\n\t\r\n this.handleAccountNameChange = this.handleAccountNameChange.bind(this);\r\n this.handleSortCodeChange = this.handleSortCodeChange.bind(this);\r\n this.handleAccountNumberChange = this.handleAccountNumberChange.bind(this);\r\n }\r\n\r\n handleAccountNameChange(value) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.accountName = value;\r\n this.setState(nextState);\r\n }\r\n\r\n handleSortCodeChange(value) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.sortCode = value;\r\n this.setState(nextState);\r\n }\r\n\r\n handleAccountNumberChange(value) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.accountNumber = value;\r\n this.setState(nextState);\r\n }\r\n\r\n toggleCheckbox(event) {\r\n let newValue = (this.state.confirmed === \"true\" || this.state.confirmed === true) ? false : true;\r\n this.setState({\r\n confirmed: newValue\r\n });\r\n }\r\n\r\n render() {\r\n\t if (this.props.policy.currencyCode == 'GBP') {\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please enter your bank details to allow us to process your refund.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tWe will contact you within two working days if we require further information. Otherwise, your refund will be processed in three to five working days.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={(e) => this.submitBankDetails()}/>\r\n\t\t\r\n \r\n );\r\n\t}\r\n\telse\r\n\t{\r\n return (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t Please enter your bank details to allow us to process your refund.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tWe will contact you within two working days if we require further information. Otherwise, your refund will be processed in three to five working days.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t this.canSubmit()} onClick={(e) => this.submitBankDetails()}/>\r\n\t\t\r\n \r\n );\r\n\t}\r\n }\r\n\r\n canSubmit() {\r\n return (this.state.accountName && this.state.sortCode && this.state.accountNumber && this.state.confirmed && !this.state.submitting);\r\n\t//return true;\r\n }\r\n\r\n submitBankDetails() {\r\n const component = this;\r\n\t\r\n\tthis.setState({submitting: true});\r\n\r\n this.props.api.cancellationBankDetails(\r\n this.props.cancellationId,\r\n this.state.accountName,\r\n this.state.sortCode,\r\n this.state.accountNumber,\r\n function done() {\r\n component.props.onSuccess();\r\n },\r\n function fail(xhr) {\r\n console.log(xhr);\r\n }\r\n );\r\n }\r\n\r\n submitText() {\r\n if (this.state.submitting) {\r\n return 'Please Wait...';\r\n } else {\r\n return 'Submit';\r\n }\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n outerContainer: {\r\n alignSelf: 'center',\r\n maxWidth: 500,\r\n width: '100%'\r\n }\r\n})\r\n\r\nexport default CancellationBankDetails;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport PhoneButton from '../../components/PhoneButton';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction CancellationSuccessPremium(props) {\r\n return(\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t Thank you for submitting your cancellation request. As your policy has been paid in instalments, your refund will need to be manually calculated. We will review the information you have sent to us within the next two working days. If there is anything else we need, we'll be in touch. There is no need to contact us further.\r\n\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default CancellationSuccessPremium;\r\n","import React from 'react';\r\nimport Another from '../../components/Another';\r\n\r\nfunction CancellationAnother(props) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default CancellationAnother;\r\n","import React from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nfunction CancellationThanks(props) {\r\n return (\r\n \r\n \r\n\t \r\n\t\t \r\n\t\t\tThank you, we have received your cancellation request.\r\n\t\t \r\n\t\t \r\n\t\t\tWe will contact you within two working days if we require further information. Otherwise, your refund will be processed in three to five working days\r\n\t\t \r\n\r\n\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default CancellationThanks;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, Image, Text } from 'react-native'\r\nimport ButtonList from '../../components/ButtonList';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport PhoneButton from '../../components/PhoneButton';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport LabeledTextField from '../../components/LabeledTextField';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport ProductInfo from '../../ProductInfo';\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\nimport waitingimg from '../../loading-png-gif.gif';\r\nimport Bottom from '../../components/Bottom';\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\n\r\nclass CancellationTFA extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n code: '',\r\n\t contact_mechanism: '',\r\n\t contact_details: '',\r\n submitting: false,\r\n\t loading: true,\r\n\t error: false,\r\n };\r\n\t\r\n this.handleCodeChange = this.handleCodeChange.bind(this);\r\n this.submitCode = this.submitCode.bind(this);\r\n this.onFail = this.onFail.bind(this);\r\n\t\r\n\tthis.SendTFACode(props);\r\n }\r\n \r\n SendTFACode(props) {\r\n\t let theApp = this;\r\n\t this.setState({suggested_dates:[], loading: true, error: false, contact_mechanism: '', contact_details: '', submitting: false, code: ''});\r\n\tprops.api.sendTFACode(function done(data) {\r\n\t\ttheApp.setState({ loading: false, contact_mechanism: data.contact_mechanism, contact_details: data.contact_details})\r\n }, function fail(xhr) {\r\n console.log(xhr);\r\n //onFail();\r\n });\t \r\n }\r\n \r\n submitCode(value)\r\n {\r\n\t let theApp = this;\r\n\t if (value == null)\r\n\t {\r\n\t\tthis.props.api.checkTFACode(this.state.code, function done() {\r\n\t\t\ttheApp.props.onDone()\r\n\t\t}, function fail() {\r\n\t\t theApp.onFail();\r\n\t\t});\t \r\n\t }\r\n\t else\r\n\t {\r\n\t\tthis.props.api.checkTFACode(value, function done() {\r\n\t\t\ttheApp.props.onDone()\r\n\t\t}, function fail() {\r\n\t\t theApp.onFail();\r\n\t\t});\t \r\n\t }\r\n }\r\n \r\n onFail()\r\n {\r\n\tthis.setState({ error: true})\r\n }\r\n \r\n handleCodeChange(value) {\r\n this.setState({code: value});\r\n\tif (value.length == 6)\r\n\t{\r\n\t\tthis.submitCode(value)\r\n\t}\r\n }\r\n\r\n\r\n render() {\r\n\t\tif (this.state.loading == true)\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tPlease wait...\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Waiting...\"\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n\t\telse if (this.state.error == true)\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tThere was a problem with your code.\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\t this.SendTFACode(this.props)}/>\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t{this.state.contact_mechanism == \"none\" ? \r\n\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\tHmmm, for some reason we are unable to process your cancellation through the app. Please contact the Cancellations Team on the number below and they'll get the issue resolved.\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\t:\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t{this.state.contact_mechanism == \"mobile\" ? \r\n\t\t\t\t\t We have sent an SMS to the number we have for you, ending {this.state.contact_details}.\r\n\t\t\t\t\t :\r\n\t\t\t\t\t We have sent an email to the address we have for you, ending {this.state.contact_details}.\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tEnter the code below.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t this.canSubmit()} onClick={(e) => this.submitCode()}/>\r\n\t\t\t\t\t\r\n\t\t\t\t\tNot received a code? this.SendTFACode(this.props)} style={Styles.linkstyle}>Click here to resend\r\n\t\t\t\t \r\n\t\t\t\t\t}\r\n\t\t\t \r\n\t\t\t);\r\n\t\t}\r\n }\r\n\r\n canSubmit() {\r\n return (this.state.code != '');\r\n\t//return true;\r\n }\r\n \r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n waitingimage: {\r\n width: 200,\r\n height: 200,\r\n\tresizeMode: 'contain'\r\n },\r\n waitingimagewrapper: {\r\n\t width: '100%'\r\n }\r\n})\r\n\r\nexport default CancellationTFA;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ButtonList from '../../components/ButtonList';\r\nimport PhoneButton from '../../components/PhoneButton';\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\n\r\nclass CancellationPremiumSure extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n\t submitPressed: false\r\n };\r\n let component = this;\r\n }\r\n\r\n render() {\r\n return this.display();\r\n }\r\n\r\n onCancel() {\r\n this.setState({submitPressed: false});\r\n }\r\n\r\n handleSubmit() {\r\n this.setState({submitPressed: true});\r\n \r\n }\r\n\r\n display() {\r\n\t\t return (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t You are about to cancel your agreement. Please note, once this is done we will not able to reverse this. Are you sure you wish to proceed?\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t );\r\n }\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default CancellationPremiumSure;\r\n","import React, { Component } from 'react';\r\nimport ProductInfo from '../../ProductInfo';\r\nimport CancellationIntro from './CancellationIntro';\r\nimport CancellationProduct from './CancellationProduct';\r\nimport CancellationContactDealer from './CancellationContactDealer';\r\nimport CancellationDate from './CancellationDate';\r\nimport CancellationReason from './CancellationReason';\r\nimport CancellationAmountConfirmation from './CancellationAmountConfirmation';\r\nimport CancellationFailure from './CancellationFailure';\r\nimport CancellationBankDetails from './CancellationBankDetails';\r\nimport CancellationSuccessPremium from './CancellationSuccessPremium';\r\nimport CancellationAnother from './CancellationAnother';\r\nimport CancellationThanks from './CancellationThanks';\r\nimport CancellationTFA from './CancellationTFA';\r\nimport CancellationPremiumSure from './CancellationPremiumSure';\r\n\r\nclass Cancellation extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = this.freshState();\r\n\r\n this.handleChosenPolicy = this.handleChosenPolicy.bind(this);\r\n this.handleChosenDate = this.handleChosenDate.bind(this);\r\n this.handleChosenReason = this.handleChosenReason.bind(this);\r\n }\r\n\r\n freshState() {\r\n return {\r\n stage: 'chooseProduct',\r\n date: new Date(),\r\n\t policies: this.props.policies,\r\n policy: null,\r\n reason: null,\r\n cancellationId: null\r\n };\r\n }\r\n\r\n handleChosenPolicy(policy) {\r\n let nextStage;\r\n\tconst component = this;\r\n\r\n if (this.shouldContactDealer(policy)) {\r\n nextStage = 'contactDealer';\r\n } else {\r\n\t\tif (policy.isPremiumFunded) {\r\n\t\t\tnextStage = 'premiumSure';\r\n\t\t} else {\r\n\t\t nextStage = 'intro';\r\n\t\t}\r\n \r\n }\r\n this.setState({stage: nextStage, policy: policy});\r\n }\r\n \r\n submitPremiumFunded()\r\n {\r\n\t const component = this;\r\n\tthis.props.api.cancellation(\r\n\t this.state.policy,\r\n\t this.formatDate(new Date()),\r\n\t 'Premium funded',\r\n\t function done(data) {\r\n\t\tcomponent.setState({stage: 'success'});\r\n\t },\r\n\t function fail(xhr) {\r\n\t\tconsole.log(xhr);\r\n\t }\r\n\t)\r\n\tlet nextStage = 'success';\r\n this.setState({stage: nextStage});\r\n }\r\n \r\n formatDate(date) {\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n if (month.length < 2) {\r\n month = '0' + month;\r\n }\r\n if (day.length < 2) {\r\n day = '0' + day;\r\n }\r\n\r\n return [year, month, day].join('-');\r\n }\r\n\r\n\r\n handleChosenDate(date) {\r\n var nextState = Object.assign({}, this.state, {stage: 'chooseReason', date: date});\r\n this.setState(nextState);\r\n }\r\n\r\n handleChosenReason(reason) {\r\n var nextState = Object.assign({}, this.state, {stage: 'fee', reason: reason});\r\n\tthis.state.reason = reason;\r\n\tconsole.log(reason);\r\n\tthis.proceedToPayment();\r\n this.setState(nextState);\r\n }\r\n\r\n proceedToPayment() {\r\n const component = this;\r\n\tcomponent.setState({stage: 'fee'});\r\n }\r\n\r\n handlePaymentSuccess() {\r\n const component = this;\r\nconsole.log(this.state.policy);\r\n this.props.api.cancellation(\r\n this.state.policy,\r\n this.state.date,\r\n this.state.reason,\r\n function done(data) {\r\n\t\tcomponent.markPending(component.state.policy.id);\r\n component.setState({stage: 'fee', cancellationId: data.cancellation_id});\r\n\t\tif (component.state.policy.isPremiumFunded) {\r\n\t\t component.setState({stage: 'success'});\r\n\t\t} else {\r\n\t\t component.setState({stage: 'bankDetails'});\r\n\t\t}\r\n },\r\n function fail(xhr) {\r\n console.log(xhr);\r\n }\r\n )\r\n\r\n\r\n }\r\n\r\n // Marks a policy with policy section id of id as pending cancellation.\r\n markPending(id) {\r\n var policies = this.state.policies;\r\n for (var i = 0; i < policies.length; i++) {\r\n if (policies[i].id === id) {\r\n policies[i].isPendingCancellation = true;\r\n this.props.onUpdatePolicies(policies);\r\n }\r\n }\r\n }\r\n\r\n handlePaymentFailure() {\r\n this.setState({stage: 'failure'});\r\n }\r\n\r\n handleBankDetailsSuccess() {\r\n this.anotherOrThanks();\r\n }\r\n\r\n anotherOrThanks() {\r\n const productInfo = new ProductInfo(this.state.policies);\r\n if (productInfo.anyCancellablePolicies(false)) {\r\n this.setState({stage: 'another'});\r\n } else {\r\n this.setState({stage: 'thanks'});\r\n }\r\n }\r\n\r\n shouldContactDealer(policy) {\r\n let d = new Date();\r\n let thirtyDaysAgo = new Date(d.setDate(d.getDate() - 30));\r\n return (Date.parse(policy.coverStartDate) >= thirtyDaysAgo);\r\n }\r\n\r\n startAgain() {\r\n var state = this.freshState();\r\n state.stage = 'chooseProduct';\r\n this.setState(state);\r\n }\r\n\r\n render() {\r\n if (this.state.stage === 'intro') {\r\n return this.setState({stage: 'chooseDate'})} goBack={() => this.setState({stage: 'chooseProduct'})}/>;\r\n } else if (this.state.stage === 'tfa') {\r\n return this.setState({stage: 'chooseProduct'})} goBack={() => this.props.onDone()} />;\r\n } else if (this.state.stage === 'chooseProduct') {\r\n return this.props.onDone()}/>;\r\n } else if (this.state.stage === 'premiumSure') {\r\n return this.submitPremiumFunded()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'contactDealer') {\r\n return this.props.onDone()}/>;\r\n } else if (this.state.stage === 'chooseDate') {\r\n return this.setState({stage: 'intro'})}/>;\r\n } else if (this.state.stage === 'chooseReason') {\r\n return this.setState({stage: 'chooseDate'})}/>;\r\n } else if (this.state.stage === 'fee') {\r\n return this.handlePaymentSuccess()} onDone={() => this.props.onDone()} goBack={() => this.setState({stage: 'chooseDate'})}/>\r\n } else if (this.state.stage === 'failure'){\r\n return this.props.onDone()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'bankDetails') {\r\n return this.handleBankDetailsSuccess()} goBack={() => this.setState({stage: 'fee'})}/>;\r\n } else if (this.state.stage === 'success') {\r\n return this.props.onDone()} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'another') {\r\n return this.startAgain()} onNo={() => this.setState({stage: 'thanks'})} goBack={() => this.props.onDone()}/>;\r\n } else if (this.state.stage === 'thanks') {\r\n return this.props.onDone()} goBack={() => this.props.onDone()}/>;\r\n }\r\n }\r\n}\r\n\r\nexport default Cancellation;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, TextInput, Pressable, Text } from 'react-native'\r\n//import { TextInput } from 'react-native-gesture-handler'\r\nimport Para from './Para'\r\n\r\n\r\nclass LabeledEditTextField extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n label: props.label,\r\n placeholder: props.placeholder,\r\n\t value: props.value,\r\n\t editing: false\r\n };\r\n\tthis.textInputRef = React.createRef();\t\r\n\t\r\n this.onEditClick = this.onEditClick.bind(this);\r\n this.onSaveClick = this.onSaveClick.bind(this);\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n \r\n onChange(value)\r\n {\r\n\t this.setState({value: value});\r\n\t this.props.onChange(value);\r\n }\r\n\r\n render() {\r\n\t return (\r\n\t\t\r\n\t\t {this.state.label}\r\n\t\t \r\n\t\t\t \r\n\t\t\t\t this.onChange(value)}/>\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t\t\t { this.state.editing ?\r\n\t\t\t\t \r\n\t\t\t\t\t Save\r\n\t\t\t\t \r\n\t\t\t\t :\r\n\t\t\t\t \r\n\t\t\t\t\t Edit\r\n\t\t\t\t \r\n\t\t\t\t\t }\r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t );\r\n }\r\n \r\n onEditClick()\r\n {\r\n\t this.setState({ editing: true }, function() {\r\n\t\t//this.textInputRef.current.focus();\r\n\t\t//this.refs.textInputRef.focus();\r\n\t });\r\n }\r\n \r\n onSaveClick(){\r\n\t this.setState( {editing: false} );\r\n\t this.props.onSave(this.props.value);\r\n };\r\n \r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n textInput: {\r\n borderWidth: 1,\r\n fontSize: 16,\r\n height: 35,\r\n paddingHorizontal: 4\r\n },\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n saveButton: {\r\n backgroundColor: '#27ad7a',\r\n borderRadius: 4,\r\n marginLeft: 10,\r\n\theight: 35,\r\n\tpaddingTop: 5\r\n },\r\n editButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n marginLeft: 10,\r\n\theight: 35,\r\n\tpaddingTop: 5\r\n }\r\n})\r\n\r\nexport default LabeledEditTextField;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, TextInput, Pressable, Text } from 'react-native'\r\n//import { TextInput } from 'react-native-gesture-handler'\r\nimport Para from './Para'\r\n\r\n\r\nclass LabeledEditTextFieldWithRedirect extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n label: props.label,\r\n placeholder: props.placeholder,\r\n\t value: props.value\r\n };\r\n\tthis.textInputRef = React.createRef();\t\r\n\t\r\n this.onEditClick = this.onEditClick.bind(this);\r\n this.onSaveClick = this.onSaveClick.bind(this);\r\n }\r\n\r\n render() {\r\n\t return (\r\n\t\t\r\n\t\t {this.state.label}\r\n\t\t \r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\t Edit\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t );\r\n }\r\n \r\n onEditClick()\r\n {\r\n\t this.setState({ editing: true }, function() {\r\n\t\tthis.textInputRef.current.focus();\r\n\t });\r\n }\r\n \r\n onSaveClick(){\r\n\t this.setState( {editing: false} );\r\n\t this.props.onSave(this.props.value);\r\n };\r\n \r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n textInput: {\r\n borderWidth: 1,\r\n fontSize: 16,\r\n height: 35,\r\n paddingHorizontal: 4\r\n },\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n saveButton: {\r\n backgroundColor: '#27ad7a',\r\n borderRadius: 4,\r\n marginLeft: 10,\r\n\theight: 35,\r\n\tpaddingTop: 5\r\n },\r\n editButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n marginLeft: 10,\r\n\theight: 35,\r\n\tpaddingTop: 5\r\n }\r\n})\r\n\r\nexport default LabeledEditTextFieldWithRedirect;\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, TextInput, Pressable, Text } from 'react-native'\r\n//import { TextInput } from 'react-native-gesture-handler'\r\nimport Para from './Para'\r\nimport Toast from 'react-native-toast-message';\r\n\r\nclass LabeledEditTextFieldEmail extends Component {\r\n constructor(props) {\r\n super();\r\n this.state = {\r\n label: props.label,\r\n placeholder: props.placeholder,\r\n\t value: props.value,\r\n\t editing: false,\r\n\t initialValue: props.value\r\n };\r\n\tthis.textInputRef = React.createRef();\t\r\n\t\r\n this.onEditClick = this.onEditClick.bind(this);\r\n this.onSaveClick = this.onSaveClick.bind(this);\r\n this.onChange = this.onChange.bind(this);\r\n }\r\n\r\n onChange(value)\r\n {\r\n\t this.setState({value: value});\r\n\t this.props.onChange(value);\r\n }\r\n\r\n render() {\r\n\t return (\r\n\t\t\r\n\t\t {this.state.label}\r\n\t\t \r\n\t\t\t \r\n\t\t\t\t this.onChange(value)} inputProps={{\r\n pattern: '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+[.]{1}[a-zA-Z]{2,}$',\r\n }}/>\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t\t\t { this.state.editing ?\r\n\t\t\t\t \r\n\t\t\t\t\t Save\r\n\t\t\t\t \r\n\t\t\t\t :\r\n\t\t\t\t \r\n\t\t\t\t\t Edit\r\n\t\t\t\t \r\n\t\t\t\t\t }\r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t );\r\n }\r\n \r\n onEditClick()\r\n {\r\n\t this.setState({ editing: true }, function() {\r\n\t\t//this.textInputRef.current.focus();\r\n\t\t//this.refs.textInputRef.focus();\r\n\t });\r\n }\r\n \r\n onSaveClick(){\r\n\tconst regEx = /[a-zA-Z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,8}(.[a-z{2,8}])?/g;\r\n\tif (regEx.test(this.props.value)) {\r\n\t\tthis.setState( {editing: false} );\r\n\t\tthis.props.onSave(this.props.value);\r\n } else {\r\n\t\tToast.show({\r\n\t\t\t type: 'error',\r\n\t\t\t text1: 'There was a problem',\r\n\t\t\t text2: 'Invalid email format',\r\n\t\t\t});\r\n\t\t\tthis.setState( {value: this.state.initialValue, editing: false} );\r\n\t\t\tthis.props.onChange(this.state.initialValue);\r\n\t\t}\r\n }\r\n \r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n textInput: {\r\n borderWidth: 1,\r\n fontSize: 16,\r\n height: 35,\r\n paddingHorizontal: 4\r\n },\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n saveButton: {\r\n backgroundColor: '#27ad7a',\r\n borderRadius: 4,\r\n marginLeft: 10,\r\n\theight: 35,\r\n\tpaddingTop: 5\r\n },\r\n editButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n marginLeft: 10,\r\n\theight: 35,\r\n\tpaddingTop: 5\r\n }\r\n})\r\n\r\nexport default LabeledEditTextFieldEmail;\r\n","import React, { Component } from 'react';\r\nimport Bottom from './Bottom';\r\nimport ButtonList from './ButtonList';\r\nimport ConditionalButton from './ConditionalButton';\r\nimport DefaultButton from './DefaultButton';\r\nimport PhotoPreview from './PhotoPreview';\r\nimport Para from './Para'\r\nimport * as ImagePicker from 'expo-image-picker'\r\nimport $ from 'jquery';\r\nimport { StyleSheet, View, Text, Pressable, Platform } from 'react-native'\r\nimport Styles from '../../constants/Styles'\r\nimport OptionsMenu from \"react-native-options-menu\";\r\nimport VerticalSpace from './VerticalSpace'\r\n\r\nclass FileUploadSingle extends Component {\r\n constructor(props) {\r\n super();\r\n\r\n this.state = {\r\n data: props.data,\r\n\t errordisplay: 'none'\r\n };\r\n\t\r\n\tthis.pickImage = this.pickImage.bind(this);\r\n\tthis.takePhoto = this.takePhoto.bind(this);\r\n }\r\n\r\n fileChanged(event) {\r\n\tvar ext = document.getElementById('fileUpload').value.split('.').pop().toLowerCase();\r\n\tif($.inArray(ext, ['png','jpg','jpeg','png']) == -1) {\r\n this.setState({data: null, errordisplay : 'block'});\r\n this.value='';\r\n\t\t\treturn;\r\n\t}\r\n\t\r\n let component = this;\r\n $.each(event.target.files, function(index, file) {\r\n var reader = new FileReader();\r\n reader.onload = function(event) {\r\n component.setState({data: event.target.result});\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n \r\n async pickImage() {\r\n\tlet component = this;\r\n const result : any = await ImagePicker.launchImageLibraryAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.All,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\tif (isValidImage(result.assets[0].uri))\r\n\t\t{\r\n // check file type! (validation method)\r\n\t\t\tif (Platform.OS != \"web\")\r\n\t\t\t{\r\n\t\t\t\t//store.dispatch(addPhoto('data:image/jpeg;base64,' + result.base64))\r\n\t\t\t\tcomponent.setState({data: 'data:image/jpeg;base64,' + result.assets[0].base64});\r\n\t\t\t\tconsole.log(result.assets[0]);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n//\t\t\t\tstore.dispatch(addPhoto(result.uri))\r\n\t\t\t\tcomponent.setState({data: result.assets[0].uri});\r\n\t\t\t\tconsole.log(result.assets[0]);\r\n\t\t\t}\r\n\t\t\tcomponent.setErrorDisplay('none')\r\n\t\t\tcomponent.props.onUpload(this.state.data)\r\n\t\t}\r\n\t\telse {\r\n\t component.setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n \r\n setErrorDisplay(value)\r\n {\r\n\t this.setState({errordisplay: value});\r\n }\r\n \r\n async takePhoto() {\r\n\tlet component = this;\r\n const result : any = await ImagePicker.launchCameraAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.All,\r\n base64: true,\r\n aspect: [4, 3],\r\n quality: 1\r\n })\r\n if (!result.cancelled) {\r\n\t\t//console.log(result);\r\n\t\tif (isValidImage(result.uri))\r\n\t\t{\r\n // check file type! (validation method)\r\n\t\t\tif (Platform.OS != \"web\")\r\n\t\t\t{\r\n\t\t\t\tcomponent.setState({data: 'data:image/jpeg;base64,' + result.assets[0].base64});\r\n\t\t\t\t//store.dispatch(addPhoto('data:image/jpeg;base64,' + result.base64))\r\n\t\t\t\t//console.log(result.base64);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tcomponent.setState({data: result.assets[0].uri});\r\n\t\t\t\t//store.dispatch(addPhoto(result.uri))\r\n\t\t\t\t//console.log(result.uri);\r\n\t\t\t}\r\n\t\t\tcomponent.setErrorDisplay('none')\r\n\t\t}\r\n\t\telse {\r\n\t component.setErrorDisplay('flex')\r\n\t\t}\r\n }\r\n }\r\n \r\n emptyFunction()\r\n {\r\n\t \r\n }\r\n \r\n render() {\r\n\tconst uploadButton = ( {'Select File'})\r\n return(\r\n \r\n\t { Platform.OS == \"web\" ?\r\n\t\t\r\n\t\t {'Select File'}\r\n\t\t\r\n\t :\r\n \r\n \r\n \r\n\t }\r\n\t\tOnly jpg, png or pdf files can be uploaded\r\n \r\n\t\t\t\r\n \r\n\t\t\r\n \r\n );\r\n }\r\n}\r\n\r\n function isValidImage(dataURI){\r\n\t return true;\r\n\t var retVal = false;\r\n var byteString;\r\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\r\n byteString = atob(dataURI.split(',')[1]);\r\n } else {\r\n byteString = unescape(dataURI.split(',')[1]);\r\n }\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\t\r\n\tif (mimeString == 'image/jpeg' || mimeString == 'image/png' || mimeString == 'application/pdf')\r\n\t{\r\n\t\tretVal = true;\r\n\t}\r\n\treturn retVal;\r\n }\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n rowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n\twidth: '100%'\r\n },\r\n buttonText: {\r\n color: '#ffffff',\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n textTransform: 'uppercase'\r\n },\r\n defaultButton: {\r\n backgroundColor: '#312e49',\r\n borderRadius: 4,\r\n padding: 10\r\n }\r\n})\r\n\r\nexport default FileUploadSingle;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ConditionalButton from '../../components/ConditionalButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport LabeledTextField from '../../components/LabeledTextField'\r\nimport LabeledEditTextField from '../../components/LabeledEditTextField'\r\nimport LabeledEditTextFieldWithRedirect from '../../components/LabeledEditTextFieldWithRedirect'\r\nimport LabeledEditTextFieldEmail from '../../components/LabeledEditTextFieldEmail'\r\nimport AddressSelectOptions from '../../components/AddressSelectOptions'\r\nimport FileUploadSingle from '../../components/FileUploadSingle';\r\nimport VerticalSpace from '../../components/VerticalSpace'\r\nimport Waiting from '../../SignIn/Waiting';\r\nimport * as Progress from 'react-native-progress';\r\n\r\nimport { StyleSheet, View, Text } from 'react-native'\r\nimport AwesomeAlert from 'react-native-awesome-alerts';\r\n\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass PersonalDetails extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\t\r\n\tthis.state = {\r\n original_email: \"\",\r\n\t original_firstName: \"\",\r\n\t original_surname: \"\",\r\n email: \"\",\r\n\t firstName: \"\",\r\n\t surname: \"\",\r\n\t fullName: \"\",\r\n\t original_addressLine1: \"\",\r\n\t original_addressLine2: \"\",\r\n\t original_addressLine3: \"\",\r\n\t original_addressLine4: \"\",\r\n\t original_postcode: \"\",\r\n\t addressLine1: \"\",\r\n\t addressLine2: \"\",\r\n\t addressLine3: \"\",\r\n\t addressLine4: \"\",\r\n\t postcode: \"\",\r\n\t new_postcode: \"\",\r\n\t fullAddress: \"\",\r\n\t loading: true,\r\n\t editingName: false,\r\n\t editingAddress: false,\r\n\t namePhoto: null,\r\n\t namePhotoUploadProgress: 0,\r\n };\r\n\tthis.updateEmail = this.updateEmail.bind(this);\r\n\tthis.updateFirstName = this.updateFirstName.bind(this);\r\n\tthis.updateSurname = this.updateSurname.bind(this);\r\n\tthis.updateAddressLine1 = this.updateAddressLine1.bind(this);\r\n\tthis.updateAddressLine2 = this.updateAddressLine2.bind(this);\r\n\tthis.updateAddressLine3 = this.updateAddressLine3.bind(this);\r\n\tthis.updateAddressLine4 = this.updateAddressLine4.bind(this);\r\n\tthis.updatePostcode = this.updatePostcode.bind(this);\r\n\tthis.updateNewPostcode = this.updateNewPostcode.bind(this);\r\n\tthis.saveDetails = this.saveDetails.bind(this);\r\n\tthis.editName = this.editName.bind(this);\r\n\tthis.editAddress = this.editAddress.bind(this);\r\n\tthis.canSubmitNameUpdate = this.canSubmitNameUpdate.bind(this);\r\n\tthis.canSubmitAddressUpdate = this.canSubmitAddressUpdate.bind(this);\r\n\tthis.onEditNameDone = this.onEditNameDone.bind(this);\r\n\tthis.onEditAddressDone = this.onEditAddressDone.bind(this);\r\n\tthis.onPhotoUploaded = this.onPhotoUploaded.bind(this);\r\n\tthis.cancelAddPhoto = this.cancelAddPhoto.bind(this);\r\n\tthis.photoUploadProgress = this.photoUploadProgress.bind(this);\r\n\tthis.findAddresses = this.findAddresses.bind(this);\r\n\tthis.setSelectedAddressFn = this.setSelectedAddressFn.bind(this);\r\n\t\r\n\t\r\n\t\r\n\tlet theApp = this;\r\n\tthis.props.api.getContactDetails(props.policies.id, function done(details) {\r\n\t if (details) {\r\n\t\t console.log(details);\r\n\t\t if (details.Forename == null)\r\n\t\t {\r\n\t\t\t details.Forename = \"\";\r\n\t\t }\r\n\t\t if (details.Surname == null)\r\n\t\t {\r\n\t\t\t details.Surname = \"\";\r\n\t\t }\r\n\t\t if (details.EmailAddress == null)\r\n\t\t {\r\n\t\t\t details.EmailAddress = \"\";\r\n\t\t }\r\n\t\t if (details.AddressLine1 == null)\r\n\t\t {\r\n\t\t\t details.AddressLine1 = \"\";\r\n\t\t }\r\n\t\t if (details.AddressLine2 == null)\r\n\t\t {\r\n\t\t\t details.AddressLine2 = \"\";\r\n\t\t }\r\n\t\t if (details.AddressLine3 == null)\r\n\t\t {\r\n\t\t\t details.AddressLine3 = \"\";\r\n\t\t }\r\n\t\t if (details.AddressLine4 == null)\r\n\t\t {\r\n\t\t\t details.AddressLine4 = \"\";\r\n\t\t }\r\n\t\t if (details.Postcode == null)\r\n\t\t {\r\n\t\t\t details.Postcode = \"\";\r\n\t\t }\r\n\t\t var fullName = details.Forename + \" \" + details.Surname;\r\n\t\t var fullAddress = details.AddressLine1;\r\n\t\t if (details.AddressLine2 != \"\")\r\n\t\t {\r\n\t\t\t fullAddress += \", \" + details.AddressLine2;\r\n\t\t }\r\n\t\t if (details.AddressLine3 != \"\")\r\n\t\t {\r\n\t\t\t fullAddress += \", \" + details.AddressLine3;\r\n\t\t }\r\n\t\t if (details.AddressLine4 != \"\")\r\n\t\t {\r\n\t\t\t fullAddress += \", \" + details.AddressLine4;\r\n\t\t }\r\n\t\t fullAddress += \", \" + details.Postcode;\r\n\t\t\ttheApp.setState({firstName: details.Forename, surname: details.Surname, email: details.EmailAddress, original_firstName: details.Forename, original_surname: details.Surname, original_email: details.EmailAddress, addressLine1: details.AddressLine1, original_addressLine1: details.AddressLine1, addressLine2: details.AddressLine2, original_addressLine2: details.AddressLine2, addressLine3: details.AddressLine3, original_addressLine3: details.AddressLine3, addressLine4: details.AddressLine4, original_addressLine4: details.AddressLine4, postcode: details.Postcode, original_postcode: details.Postcode, loading: false, fullName: fullName, fullAddress: fullAddress});\r\n\t }\r\n\t}, function notFound() {\r\n\t\ttheApp.setState({loading: false});\r\n\t}, function fail(xhr) {\r\n\t\tconsole.log(xhr);\r\n\t\ttheApp.setState({loading: false});\r\n\t});\r\n }\r\n \r\n photoUploadProgress(loaded, total)\r\n {\r\n\t let pc = loaded / total\r\n\t this.setState({namePhotoUploadProgress: pc})\r\n }\r\n\r\n \r\n onPhotoUploaded(data)\r\n {\r\n\t console.log(data);\r\n\t this.setState({namePhoto: data});\r\n }\r\n cancelAddPhoto()\r\n {\r\n }\r\n\r\n updateEmail(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.email = value;\r\n this.setState(nextState);\r\n\t}\r\n\t\r\n\teditName() {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.editingName = true;\r\n this.setState(nextState);\r\n\t\t\r\n\t}\r\n\r\n\teditAddress() {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.editingAddress = true;\r\n this.setState(nextState);\r\n\t\t\r\n\t}\r\n\r\n saveDetails(value: string) {\r\n\t if(this.state.email != this.state.original_email)\r\n\t {\r\n\tlet theApp = this;\r\n\t\tthis.props.api.setContactDetails(this.props.policies.id, this.state.email, this.state.firstName, this.state.surname, function done(details) {\r\n\t\t\t\ttheApp.setState({showEmailAlert: true, original_email: theApp.state.email});\r\n\t\t}, function notFound() {\r\n\t\t\ttheApp.setState({loading: false});\r\n\t\t}, function fail(xhr) {\r\n\t\t\tconsole.log(xhr);\r\n\t\t\ttheApp.setState({loading: false});\r\n\t\t});\r\n\t }\r\n\t}\r\n \r\n onEditNameDone() {\r\n\tlet theApp = this;\r\n\t\tthis.props.api.updateName(this.props.policies.id, this.state.original_firstName, this.state.firstName, this.state.original_surname, this.state.surname, this.state.namePhoto, function done(details) {\r\n\r\n\t\t\t\ttheApp.setState({showNameAlert: true});\r\n\r\n\t\t\t\t\r\n\t\t\t\t//theApp.setState({original_firstName: theApp.state.firstName, original_surname: theApp.state.surname, original_email: theApp.state.email});\r\n\t\t}, function fail(xhr) {\r\n\t\t\tconsole.log(xhr);\r\n\t\t\ttheApp.setState({loading: false});\r\n\t\t},\r\n\t\tthis.photoUploadProgress);\r\n\t}\r\n\t\r\n onEditAddressDone() {\r\n\tlet theApp = this;\r\n\r\n\t\tthis.props.api.updateAddress(this.props.policies.id, this.state.addressLine1, this.state.addressLine2, this.state.addressLine3, this.state.addressLine4, this.state.postcode, function done(details) {\r\n\t\t\t\r\n\t\t\tconsole.log(theApp.state);\r\n\r\n\t\t\t var fullAddress = theApp.state.addressLine1;\r\n\t\t\t if (theApp.state.addressLine2 != \"\")\r\n\t\t\t {\r\n\t\t\t\t fullAddress += \", \" + theApp.state.addressLine2;\r\n\t\t\t }\r\n\t\t\t if (theApp.state.addressLine3 != \"\")\r\n\t\t\t {\r\n\t\t\t\t fullAddress += \", \" + theApp.state.addressLine3;\r\n\t\t\t }\r\n\t\t\t if (theApp.state.addressLine4 != \"\")\r\n\t\t\t {\r\n\t\t\t\t fullAddress += \", \" + theApp.state.addressLine4;\r\n\t\t\t }\r\n\t\t\t fullAddress += \", \" + theApp.state.postcode;\r\n\t\t\t\ttheApp.setState({showAddressAlert: true, fullAddress: fullAddress});\r\n\r\n\t\t\t\t\r\n\t\t\t\t//theApp.setState({original_firstName: theApp.state.firstName, original_surname: theApp.state.surname, original_email: theApp.state.email});\r\n\t\t}, function notfound(xhr) {\r\n\t\t\tconsole.log(xhr);\r\n\t\t\ttheApp.setState({loading: false});\r\n\t\t}, function fail(xhr) {\r\n\t\t\tconsole.log(xhr);\r\n\t\t\ttheApp.setState({loading: false});\r\n\t\t});\r\n\t}\r\n\r\n updateSurname(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.surname = value;\r\n this.setState(nextState);\r\n\t}\r\n\r\n updateFirstName(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.firstName = value;\r\n this.setState(nextState);\r\n\t}\r\n\r\n updateAddressLine1(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.addressLine1 = value;\r\n this.setState(nextState);\r\n\t}\r\n\r\n updateAddressLine2(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.addressLine2 = value;\r\n this.setState(nextState);\r\n\t}\r\n\r\n updateAddressLine3(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.addressLine3 = value;\r\n this.setState(nextState);\r\n\t}\r\n\r\n updateAddressLine4(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.addressLine4 = value;\r\n this.setState(nextState);\r\n\t}\r\n\r\n updatePostcode(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.postcode = value;\r\n this.setState(nextState);\r\n\t}\r\n\t\r\n\tupdateNewPostcode(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.new_postcode = value;\r\n this.setState(nextState);\r\n\t}\r\n\r\n canSubmitNameUpdate() {\r\n return ((this.state.original_firstName != this.state.firstName || this.state.original_surname != this.state.surname) && this.state.namePhoto != null);\r\n\t}\r\n\r\n canSubmitAddressUpdate() {\r\n\t console.log(this.state);\r\n return (this.state.original_addressLine1 != this.state.addressLine1 || this.state.original_addressLine2 != this.state.addressLine2 || this.state.original_addressLine3 != this.state.addressLine3 || this.state.original_addressLine4 != this.state.addressLine4 || this.state.original_postcode != this.state.postcode);\r\n\t}\r\n\r\n\r\n findAddresses() {\r\n const done = (data : any) => {\r\n\t\tthis.setState({addresses: data});\r\n }\r\n const fail = () => {\r\n\t\tthis.setState({addresses: \"\"});\r\n }\r\n this.props.api.postcodeLookup(this.state.new_postcode, done, fail)\r\n }\r\n \r\n formatAddress(address) {\r\n let formattedAddress = ''\r\n if (address.building_name) formattedAddress += `${address.building_name}`\r\n if (address.building_number) formattedAddress += ` ${address.building_number},`\r\n if (address.thoroughfare) formattedAddress += ` ${address.thoroughfare}`\r\n return formattedAddress\r\n }\r\n \r\n setSelectedAddressFn(address){\r\n\tthis.setState({addressLine1: (address.building_number ? address.building_number : address.building_name).concat(' ').concat(address.thoroughfare), addressLine2: address.post_town, addressLine3: '', addressLine4: '', postcode: address.postcode});\r\n\r\n\r\n }\r\n\r\n \r\n render() {\r\n\t let theApp = this;\r\n\t if (this.state.loading)\r\n\t {\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t);\r\n\t }\r\n\t else if (this.state.editingName)\r\n\t {\r\n\t\t return (\r\n\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t Please enter your new name and upload photographic ID or a relevant certificate.\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t Please upload a photo of either photographic ID or a relevant certificate. (jpg, png or pdf)\r\n\t\t\t\t this.onPhotoUploaded(data)} onCancel={() => this.cancelAddPhoto()}/>\r\n\t\t\t\t\t {this.state.namePhotoUploadProgress > 0 ? : null }\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t {\r\n\t\t\t\t\t\ttheApp.setState({showNameAlert: false, editingName: false});\r\n\t\t\t\t\t }}\r\n\t\t\t\t\t onConfirmPressed={() => {\r\n\t\t\t\t\t\ttheApp.setState({showNameAlert: false, editingName: false});\r\n\t\t\t\t\t }}\r\n\t\t\t\t\t/>\r\n\t\t \r\n\t\t );\r\n\t }\r\n\t else if (this.state.editingAddress == true)\r\n\t {\r\n\t\t if (this.state.checkinUK != true)\r\n\t\t {\r\n\t\t\t return (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t Please confirm if your new address is in the UK.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t this.setState({ checkinUK : true, isinUK: true })} text=\"Yes, my new address is in the UK\"/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t this.setState({ checkinUK : true, isinUK: false })} text=\"No, my new address is outside the UK\"/>\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t );\r\n\t\t }\r\n\t\t else if (this.state.isinUK == false)\r\n\t\t {\r\n\t\t\t return (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t Please call us on 01279 456 500. \r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t );\r\n\t\t }\r\n\t\t else\r\n\t\t {\r\n\t\t\t return (\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t Please provide the postcode of your new address.\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t this.findAddresses()} text=\"Look up\"/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\tOr provide the address here:\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t {\r\n\t\t\t\t\t\t\ttheApp.setState({showAddressAlert: false, editingAddress: false});\r\n\t\t\t\t\t\t }}\r\n\t\t\t\t\t\t onConfirmPressed={() => {\r\n\t\t\t\t\t\t\ttheApp.setState({showAddressAlert: false, editingAddress: false});\r\n\t\t\t\t\t\t }}\r\n\t\t\t\t\t\t/>\r\n\t\t\t \r\n\t\t\t );\r\n\t\t }\r\n\t }\r\n\t else\r\n\t {\r\n\treturn (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t The details we hold about you are below. Please click the edit buttons to submit updated details.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t \r\n\t\t\t {\r\n\t\t\t\t\t\ttheApp.setState({showEmailAlert: false});\r\n\t\t\t\t\t }}\r\n\t\t\t\t\t onConfirmPressed={() => {\r\n\t\t\t\t\t\ttheApp.setState({showEmailAlert: false});\r\n\t\t\t\t\t }}\r\n\t\t\t\t\t/>\r\n \r\n );\r\n\t }\r\n }\r\n \r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default PersonalDetails;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport LabeledEditTextField from '../../components/LabeledEditTextField'\r\nimport AwesomeAlert from 'react-native-awesome-alerts';\r\n\r\nimport { StyleSheet, View, Text, Linking } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\nclass VehicleDetails extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\t\r\n\tthis.state = {\r\n VRN: props.policies.vehicle.VRN\r\n };\r\n\tthis.updateVRN = this.updateVRN.bind(this);\r\n\tthis.saveDetails = this.saveDetails.bind(this);\r\n }\r\n\r\n updateVRN(value: string) {\r\n var nextState = Object.assign({}, this.state);\r\n nextState.VRN = value;\r\n this.setState(nextState);\r\n }\r\n\r\n saveDetails(value: string) {\r\n\tlet theApp = this;\r\n\tif (this.props.policies.vehicle.VRN != value)\r\n\t{\r\n\t\tthis.props.api.updateVRN(this.props.policies.id, this.props.policies.vehicle.VRN, value, function done(details) {\r\n\t\t\t\ttheApp.setState({showVRNAlert: true});\r\n\t\t}, function notFound() {\r\n\t\t\ttheApp.setState({loading: false, showVRNError: true});\r\n\t\t}, function fail(xhr) {\r\n\t\t\tconsole.log(xhr);\r\n\t\t\ttheApp.setState({loading: false, showVRNError: true});\r\n\t\t});\r\n\t}\r\n }\r\n\r\n render() {\r\n\t let theApp = this;\r\n\treturn (\r\n \r\n \r\n\t\t\r\n\t\t\t\r\n\t\t\t The details we hold about your vehicle are below. Please click the edit buttons to submit updated details.\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tPlease note:\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t- If you have only recently updated your VRN with the DVLA please allow up to 10 days before you submit your amendment on our system, as our system will only accept VRNs that have been fully processed and updated on the DVLA system.\r\n\t\t\t\r\n\t\t - This VRN amendment is for a personalised plate changes or a correction of the original VRN only.\r\nIf you are requesting to transfer your vehicle to a new vehicle, please refer to your terms and conditions that outline the process and e-mail your request to Linking.openURL('mailto:customersupport@autoprotect.net')}>customersupport@autoprotect.net.\r\n\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t \r\n\t\t\t {\r\n\t\t\t\t\t\ttheApp.setState({showVRNAlert: false});\r\n\t\t\t\t\t }}\r\n\t\t\t\t\t onConfirmPressed={() => {\r\n\t\t\t\t\t\ttheApp.setState({showVRNAlert: false});\r\n\t\t\t\t\t }}\r\n\t\t\t\t\t/>\r\n\t\t\t {\r\n\t\t\t\t\t\ttheApp.setState({showVRNError: false});\r\n\t\t\t\t\t }}\r\n\t\t\t\t\t onConfirmPressed={() => {\r\n\t\t\t\t\t\ttheApp.setState({showVRNError: false});\r\n\t\t\t\t\t }}\r\n\t\t\t\t\t/>\r\n \r\n );\r\n }\r\n \r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default VehicleDetails;\r\n","import React, { Component } from 'react';\r\nimport Bottom from '../../components/Bottom';\r\nimport DefaultButton from '../../components/DefaultButton';\r\nimport ScreenHeading from '../../components/ScreenHeading';\r\nimport LabeledEditTextField from '../../components/LabeledEditTextField'\r\nimport Waiting from '../../SignIn/Waiting';\r\n//import Pdf from 'react-native-pdf';\r\n\r\nimport { StyleSheet, View, Text, Linking, Dimensions } from 'react-native'\r\nimport Para from '../../components/Para'\r\nimport Styles from '../../../constants/Styles'\r\n\r\n\tfunction base64ToBlob( base64, type = \"application/octet-stream\" ) {\r\n\t const binStr = atob( base64 );\r\n\t const len = binStr.length;\r\n\t const arr = new Uint8Array(len);\r\n\t for (let i = 0; i < len; i++) {\r\n\t\tarr[ i ] = binStr.charCodeAt( i );\r\n\t }\r\n\t return new Blob( [ arr ], { type: type } );\r\n\t}\r\n\r\n\r\nclass PolicyDocumentation extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\t\r\n\tthis.state = {\r\n policyData: null,\r\n documentName: '',\r\n documentName: '',\r\n\t loading: true,\r\n\t IsDocumentRecreationPending: false,\r\n\t document_showing: false\r\n };\r\n\t\r\n\tthis.downloadDocument = this.downloadDocument.bind(this);\r\n\r\n\r\n\tlet theApp = this;\r\n\tconsole.log(props.policies);\r\n\tthis.props.api.getPolicyDocument(props.policies.id, function done(details) {\r\n\t if (details) {\r\n\t\t console.log(details);\r\n\t\t theApp.setState({ policyData: details.DocumentData, documentName: details.DocumentName, IsDocumentRecreationPending: details.IsDocumentRecreationPending, loading: false });\r\n\t }\r\n\t}, function fail(xhr) {\r\n\t\tconsole.log(xhr);\r\n\t\ttheApp.setState({loading: false});\r\n\t});\r\n }\r\n \r\n downloadDocument() {\r\n\t //Linking.openURL('data:application/pdf;base64,' + this.state.policyData);\r\n\t //window.open('data:application/pdf;base64,' + this.state.policyData, '_blank')\r\n\t //this.setState({document_showing: true});\r\n\t \r\n\t /*var base64 = (this.state.policyData)\r\n\t\tconst blob = base64ToBlob( base64, 'application/pdf' );\r\n\t\tconst url = URL.createObjectURL( blob );\r\n\t\tconst pdfWindow = window.open(\"\");\r\n\t\tpdfWindow.document.write(\"\");*/\r\n }\r\n\r\n\r\n render() {\r\n\t let theApp = this;\r\n\t if (this.state.loading)\r\n\t {\r\n\t\t\treturn (\r\n\t\t\t \r\n\t\t\t);\r\n\t }\r\n\t else if (this.state.policyData == null) {\r\n\t\t return (\r\n\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t There is currently no policy documentation available. Please check back later.\r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t );\r\n\t }\r\n\t else if (this.state.document_showing == true) {\r\n\treturn (\r\n\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t);\r\n\t\t \r\n\t }\r\n\t else if (this.state.IsDocumentRecreationPending == true) {\r\n\treturn (\r\n\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t Your policy documentation is currently in the process of being updated. Please check back later.\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t);\r\n\t\t \r\n\t }\r\n\t else {\r\n\treturn (\r\n\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t Click the button below to view your policy documentation.\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t);\r\n\t }\r\n }\r\n \r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Styles.standardPadding\r\n }\r\n})\r\n\r\nexport default PolicyDocumentation;\r\n","import React, { Component } from 'react';\r\nimport { View } from 'react-native'\r\nimport Options from './Options';\r\nimport TrustPilot from './TrustPilot';\r\n\r\nimport Warranty from '../apps/Warranty/Warranty';\r\nimport Alloy from '../apps/Alloy/Alloy';\r\nimport Gap from '../apps/Gap/Gap';\r\nimport Gapclaimed from '../apps/Gapclaimed/Gapclaimed';\r\nimport Smart from '../apps/Smart/Smart';\r\nimport Tyre from '../apps/Tyre/Tyre';\r\nimport Cancellation from '../apps/Cancellation/Cancellation';\r\nimport PersonalDetails from '../apps/PersonalDetails/PersonalDetails';\r\nimport VehicleDetails from '../apps/VehicleDetails/VehicleDetails';\r\nimport PolicyDocumentation from '../apps/PolicyDocumentation/PolicyDocumentation';\r\n\r\nclass MainMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentApp: '',\r\n policy: null,\r\n\t policies: this.props.policies.policies,\r\n\t existingClaimEmail: '',\r\n\t existingClaimId: ''\r\n };\r\n\r\n this.handleStartApp = this.handleStartApp.bind(this);\r\n }\r\n\r\n handleStartApp(whichApp, policy = null, existingClaimEmail = '', existingClaimId = '') {\r\n this.setState({ currentApp: whichApp, policy: policy, existingClaimEmail: existingClaimEmail, existingClaimId: existingClaimId });\r\n }\r\n\r\n returnToMainMenu() {\r\n this.setState({currentApp: ''});\r\n }\r\n\r\n returnToWelcome() {\r\n this.setState({currentApp: 'trustpilot'});\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {this.screen()}\r\n \r\n );\r\n }\r\n\r\n screen() {\r\n if (this.state.currentApp === \"trustpilot\") {\r\n return ( this.props.onDone()} />);\r\n } else if (this.state.currentApp === \"smart\") {\r\n return ( this.returnToWelcome()} onDone={() => this.returnToMainMenu()}/>);\r\n } else if (this.state.currentApp === \"warranty\") {\r\n return ( this.returnToMainMenu()}/>);\r\n } else if (this.state.currentApp === \"alloy\") {\r\n return ( this.returnToWelcome()} onDone={() => this.returnToMainMenu()}/>);\r\n } else if (this.state.currentApp === \"tyre\") {\r\n return ( this.returnToWelcome()} onDone={() => this.returnToMainMenu()}/>);\r\n } else if (this.state.currentApp === \"gap\") {\r\n return ( this.returnToMainMenu()}/>);\r\n } else if (this.state.currentApp === \"gapclaimed\") {\r\n return (\r\n\t this.returnToMainMenu()}/>\r\n\t );\r\n } else if (this.state.currentApp === \"cancellation\") {\r\n return ( this.returnToMainMenu()}/>);\r\n } else if (this.state.currentApp === \"personalDetails\") {\r\n return ( this.returnToMainMenu()}/>);\r\n } else if (this.state.currentApp === \"vehicleDetails\") {\r\n return ( this.returnToMainMenu()}/>);\r\n } else if (this.state.currentApp === \"policyDocumentation\") {\r\n return ( this.returnToMainMenu()}/>);\r\n } else {\r\n return ( this.props.goBack()}/>);\r\n }\r\n }\r\n}\r\n\r\nexport default MainMenu;\r\n","import React, { FunctionComponent } from 'react'\r\nimport { Image, Linking, StyleSheet, TouchableOpacity, View } from 'react-native'\r\nimport Styles from '../../constants/Styles'\r\nimport faq from '../faq.png';\r\nimport home from '../home.png';\r\nimport logo from '../logo.png';\r\nimport Para from './Para'\r\n\r\ntype NavigationBarIconsProps = {\r\n goHome: Function\r\n logout: Function\r\n loggedin: Any\r\n}\r\n\r\nconst NavigationBarIcons: FunctionComponent = ({ goHome, loggedin, logout }) => {\r\n return autoprotectNav({ goHome, loggedin, logout })\r\n}\r\n\r\nconst autoprotectNav: FunctionComponent = ({ goHome, loggedin, logout }) => {\r\n const faqLink = 'https://www.autoprotect.co.uk/customer_support'\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\t\t {loggedin == false ?\r\n Linking.openURL(`${faqLink}`)}>\r\n \r\n\t\t : \r\n Logout\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n navigationBarIcons: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n paddingHorizontal: Styles.standardPadding\r\n },\r\n navigationBarLogo: {\r\n height: 47,\r\n width: 151,\r\n\tmarginTop: 3\r\n },\r\n navigationBarIconSmall: {\r\n\tmarginTop: 10,\r\n height: 30,\r\n width: 38\r\n }\r\n})\r\n\r\nexport default NavigationBarIcons\r\n","import React from 'react'\r\nimport { StyleSheet, View } from 'react-native'\r\nimport Colors from '../../constants/Colors'\r\nimport NavigationBarIcons from '../components/NavigationBarIcons'\r\n\r\ntype NavigationBarProps = {\r\n goHome: Function\r\n logout: Function\r\n loggedin: Any\r\n}\r\n\r\nconst NavigationBar = ({ goHome, logout, loggedin }: NavigationBarProps) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n navigationBar: {\r\n backgroundColor: Colors.primaryPurple, // AP\r\n //backgroundColor: Colors.white, // Shine\r\n color: Colors.white, // AP\r\n //color: Colors.dark, // Shine\r\n paddingBottom: 15,\r\n paddingTop: 15\r\n }\r\n})\r\n\r\nexport default NavigationBar\r\n","import React, { Component } from 'react';\r\nimport { StyleSheet, View, Image, Platform } from 'react-native'\r\n//import IdleTimer from 'react-idle-timer';\r\nimport API from './API';\r\nimport Styles from './../constants/Styles'\r\nimport faq from './faq.png';\r\nimport home from './home.svg';\r\nimport logo from './logo.png';\r\nimport Welcome from './Welcome';\r\nimport CreditCardWarning from './CreditCardWarning';\r\nimport SignIn from './SignIn/SignIn';\r\nimport MainMenu from './MainMenu/MainMenu';\r\n//import CancellationBankDetailsReminder from './apps/Cancellation/CancellationBankDetailsReminder';\r\nimport NavigationBar from './components/NavigationBar'\r\nimport AsyncStorage from '@react-native-async-storage/async-storage'\r\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\r\n\r\nimport {\r\n useSearchParams\r\n} from \"react-router-dom\";\r\n\r\nclass MainApp extends Component {\r\n constructor() {\r\n super();\r\n\t\r\n\tif (Platform.OS == \"web\")\r\n\t{\r\n\t\tconst query = new URLSearchParams(window.location.search);\r\n\t\t\r\n\t\tAsyncStorage.setItem('submittedBy', '')\r\n\t\tthis.submittedBy = query.get('aps');\r\n\t\tif(this.submittedBy != null)\r\n\t\t{\r\n\t\t\tAsyncStorage.setItem('details.firstName', '')\r\n\t\t\tAsyncStorage.setItem('details.surname', '')\r\n\t\t\tAsyncStorage.setItem('details.registrationNumber', '')\r\n\t\t\tAsyncStorage.setItem('details.postcode', '')\r\n\t\t\tAsyncStorage.setItem('details.mobileNumber', '')\r\n\t\t\tAsyncStorage.setItem('details.email', '')\r\n\t\t\tAsyncStorage.setItem('details.repeatEmail', '')\r\n\t\t\tAsyncStorage.setItem('details.mileage', '')\r\n\t\t\tAsyncStorage.setItem('firstName', '')\r\n\t\t\tAsyncStorage.setItem('surname', '')\r\n\t\t\tAsyncStorage.setItem('mobileNumber', '')\r\n\t\t\tAsyncStorage.setItem('email', '')\r\n\t\t\tAsyncStorage.setItem('registrationNumber', '')\r\n\t\t\tAsyncStorage.setItem('postcode', '')\r\n\t\t\tAsyncStorage.setItem('policyNumber', '')\r\n\t\t\tAsyncStorage.setItem('repeatEmail', '')\r\n\t\t\tAsyncStorage.setItem('mileage', '')\r\n\t\t\tAsyncStorage.setItem('alloyDamageDescription', '')\r\n\t\t\t\r\n\t\t\tAsyncStorage.setItem('submittedBy', this.submittedBy)\r\n\t\t}\r\n\t}\r\n\r\n this.api = new API();\r\n this.idleTimeout = 30 * 60 * 1000;\r\n\r\n this.state = {\r\n authenticated: false,\r\n welcomed: false,\r\n creditCardWarned: false,\r\n\t cancel_thanks: false,\r\n\t backToEnd: false,\r\n details: {\r\n registrationNumber: AsyncStorage.getItem('registrationNumber') || '',\r\n postcode: AsyncStorage.getItem('postcode') || '',\r\n policyNumber: AsyncStorage.getItem('policyNumber') || '',\r\n firstName: AsyncStorage.getItem('firstName') || '',\r\n surname: AsyncStorage.getItem('surname') || '',\r\n mobileNumber: AsyncStorage.getItem('mobileNumber') || '',\r\n email: AsyncStorage.getItem('email') || ''\r\n },\r\n policies: []\r\n };\r\n\r\n this.onAuthenticated = this.onAuthenticated.bind(this);\r\n this.onPreviouslyAuthenticated = this.onPreviouslyAuthenticated.bind(this);\r\n this.updatePolicies = this.updatePolicies.bind(this);\r\n\tthis.startAgain = this.startAgain.bind(this);\r\n\tthis.logout = this.logout.bind(this);\r\n }\r\n\r\n onAuthenticated(details, policies) {\r\n\t console.log(details);\r\n\tAsyncStorage.setItem('registrationNumber', details.registrationNumber)\r\n\tAsyncStorage.setItem('postcode', details.postcode)\r\n\tAsyncStorage.setItem('policyNumber', details.postcode)\r\n this.setState(\r\n Object.assign({}, this.state, {\r\n authenticated: true, details: details, policies: policies\r\n })\r\n );\r\n }\r\n\r\n onPreviouslyAuthenticated(policies) {\r\n this.setState(\r\n Object.assign({}, this.state, {\r\n authenticated: true, policies: policies\r\n })\r\n );\r\n }\r\n\r\n updatePolicies(policies) {\r\n this.setState({policies: policies});\r\n }\r\n\r\n onWelcomed() {\r\n this.setState({welcomed: true});\r\n }\r\n\r\n onCreditCardWarned() {\r\n this.setState({creditCardWarned: true});\r\n }\r\n \r\n startAgain() {\r\n this.setState({welcomed: false, authenticated: false, backToEnd: false});\r\n }\r\n\r\n logout() {\r\n\tAsyncStorage.setItem('ast', '', () => {\r\n\t\tthis.setState({welcomed: false, authenticated: false, backToEnd: false})\r\n\t});\r\n }\r\n\r\n render() {\r\n return (\r\n\t\t\r\n\t\t\t \r\n\t\t\t\t this.startAgain()} loggedin={this.state.authenticated} logout={() => this.logout()}>\r\n\t\t\t \r\n\t\t\t \r\n\t\t\t\t{this.screen()}\r\n\t\t\t \r\n\t\t\r\n );\r\n }\r\n\r\n screen() {\r\n\t//let { searchParams } = useSearchParams()\r\n\tconst bd = null//searchParams.get(\"bd\")//getParameterByName(\"bd\")\r\n\tif (bd != null)\r\n\t{\r\n\t\t//return ;\r\n\t}\r\n else if (!this.state.welcomed) {\r\n return this.onWelcomed()}/>;\r\n } else if (this.state.authenticated) {\r\n return ( this.setState({authenticated: false, backToEnd: true})} onDone={() => this.startAgain()}/>);\r\n } else {\r\n return ( this.startAgain()}/>);\r\n }\r\n }\r\n}\r\n\r\nfunction getParameterByName(name, url = window.location.href) {\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n}\r\n\r\nexport default MainApp;\r\n","import { registerRootComponent } from 'expo';\n\nimport App from './App';\n\n// registerRootComponent calls AppRegistry.registerComponent('main', () => App);\n// It also ensures that whether you load the app in Expo Go or in a native build,\n// the environment is set up appropriately\nregisterRootComponent(App);\n","import { StatusBar } from 'expo-status-bar';\r\nimport { StyleSheet, Text, View } from 'react-native';\r\nimport { Provider } from 'react-redux'\r\nimport store from './redux/Store'\r\nimport { createStackNavigator } from '@react-navigation/stack'\r\nimport { NavigationContainer } from '@react-navigation/native'\r\n\r\nimport MainApp from './src/MainApp'\r\n\r\nexport default function App() {\r\n\tconst Stack = createStackNavigator()\r\n\t\r\nreturn (\r\n \r\n \r\n\t\t\r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\n","var map = {\n\t\"./af\": 7582,\n\t\"./af.js\": 7582,\n\t\"./ar\": 3042,\n\t\"./ar-dz\": 4265,\n\t\"./ar-dz.js\": 4265,\n\t\"./ar-kw\": 2553,\n\t\"./ar-kw.js\": 2553,\n\t\"./ar-ly\": 5352,\n\t\"./ar-ly.js\": 5352,\n\t\"./ar-ma\": 7097,\n\t\"./ar-ma.js\": 7097,\n\t\"./ar-ps\": 6150,\n\t\"./ar-ps.js\": 6150,\n\t\"./ar-sa\": 4427,\n\t\"./ar-sa.js\": 4427,\n\t\"./ar-tn\": 7221,\n\t\"./ar-tn.js\": 7221,\n\t\"./ar.js\": 3042,\n\t\"./az\": 458,\n\t\"./az.js\": 458,\n\t\"./be\": 7596,\n\t\"./be.js\": 7596,\n\t\"./bg\": 3830,\n\t\"./bg.js\": 3830,\n\t\"./bm\": 7044,\n\t\"./bm.js\": 7044,\n\t\"./bn\": 8573,\n\t\"./bn-bd\": 3296,\n\t\"./bn-bd.js\": 3296,\n\t\"./bn.js\": 8573,\n\t\"./bo\": 5614,\n\t\"./bo.js\": 5614,\n\t\"./br\": 2041,\n\t\"./br.js\": 2041,\n\t\"./bs\": 1786,\n\t\"./bs.js\": 1786,\n\t\"./ca\": 5833,\n\t\"./ca.js\": 5833,\n\t\"./cs\": 2711,\n\t\"./cs.js\": 2711,\n\t\"./cv\": 1036,\n\t\"./cv.js\": 1036,\n\t\"./cy\": 4977,\n\t\"./cy.js\": 4977,\n\t\"./da\": 8770,\n\t\"./da.js\": 8770,\n\t\"./de\": 7342,\n\t\"./de-at\": 1566,\n\t\"./de-at.js\": 1566,\n\t\"./de-ch\": 7544,\n\t\"./de-ch.js\": 7544,\n\t\"./de.js\": 7342,\n\t\"./dv\": 2875,\n\t\"./dv.js\": 2875,\n\t\"./el\": 8536,\n\t\"./el.js\": 8536,\n\t\"./en-au\": 8617,\n\t\"./en-au.js\": 8617,\n\t\"./en-ca\": 9227,\n\t\"./en-ca.js\": 9227,\n\t\"./en-gb\": 9754,\n\t\"./en-gb.js\": 9754,\n\t\"./en-ie\": 7217,\n\t\"./en-ie.js\": 7217,\n\t\"./en-il\": 5418,\n\t\"./en-il.js\": 5418,\n\t\"./en-in\": 800,\n\t\"./en-in.js\": 800,\n\t\"./en-nz\": 7299,\n\t\"./en-nz.js\": 7299,\n\t\"./en-sg\": 6305,\n\t\"./en-sg.js\": 6305,\n\t\"./eo\": 8673,\n\t\"./eo.js\": 8673,\n\t\"./es\": 1301,\n\t\"./es-do\": 3187,\n\t\"./es-do.js\": 3187,\n\t\"./es-mx\": 8223,\n\t\"./es-mx.js\": 8223,\n\t\"./es-us\": 7634,\n\t\"./es-us.js\": 7634,\n\t\"./es.js\": 1301,\n\t\"./et\": 4976,\n\t\"./et.js\": 4976,\n\t\"./eu\": 1847,\n\t\"./eu.js\": 1847,\n\t\"./fa\": 4372,\n\t\"./fa.js\": 4372,\n\t\"./fi\": 1628,\n\t\"./fi.js\": 1628,\n\t\"./fil\": 6802,\n\t\"./fil.js\": 6802,\n\t\"./fo\": 2874,\n\t\"./fo.js\": 2874,\n\t\"./fr\": 9853,\n\t\"./fr-ca\": 7170,\n\t\"./fr-ca.js\": 7170,\n\t\"./fr-ch\": 2825,\n\t\"./fr-ch.js\": 2825,\n\t\"./fr.js\": 9853,\n\t\"./fy\": 8876,\n\t\"./fy.js\": 8876,\n\t\"./ga\": 3533,\n\t\"./ga.js\": 3533,\n\t\"./gd\": 2770,\n\t\"./gd.js\": 2770,\n\t\"./gl\": 8602,\n\t\"./gl.js\": 8602,\n\t\"./gom-deva\": 3059,\n\t\"./gom-deva.js\": 3059,\n\t\"./gom-latn\": 8212,\n\t\"./gom-latn.js\": 8212,\n\t\"./gu\": 5790,\n\t\"./gu.js\": 5790,\n\t\"./he\": 7210,\n\t\"./he.js\": 7210,\n\t\"./hi\": 4750,\n\t\"./hi.js\": 4750,\n\t\"./hr\": 1315,\n\t\"./hr.js\": 1315,\n\t\"./hu\": 7626,\n\t\"./hu.js\": 7626,\n\t\"./hy-am\": 1317,\n\t\"./hy-am.js\": 1317,\n\t\"./id\": 6892,\n\t\"./id.js\": 6892,\n\t\"./is\": 7577,\n\t\"./is.js\": 7577,\n\t\"./it\": 7628,\n\t\"./it-ch\": 3046,\n\t\"./it-ch.js\": 3046,\n\t\"./it.js\": 7628,\n\t\"./ja\": 2504,\n\t\"./ja.js\": 2504,\n\t\"./jv\": 5917,\n\t\"./jv.js\": 5917,\n\t\"./ka\": 4513,\n\t\"./ka.js\": 4513,\n\t\"./kk\": 4935,\n\t\"./kk.js\": 4935,\n\t\"./km\": 6661,\n\t\"./km.js\": 6661,\n\t\"./kn\": 9964,\n\t\"./kn.js\": 9964,\n\t\"./ko\": 8067,\n\t\"./ko.js\": 8067,\n\t\"./ku\": 1165,\n\t\"./ku-kmr\": 5158,\n\t\"./ku-kmr.js\": 5158,\n\t\"./ku.js\": 1165,\n\t\"./ky\": 1177,\n\t\"./ky.js\": 1177,\n\t\"./lb\": 2967,\n\t\"./lb.js\": 2967,\n\t\"./lo\": 1972,\n\t\"./lo.js\": 1972,\n\t\"./lt\": 8469,\n\t\"./lt.js\": 8469,\n\t\"./lv\": 3155,\n\t\"./lv.js\": 3155,\n\t\"./me\": 7935,\n\t\"./me.js\": 7935,\n\t\"./mi\": 4483,\n\t\"./mi.js\": 4483,\n\t\"./mk\": 2501,\n\t\"./mk.js\": 2501,\n\t\"./ml\": 3120,\n\t\"./ml.js\": 3120,\n\t\"./mn\": 266,\n\t\"./mn.js\": 266,\n\t\"./mr\": 9406,\n\t\"./mr.js\": 9406,\n\t\"./ms\": 109,\n\t\"./ms-my\": 864,\n\t\"./ms-my.js\": 864,\n\t\"./ms.js\": 109,\n\t\"./mt\": 2904,\n\t\"./mt.js\": 2904,\n\t\"./my\": 4067,\n\t\"./my.js\": 4067,\n\t\"./nb\": 3682,\n\t\"./nb.js\": 3682,\n\t\"./ne\": 1152,\n\t\"./ne.js\": 1152,\n\t\"./nl\": 6735,\n\t\"./nl-be\": 7761,\n\t\"./nl-be.js\": 7761,\n\t\"./nl.js\": 6735,\n\t\"./nn\": 7569,\n\t\"./nn.js\": 7569,\n\t\"./oc-lnc\": 3214,\n\t\"./oc-lnc.js\": 3214,\n\t\"./pa-in\": 3044,\n\t\"./pa-in.js\": 3044,\n\t\"./pl\": 4249,\n\t\"./pl.js\": 4249,\n\t\"./pt\": 7585,\n\t\"./pt-br\": 6826,\n\t\"./pt-br.js\": 6826,\n\t\"./pt.js\": 7585,\n\t\"./ro\": 2526,\n\t\"./ro.js\": 2526,\n\t\"./ru\": 2204,\n\t\"./ru.js\": 2204,\n\t\"./sd\": 3270,\n\t\"./sd.js\": 3270,\n\t\"./se\": 1541,\n\t\"./se.js\": 1541,\n\t\"./si\": 1921,\n\t\"./si.js\": 1921,\n\t\"./sk\": 9935,\n\t\"./sk.js\": 9935,\n\t\"./sl\": 6254,\n\t\"./sl.js\": 6254,\n\t\"./sq\": 9897,\n\t\"./sq.js\": 9897,\n\t\"./sr\": 2496,\n\t\"./sr-cyrl\": 1135,\n\t\"./sr-cyrl.js\": 1135,\n\t\"./sr.js\": 2496,\n\t\"./ss\": 2215,\n\t\"./ss.js\": 2215,\n\t\"./sv\": 4716,\n\t\"./sv.js\": 4716,\n\t\"./sw\": 803,\n\t\"./sw.js\": 803,\n\t\"./ta\": 1538,\n\t\"./ta.js\": 1538,\n\t\"./te\": 2302,\n\t\"./te.js\": 2302,\n\t\"./tet\": 5280,\n\t\"./tet.js\": 5280,\n\t\"./tg\": 4100,\n\t\"./tg.js\": 4100,\n\t\"./th\": 5385,\n\t\"./th.js\": 5385,\n\t\"./tk\": 736,\n\t\"./tk.js\": 736,\n\t\"./tl-ph\": 9726,\n\t\"./tl-ph.js\": 9726,\n\t\"./tlh\": 1873,\n\t\"./tlh.js\": 1873,\n\t\"./tr\": 6463,\n\t\"./tr.js\": 6463,\n\t\"./tzl\": 7491,\n\t\"./tzl.js\": 7491,\n\t\"./tzm\": 9500,\n\t\"./tzm-latn\": 196,\n\t\"./tzm-latn.js\": 196,\n\t\"./tzm.js\": 9500,\n\t\"./ug-cn\": 1287,\n\t\"./ug-cn.js\": 1287,\n\t\"./uk\": 5341,\n\t\"./uk.js\": 5341,\n\t\"./ur\": 6246,\n\t\"./ur.js\": 6246,\n\t\"./uz\": 5550,\n\t\"./uz-latn\": 7254,\n\t\"./uz-latn.js\": 7254,\n\t\"./uz.js\": 5550,\n\t\"./vi\": 8796,\n\t\"./vi.js\": 8796,\n\t\"./x-pseudo\": 2736,\n\t\"./x-pseudo.js\": 2736,\n\t\"./yo\": 8621,\n\t\"./yo.js\": 8621,\n\t\"./zh-cn\": 7601,\n\t\"./zh-cn.js\": 7601,\n\t\"./zh-hk\": 9053,\n\t\"./zh-hk.js\": 9053,\n\t\"./zh-mo\": 1248,\n\t\"./zh-mo.js\": 1248,\n\t\"./zh-tw\": 4725,\n\t\"./zh-tw.js\": 4725\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5358;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkweb\"] = self[\"webpackChunkweb\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [756], () => (__webpack_require__(8466)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["detailsSlice","createSlice","name","initialState","value","email","firstName","mileage","mobileNumber","postcode","registrationNumber","policyNumber","repeatEmail","surname","damageDate","reducers","setDetails","state","action","payload","setEmail","setFirstName","setMileage","setMobileNumber","setPostcode","setRegistrationNumber","setPolicyNumber","setRepeatEmail","setSurname","setDamageDate","actions","lossSlice","setLoss","policySlice","setPolicy","allPhotos","id","damageLocation","damageType","date","meetsShineBusinessRules","vehicleAddress","vehiclePostcode","smartClaimSlice","addPhoto","push","deletePhoto","filter","image","clearPhotos","length","setDamageLocation","setDamageType","setVehiclePostcode","String","configureStore","reducer","details","detailsSliceReducer","policy","policySliceReducer","loss","lossSliceReducer","smartClaim","smartClaimReducer","constructor","this","urlBase","apiBase","username","password","standardTimeout","accessToken","accessTokenExpiresIn","accessTokenExpiryTime","sessionToken","tfaToken","theApp","AsyncStorage","getItem","err","result","submittedBy","getAccessToken","warrantyPhoto","bind","alloyPhoto","tyrePhoto","smartPhoto","xWwwFormUrlEncoded","data","components","property","encodedKey","encodeURIComponent","encodedValue","join","api","grant_type","response","fetch","method","headers","body","json","access_token","expires_in","Date","now","timeoutPromise","ms","Promise","res","setTimeout","policies","done","notFound","fail","url","race","accessHeaders","status","session_token","e","policyDetails","getContactDetails","setContactDetails","emailAddress","lastName","text","updateName","previousFirstName","newFirstName","previousLastName","newLastName","imageData","progress","mimeString","split","blob","fd","FormData","manipResult","ImageManipulator","manipulateAsync","resize","width","compress","format","PNG","base64","dataURItoBlob","uri","append","axios","request","accessHeadersFormData","timeout","onUploadProgress","p","loaded","total","then","catch","error","console","log","finally","updateAddress","addressLine1","addressLine2","addressLine3","addressLine4","updateVRN","previousVRN","newVRN","rehydrateSession","token","refundAmount","policyNo","formatDate","amount","sendTFACode","checkTFACode","code","retVal1","substring","setItem","postcodeLookup","shineDatesLookup","Results","shineAlloyDatesLookup","cancellation","reason","product","cancellationBankDetails","cancellationId","accountName","sortCode","accountNumber","gapClaim","insurerDate","financed","settlementAccepted","incidentDate","incident","newforold","resendGapEmail","gapClaimId","warrantyClaim","faultCategory","additionalInfo","vehicleLocation","claimId","photoType","uploadProgress","uploadPhoto","alloyClaim","description","chosenWheel","wheelType","tyreClaim","isDrivable","smartRepairDate","address","repair_date","booking_Key","alloyRepairDate","endpoint","claimIdParam","dataURItoBlobWeb","uploadPhotos","photoFunc","photos","each","photo","callback","type","xhr","dtnow","d","month","getMonth","day","getDate","year","getFullYear","dataURI","byteString","indexOf","atob","unescape","ia","Uint8Array","i","charCodeAt","Blob","ab","ArrayBuffer","buffer","paddingAmount","Dimensions","get","standardPadding","outerContainer","alignSelf","fontSize","bottom","marginTop","boxSizing","marginBottom","defaultButton","color","backgroundColor","lineHeight","padding","display","border","cursor","borderRadius","optionsButton","paddingBottom","AppHeader","position","AppInfo","height","top","right","AppInfoImg","AppHomeImg","marginLeft","fill","AppLogo","left","AppIntro","AppBody","cardetailsbox","listButton","refundTableColumnLeft","container","paddingHorizontal","linkstyle","textDecorationLine","bullet","textStyle","props","_jsx","View","style","styles","children","StyleSheet","create","buttonText","fontWeight","textAlign","textTransform","newStyle","Pressable","onPress","onClick","Text","Heading","bold","centerAlign","windowWidth","SetWindowWidth","useState","imageHeight","SetImageHeight","imageHeightMobile","SetImageHeightMobile","useEffect","_jsxs","Image","source","imageSource","resizeMode","imageSourceMobile","Para","VerticalSpace","Bottom","DefaultButton","onContinue","textBannerContainer","textBanner","goBack","navBannerContainer","TouchableOpacity","navBanner","Colors","paddingVertical","Styles","phoneButtonLabel","margin","phoneButtonLink","textDecoration","Linking","openURL","FailedSignIn","navigation","onTryAgain","onRequestCallback","goHome","ScreenHeading","PhoneButton","maxWidth","ButtonList","buttonList","disabledButton","condition","DisabledButton","LabeledTextField","label","onChange","placeholder","TextInput","textInput","onChangeText","borderWidth","PolicySignIn","Component","super","handleFieldChange","canContinue","continue","setState","render","ConditionalButton","onNoAgreementNumber","onFail","StandardSignIn","setButtonText","useSelector","async","updateSurname","store","dispatch","updateRegistrationNumber","updatePostcode","PolicyHolder","onPolicyHolder","onNotPolicyHolder","NotPolicyHolder","onDone","YourDetails","onSubmit","updateFirstName","updateMobileNumber","updateEmail","updateRepeatEmail","updateMileage","YourVehicle","onNotYourVehicle","carModelState","setCarModelState","vehicle","model","carRegistrationState","setRegistrationState","s","substringToBeReplaced","replace","replaceAllButLastThree","VRN","dealerNameState","setDealerNameState","dealer_name","val","truncateAfter15","Waiting","waitingimagewrapper","waitingimage","waitingimg","alt","SignInTFA","contact_mechanism","contact_details","submitting","loading","token_expiry_time","new_request","handleCodeChange","submitCode","canSubmit","SendTFACode","ReSendTFACode","startTime","moment","expTime","add","SignIn","signInType","handlePolicySignIn","handleStandardSignIn","handleNotPolicyHolder","handlePolicyHolder","handleSubmitDetails","handleTFA","handleTryAgain","handleYourVehicle","componentDidMount","backToEnd","ast","nextState","Object","assign","handleSignIn","notFoundScreen","signIn","userSession","onAuthenticated","policyIncluding","productName","l","LossTypes","Name","toLowerCase","isPendingCancellation","anyCancellablePolicies","includePending","cancellablePolicies","cancellable","isCancellable","hasExistingClaim","retVal","existingClaimEmail","existingClaimEmailAddress","existingClaimId","Options","productInfo","ProductInfo","personalDetails","vehicleDetails","alloy","gap","smart","tyre","onStartApp","policyDocumentation","warranty","TrustPilot","DatePicker","formattedDate","toISOString","pickerVisible","setDayOfMonth","setMonth","setFullYear","handleConfirm","hideDatePicker","showDatePicker","className","getMonthName","handlewebConfirm","newdate","parts","target","mydate","event","oldDate","WarrantyDate","setDate","newDate","selectedButton","selected","WarrantyFaultCategory","AirConditioning","InCarentertainment_Satnav","Brakes","CentralLocking","Clutch","Radiator_WaterPump","Driveshafts","Engine","Fuel_Ignition","Gearbox_Automatic","Gearbox_Manual","Lights","Mirrors","Steering","Windows","Wipers","Other","handleChosenType","a","SelectedButton","getChosenTypes","retval","slice","WarrantyAdditionalInfo","additionalInfoChanged","multiline","numberOfLines","textAlignVertical","WarrantyLocation","vehicleLocationChanged","keepTyping","PhotoPreviewManage","isOpen","handleShowDialog","rowInnerContainer","imageContainer","rowImage","containedImage","imageOverlay","rowContainer","flexDirection","justifyContent","alignItems","onDelete","index","zIndex","paddingTop","popupclosebutton","MultiplePhotoUploadTogether","addingPhoto","errorDisplay","heading","removePhoto","pickImage","isValidImage","setErrorDisplay","onPhotoUploaded","cancelAddPhoto","splice","multiplePhotoUploadTogether","ImagePicker","launchImageLibraryAsync","mediaTypes","Images","aspect","quality","cancelled","assets","previews","PhotoPreviewWithDeleteNew","WarrantyPhotos","images","managingPhotos","setManagingPhotos","errordisplay","emptyFunction","canUpload","alert","canTake","takePhoto","All","launchCameraAsync","managePhotos","managePhotosDone","OptionsMenu","button","require","buttonStyle","destructiveIndex","options","WarrantyFail","onRetry","content","Math","floor","photoUploadProgress","toString","Progress","photoUploadFailed","Warranty","freshState","handleChosenDate","handleFaultCategory","handleAdditionalInfo","handlePhotoUpload","handleLocationInput","apiFail","retryPhotos","stage","submitClaim","startAgain","WarrantyPhoto","WarrantySubmitting","WarrantyThanks","component","claim_id","submitPhotos","map","pc","AlloyIntro","AlloyDate","AlloyDamageDescription","descriptionChanged","AlloyDamageType","onChosen","AlloyWheelType","AlloyWheelChoice","AlloyChooseWheel","PhotoPreview","PhotoUpload","fileChanged","ext","document","getElementById","pop","$","files","file","reader","FileReader","onload","readAsDataURL","onUpload","onCancel","deleteButton","MultiplePhotoUpload","multiplePhotoUpload","PhotoPreviewWithDelete","AlloyPhotos","fullWheelPhotos","closeUpPhotos","currentPhoto","whichPhoto","addPhotoWithFile","acceptedFiles","onDoneDraggingPhoto","onDoneAddingPhotos","binaryStr","includes","currentPhotos","fullwheeldropped","closeupdropped","the_app","addEventListener","preventDefault","dt","dataTransfer","componentDidUpdate","AlloyFail","fullWheelPhotoUploadProgress","closeUpPhotoUploadProgress","Another","doAnother","onNo","onYes","Different","AlloyVehicleLocationStatement","AlloyLocation","lookupPostcode","vehicleHouseNumber","vehicleStreetName","vehicleTown","lookupOptions","lookupFailedMessage","items","addresses","onLookupClick","lookupPostcodeChanged","vehiclePostcodeChanged","vehicleHouseNumberChanged","vehicleStreetNameChanged","vehicleTownChanged","selectchange","fieldId","visible_address","building_number","building_name","thoroughfare","post_town","canSubmitLookup","createSelectItems","onDropdownSelected","AlloyRepairDate","suggested_dates","dates_index","current_suggested_date","arrival_time_text","formatted_date","GetShineDates","Timeslot","onNoAppointment","GetNewShineDate","new_index","Booking_Key","Alloy","handleIntroContinue","handleDamageDescriptionContinue","handleChosenDamageType","handleChosenWheelType","handleChosenWheel","handlePhotoUploads","handleLocationContinue","handleRepairDateContinue","handleNoAppointment","whichWheel","AlloySplash","AlloySubmitting","AlloyAnother","AlloyNoAppointment","AlloyDifferent","onDoneNoMoreClaims","AlloyDifferentReferred","AlloyThanks","concat","GapIntro","YesNo","checkState","handleSelectTrue","handleSelectFalse","onSelect","yesNo","yesNoQuestion","question","yesNoControl","yesNoBoxWeb","yesCheck","yesNoLabel","noCheck","yesNoTick","yesNoCross","flexBasis","borderStyle","borderColor","yesNoBox","paddingLeft","GapInsurer","lessthan12months","yes","handleFinancedSelected","handleSettlementSelected","dontAccept","handleLessThan12MonthsSelected","showNewForOld","handleNewForOldSelected","parse","coverStartDate","GapIncident","setIncident","crimeReport","crimeReportText","fontStyle","GapConfirmation","toLocaleDateString","yesOrNo","onEditInsurer","bool","Submitting","GapSuccess","GapFail","Gap","handleInsurerDetails","handleIncidentDetails","afterIntro","onEditIncident","GapSubmitting","Gapclaimed","onResendGapEmail","SmartDate","SmartDamageType","selectedImage","local_location","SmartDamageMap","location","onLocationChange","hitTargets","updateLocation","ht","x","originalImageWidth","nativeEvent","locationX","offsetX","y","locationY","offsetY","backgroundContainer","backdrop","SmartDamageLocation","handleLocationChange","SmartPhotos","imagedropped","SmartFail","photo1UploadProgress","photo2UploadProgress","SmartVehicleLocationStatement","AddressSelectOptions","formatAddress","selectedValue","setSelectedValue","pickerwrapper","Picker","pickerbox","onValueChange","itemIndex","selectAddress","Item","_Fragment","_objectSpread","selectBox","minHeight","SmartLocation","setAddresses","house_number","setHouseNumber","confirmed_postcode","setConfirmedPostcode","town","setTown","street_name","setStreetName","selectedAddress","setSelectedAddress","JSON","formattedAddress","SmartRepairDate","showDatesText","yes_text","not_submitting","canGetDates","notSubmitting","handleSelectDate","thedate","Smart","handleSplashContinue","handleChosenDamageLocation","apiDone","SmartIntro","SmartSplash","SmartSubmitting","SmartAnother","SmartNoAppointment","SmartDifferent","SmartDifferentReferred","SmartThanks","TyreIntro","chosenTyre","TyreDate","TyreDamageType","TyreChoose","TyrePhotos","treadPhotos","treaddropped","TyreFail","treadPhotoUploadProgress","TyreDrivable","handleChosen","Tyre","handleChosenIsDrivable","handleChosenTyre","whichTyre","TyreSplash","TyreSubmitting","TyreAnother","TyreDifferent","onDoneReturnToWelcome","currencyCode","CancellationProduct","productButtons","buttons","CancellationDate","beginningOfDay","setHours","expiryDate","CancellationReason","handleChosenReason","CancellationRefundAmount","refundFee","refundAfterFee","submitPressed","toFixed","isProRataRefundable","handleSubmit","parseFloat","href","refundTable","refundTableRow","refundTableColumnRight","CancellationAmountConfirmation","LabeledCheckboxField","isChecked","toggleCheck","handleChange","Checkbox","LabeledCheckboxFieldField","checked","LabeledCheckboxFieldLabel","marginRight","CancellationBankDetails","confirmed","handleAccountNameChange","handleSortCodeChange","handleAccountNumberChange","toggleCheckbox","newValue","submitText","submitBankDetails","onSuccess","CancellationTFA","CancellationPremiumSure","Cancellation","handleChosenPolicy","nextStage","shouldContactDealer","isPremiumFunded","submitPremiumFunded","proceedToPayment","handlePaymentSuccess","markPending","cancellation_id","onUpdatePolicies","handlePaymentFailure","handleBankDetailsSuccess","anotherOrThanks","thirtyDaysAgo","CancellationIntro","CancellationContactDealer","CancellationFailure","CancellationSuccessPremium","CancellationAnother","CancellationThanks","LabeledEditTextField","editing","textInputRef","React","onEditClick","onSaveClick","ref","disabled","editable","selectTextOnFocus","saveButton","editButton","onSave","LabeledEditTextFieldWithRedirect","current","focus","LabeledEditTextFieldEmail","initialValue","inputProps","pattern","test","Toast","show","text1","text2","FileUploadSingle","PersonalDetails","original_email","original_firstName","original_surname","fullName","original_addressLine1","original_addressLine2","original_addressLine3","original_addressLine4","original_postcode","new_postcode","fullAddress","editingName","editingAddress","namePhoto","namePhotoUploadProgress","updateAddressLine1","updateAddressLine2","updateAddressLine3","updateAddressLine4","updateNewPostcode","saveDetails","editName","editAddress","canSubmitNameUpdate","canSubmitAddressUpdate","onEditNameDone","onEditAddressDone","findAddresses","setSelectedAddressFn","Forename","Surname","EmailAddress","AddressLine1","AddressLine2","AddressLine3","AddressLine4","Postcode","showEmailAlert","showNameAlert","showAddressAlert","AwesomeAlert","showProgress","title","message","closeOnTouchOutside","closeOnHardwareBackPress","showCancelButton","showConfirmButton","confirmText","confirmButtonColor","onCancelPressed","onConfirmPressed","checkinUK","isinUK","VehicleDetails","showVRNAlert","showVRNError","PolicyDocumentation","policyData","documentName","IsDocumentRecreationPending","document_showing","downloadDocument","getPolicyDocument","DocumentData","DocumentName","MainMenu","currentApp","handleStartApp","whichApp","returnToMainMenu","returnToWelcome","screen","autoprotectNav","loggedin","logout","navigationBarIcons","navigationBarIconSmall","home","navigationBarLogo","logo","faq","NavigationBarIcons","navigationBar","NavigationBar","MainApp","query","URLSearchParams","window","search","API","idleTimeout","authenticated","welcomed","creditCardWarned","cancel_thanks","onPreviouslyAuthenticated","updatePolicies","onWelcomed","onCreditCardWarned","KeyboardAwareScrollView","Welcome","registerRootComponent","Stack","createStackNavigator","Provider","NavigationContainer","Navigator","screenOptions","cardStyle","headerShown","Screen","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","keys","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","undefined","__webpack_modules__","call","m","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","key","r","n","getter","__esModule","definition","defineProperty","enumerable","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","__webpack_exports__"],"sourceRoot":""}