{"version":3,"sources":["components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","components/api-authorization/LoginMenu.js","components/NavMenu.js","components/Layout.js","Constants.js","components/VehicleInfoInputCard.js","components/ContainerInfoInputCard.js","utils/mapsApi.js","components/CreatePosting/OriginDetailsCard.js","components/CreatePosting/DestinationDetailsCard.js","components/CreatePosting/PricingTable.js","components/OrderID/OrderIdTypeChoice.js","components/CreatePosting/CreatePosting.js","components/NotFound.js","components/SubmissionSuccess.js","components/SubmissionError.js","components/api-authorization/AuthorizeRoute.js","components/api-authorization/Login.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","App.js","index.js"],"names":["QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","this","getUser","user","profile","ensureUserManagerInitialized","userManager","access_token","state","signinSilent","createArguments","silentUser","updateState","success","console","log","Error","signinPopup","popUpUser","message","error","signinRedirect","redirect","url","signinCallback","signoutPopup","undefined","signoutRedirect","signoutCallback","response","data","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","status","AuthenticationResultStatus","Fail","Success","Redirect","fetch","ok","json","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","a","removeUser","LoginMenu","props","isAuthenticated","userName","_subscription","subscribe","populateState","unsubscribe","Promise","all","setState","name","profilePath","logoutPath","pathname","local","authenticatedView","registerPath","loginPath","anonymousView","NavItem","NavLink","tag","Link","className","to","Component","NavMenu","toggleNavbar","bind","collapsed","Navbar","light","Container","NavbarBrand","NavbarToggler","onClick","Collapse","isOpen","navbar","displayName","Layout","children","Constants","getNotificationsFromUrlVars","messages","types","window","location","href","replace","m","key","value","postingFormName","defaultVehicleInputData","Date","getFullYear","locationType","ContainerTerminal","defaultDeliveryAddressData","defaultLoadingAddressData","vehicleMoveCondition","VehicleType","freightType","orderIDType","defaultContainerInputData","ContainerSize","TwentyFoot","defaultRoutePricingData","maxNumVehiclesPerPosting","maximumContainersPerPosting","size","FortyFoot","vehicleMakeList","id","StatesList","pageNameToUrlMap","messageIDToMessageMap","postingType","VehicleInfoInputCard","useState","JSON","parse","stringify","updateVehicleInfoArray","vehicleModelList","updateVehicleModelDatalist","useEffect","values","yearOptionsList","handleChange","event","nameSplitArray","target","split","onUpdate","baseInputName","VINinput","makeInput","modelInput","yearInput","conditionInput","vehicleTypeInput","freeTextTypeInput","memberInput","lotInput","attributeEditIdInput","vehicleEditIdInput","conditionToolTip","modelListName","years","toString","year","parseInt","editMode","type","onRemove","onBlur","VIN","keyValuePairs","keys","then","onUpdateMultiple","onChange","evt","required","innerData","dataList","make","result","list","data-toggle","aria-expanded","style","aria-labelledby","Running","displayValue","NonRunning","ForkliftNeeded","Object","auctionDetailsNeeded","ContainerInfoInputCard","updateContainerInfoArray","bookingNumberInput","containerEditInput","disabled","containerSize","mapsApi","baseApiString","requestString","apiKey","encodedRequest","encodeURI","apiRequestString","resourceSets","resources","address","OriginLocationCard","earliestPickupDateSpecifiedByUser","updateWhetherEarliestPickupDateSpecifiedByUser","earliestPickupDate","updateEarliestPickupDate","latestPickupDate","updateLatestPickupDate","zipCodeSearched","updateZipCodeSearched","expandAddress","quickPosting","class","getAutoSuggestValues","bingApiKey","returnVal","locality","adminDistrict","postalCode","document","getElementById","onUpdateLoadingAddress","getLocationByZipCode","htmlFor","aria-disabled","hidden","checked","showTimeSelect","selected","date","dateFormat","DestinationLocationCard","earliestDeliveryDateSpecifiedByUser","updateWhetherEarliestDeliveryDateIsSpecifiedByUser","earliestDeliveryDate","updateEarliestDeliveryDate","latestDeliveryDate","updateLatestDeliveryDate","onUpdateDeliveryAddress","PricingTable","prices","updatePrices","loading","updateLoading","priceCheckCompleted","getPrices","getAccessToken","token","queryString","loadingCityName","loadingStateName","loadingZipCode","deliveryCityName","deliveryStateName","deliveryZipCode","setPriceCheckComplete","headers","routePrice","loadingAddress","deliveryAddress","Number","distanceInMiles","toFixed","pricePaid","cargoDescription","pricingType","OrderIdTypeChoice","orderIdTypePreferenceChosen","updateOrderIdTypePreferenceChosen","selectedNewOrderIdPref","updateselectedNewOrderIdPref","dontAutoGenerateOnLoad","getAutoGeneratedOrderIdViaApi","text","onChangeId","currentOrderId","defaultChecked","for","Alphabetical","updateOrderIdPreference","CreatePosting","EditMode","updateEditMode","addressesExpanded","updateAddressesExpanded","submitAction","updateSubmitAction","normal","updatePostingType","updateFreightType","pickupLocationType","updatePickupLocationType","dropOffLocationType","updateDropOffLocationType","vehicleInputDetails","updateVehicleInputDetails","containerInputDetails","updateContainerInputDetails","updateContainerSize","formSubmitting","updateFormSubmitting","pricesCheckRequested","updatePriceCheckRequested","updateLoadingAddress","updateDeliveryAddress","updatePriceCheckCompleted","updateApiKey","shipperContactNumber","updateShipperContactNumber","cookieLoaded","updateCookieLoaded","updateCurrentOrderId","priceEntered","updatePriceEntered","serviceFeePerVehicle","updateServiceFeePerVehicle","serviceFeePerContainerForShippers","updateServiceFeePerContainerForShippers","updateServiceFeePerContainerForCarriers","creditCardFeeMultiplier","updateCreditCardFeeMultiplier","expDate","setDate","getDate","expiry","updateExpiry","urlParams","URLSearchParams","search","EditModeFromUrl","get","postingID","scaffoldOutFormUsingData","cookie","getCookie","cookieData","atLeastOneChoice","vehicleServiceFee","containerServiceFeeForShippers","containerServiceFeeForCarriers","creditCardFee","vehicle","createVehicleDataFromApiResponse","container","createContainerDataFromApiResponse","formElements","elements","extraKey","vehicleArray","vehicleDetails","vehicleInput","vin","Make","Model","model","Year","serialNumber","vehicleType","userFreeTextedVehicleType","VINDecodedVehicleType","vehicleCondition","memberNumber","lotNumber","attributeEditId","vehicleEditId","containerArray","containerDetails","containerSizeValue","containerInput","bookingNumber","containerEditId","onUpdateVehicleInput","vehicleInputData","onUpdateMultipleVehicleInputs","forEach","onUpdateContainerInput","containerInputData","removeVehicle","numVehicles","prevValues","removeContainer","c_name","c_start","indexOf","c_end","unescape","substring","PostingTypeChoice","description","postAndDispatch","FreightTypeChoice","ContainerSizeChoice","OriginAndDestinationTypeChoiceCard","PickupLocationTypeChoice","DestinationLocationTypeChoice","SubmitButton","freightTypeSelected","freightAndLocationTypeSelected","getServiceFeeForVehicles","getServiceFeeForContainers","numContainers","getCreditCardFee","originalPaymentAmount","getTotalPrice","method","action","encType","onSubmit","form","test","nodeName","stringifiedJSON","expireminutes","exdate","setMinutes","getMinutes","escape","toUTCString","setCookie","newInput","addVehicle","addContainer","prevExpanded","origin","prevLoadingAddress","destination","prevDestinationAddress","step","min","rows","NotFound","textAlign","SubmissionSuccess","redirectPageName","redirectPageUrl","setTimeout","parent","SubmissionError","AuthorizeRoute","ready","authenticated","authenticationChanged","populateAuthenticationState","link","createElement","path","returnUrl","protocol","host","hash","redirectUrl","component","rest","render","login","getReturnUrl","processLoginCallback","redirectToProfile","redirectToRegister","signIn","navigateToReturnUrl","completeSignIn","fromQuery","startsWith","redirectToApiAuthorizationPath","apiAuthorizationPath","Logout","isReady","history","logout","processLogoutCallback","signOut","completeSignOut","ApiAuthorizationRoutes","loginAction","logoutAction","App","rootElement","ReactDOM"],"mappings":"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","file":"static/js/main.87015d08.chunk.js","sourcesContent":["export const ApplicationName = 'Shipper_Application';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `/_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage'\r\n};\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === \"Popup window closed\") {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error(\"The user closed the window.\");\r\n } else if (!this._popUpDisabled) {\r\n console.log(\"Popup authentication error: \", popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","import React, { Component, Fragment } from 'react';\r\nimport { NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport authService from './AuthorizeService';\r\nimport { ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\nexport class LoginMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isAuthenticated: false,\r\n userName: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.populateState());\r\n this.populateState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n async populateState() {\r\n const [isAuthenticated, user] = await Promise.all([authService.isAuthenticated(), authService.getUser()])\r\n this.setState({\r\n isAuthenticated,\r\n userName: user && user.name\r\n });\r\n }\r\n\r\n render() {\r\n const { isAuthenticated, userName } = this.state;\r\n if (!isAuthenticated) {\r\n const registerPath = `${ApplicationPaths.Register}`;\r\n const loginPath = `${ApplicationPaths.Login}`;\r\n return this.anonymousView(registerPath, loginPath);\r\n } else {\r\n const profilePath = `${ApplicationPaths.Profile}`;\r\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\r\n return this.authenticatedView(userName, profilePath, logoutPath);\r\n }\r\n }\r\n\r\n authenticatedView(userName, profilePath, logoutPath) {\r\n return (\r\n \r\n Hello {userName}\r\n \r\n \r\n Logout\r\n \r\n );\r\n\r\n }\r\n\r\n anonymousView(registerPath, loginPath) {\r\n return (\r\n \r\n Register\r\n \r\n \r\n Login\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { LoginMenu } from './api-authorization/LoginMenu';\r\nimport './NavMenu.css';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor (props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true\r\n };\r\n }\r\n\r\n toggleNavbar () {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n Shipper_Application\r\n \r\n \r\n
    \r\n \r\n Home\r\n \r\n \r\n Counter\r\n \r\n \r\n Fetch data\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from './NavMenu';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\n\r\nexport class Constants{\r\n\r\n\tstatic postingFormName = \"Posting-Form\";\r\n\t\r\n\t//RJM 10/15/2020: Corresponds to multiple models\r\n\t// 1) Models\\Vehicles\\Vechicle.cs > Vehicle\r\n\t// TODO: Add vehicle attribute items\r\n\tstatic defaultVehicleInputData = \r\n\t\t{\r\n\t\t\t\"VIN\" : \"\",\r\n\t\t\t\"Make\" : \"\",\r\n\t\t\t\"Model\" : \"\",\r\n\t\t\t\"Year\" : new Date().getFullYear(),\r\n\t\t\t\"serialNumber\" : \"\",\r\n\t\t\t\"VehicleType\" : \"\",\r\n\t\t\t\"userFreeTextedVehicleType\" : \"\",\r\n\t\t\t\"VINDecodedVehicleType\" : \"\",\r\n\t\t\t\"vehicleCondition\" : \"\",\r\n\t\t\t\"memberNumber\" : \"\",\r\n\t\t\t\"lotNumber\" : \"\",\r\n\t\t\t\"attributeEditId\" : \"\",\r\n\t\t\t\"vehicleEditId\" : \"\",\r\n };\r\n \r\n\t// RJM 10/14/2020: Models\\Vehicles\\VehiclePosting.cs > pickupLocationType\r\n\t// Usage: {Object.keys(Constants.locationType).map(key => \r\n\t// \r\n\t// )}\r\n\tstatic locationType = {\r\n\t\t\"0\" : \"Home or apartment\",\r\n\t\t\"1\" : \"Auction\",\r\n\t\t\"2\" : \"Company Site\",\r\n\t\t\"3\" : \"Auto Dealership\",\r\n\t\t\"4\" : \"Sea Port\",\r\n\t\t\"5\" : \"Airport Terminal\",\r\n\t\t\"7\" : \"Other\"\r\n\t};\r\n\r\n\t// RJM 10/14/2020: Models\\Vehicles\\VehiclePosting.cs > pickupLocationType\r\n\t// Usage: {Object.keys(Constants.ContainerTerminal).map(key => \r\n\t// \r\n\t// )}\r\n\tstatic ContainerTerminal = {\r\n\t\t\"value\" : \"6\",\r\n\t\t\"name\" : \"Container Terminal\"\r\n\t}\r\n\t// RJM 11/19/2020: used to help lift state from origin and destination details cards to create posting.\r\n\t// Controllers\\CreatePostingController.cs > freightPostingInputModel\r\n\tstatic defaultDeliveryAddressData = {\r\n\t\t\"freightPostingInputModel.deliveryAddress\" : \"\",\r\n\t\t\"freightPostingInputModel.deliveryCity\" : \"\",\r\n\t\t\"freightPostingInputModel.deliveryState\" : \"Alabama\",\r\n\t\t\"freightPostingInputModel.deliveryCountry\" : \"United States\",\r\n\t\t\"freightPostingInputModel.deliveryPostalcode\" : \"\",\r\n\t}\r\n\tstatic defaultLoadingAddressData = {\r\n\t\t\"freightPostingInputModel.loadingAddress\" : \"\",\r\n\t\t\"freightPostingInputModel.loadingCity\" : \"\",\r\n\t\t\"freightPostingInputModel.loadingState\" : \"Alabama\",\r\n\t\t\"freightPostingInputModel.loadingCountry\" : \"United States\",\r\n\t\t\"freightPostingInputModel.loadingPostalcode\" : \"\",\r\n\t}\r\n\r\n\t// RJM 10/29/2020: Models\\Freight\\Vehicles\\VehiclePosting.cs > vehicleMoveCondition\r\n\tstatic vehicleMoveCondition = {\r\n\t\t\"Running\" : {\r\n\t\t\t\"value\" : \"0\",\r\n\t\t\t\"displayValue\" : \"Running\"\r\n\t\t},\r\n\t\t\"ForkliftNeeded\" : {\r\n\t\t\t\"value\" : \"1\",\r\n\t\t\t\"displayValue\" : \"Forklift needed\"\r\n\t\t},\r\n\t\t\"NonRunning\" : {\r\n\t\t\t\"value\" : \"2\",\r\n\t\t\t\"displayValue\" : \"Non-running\"\r\n\t\t},\r\n\t}\r\n\t// RJM 10/15/2020: Models\\Vehicles\\Vechicle.cs > VehicleType\r\n\t// Usage: {Object.keys(Constants.VehicleType).map(key => \r\n\t// \r\n\t// )}\r\n\tstatic VehicleType = {\r\n\t\t\"0\" : \"Car\",\r\n \"1\" : \"SUV\",\r\n \"2\" : \"Pickup truck\",\r\n\t\t\"3\" : \"Semi truck\",\r\n \"4\" :\"Motorcycle\",\r\n \"5\" : \"ATV\",\r\n \"6\" : \"Van\",\r\n \"7\" : \"Boat\",\r\n \"8\" : \"Heavy equipment\",\r\n \"9\" : \"RV\",\r\n \"10\" : \"Travel trailer\",\r\n \"11\" : \"Other\"\r\n\t}\r\n\t\r\n\t// RJM 10/14/2020: Controllers\\CreatePosting.cs > freightType\r\n\tstatic freightType = {\r\n\t\t\"vehicle\" : \"vehicle\",\r\n\t\t\"container\" : \"container\"\r\n };\r\n\t\r\n\t// RJM 12/23/2020: Models\\Preferences\\OrderIDPref.cs > orderIDType\r\n\tstatic orderIDType = {\r\n\t\t\"Number\" : \"Number\",\r\n\t\t\"Alphabetical\" : \"Alphabetical\",\r\n\t\t\"Freeform\" : \"Freeform\"\r\n\t};\r\n\r\n // RJM 10/28/2020: Models\\Freight\\Container\\Container.cs > ContainerSize \r\n static ContainerSize = {\r\n \"TwentyFoot\" : {\r\n \"value\" : \"TwentyFoot\",\r\n \"displayValue\" : \"20 ft\"\r\n },\r\n \"FortyFoot\" : {\r\n \"value\" : \"FortyFoot\",\r\n \"displayValue\" : \"40 ft\"\r\n },\r\n };\r\n \r\n static defaultContainerInputData = \r\n {\r\n \"size\" : Constants.ContainerSize.TwentyFoot.value,\r\n \"bookingNumber\" : \"\",\r\n\t\t\t//\"containerNumber\" : \"\"\r\n\t\t\t\"containerEditId\" : \"\",\r\n\t\t};\r\n\t\r\n\t// RJM 11/19/2020: Used by PricingTable.js, mirrors values in Models\\RoutePricing.cs > RoutePricing.cs\r\n\tstatic defaultRoutePricingData = \r\n\t{\r\n\t\t\"loadingAddress\" : \"\",\r\n\t\t\"deliveryAddress\": \"\",\r\n\t\t\"pricePaid\" : \"\",\r\n\t\t\"cargoDescription\" : \"\",\r\n\t\t\"pricingType\" : \"\"\r\n\t}\r\n\t// RJM 10/15/2020: appConstants.cs > maxNumVehiclesPerPosting\r\n\tstatic maxNumVehiclesPerPosting = 14;\r\n\r\n\tstatic maximumContainersPerPosting = (size) => {\r\n\t\tif(size == Constants.ContainerSize.TwentyFoot.value){\r\n\t\t\treturn 2;\r\n\t\t}else if(size == Constants.ContainerSize.FortyFoot.value){\r\n\t\t\treturn 1;\r\n\t\t}else{\r\n\t\t\tthrow \"Invalid container size provided when trying to get the maximum number of containers\";\r\n\t\t}\r\n\t}\r\n\r\n\tstatic vehicleMakeList = (id) => {\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n getNotificationsFromUrlVars = () => {\r\n var messages = [];\r\n var types = [];\r\n var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {\r\n if(key === \"message\"){\r\n messages.push(value);\r\n }\r\n if(key === \"type\"){\r\n types.push(value);\r\n }\r\n });\r\n return {messages,types};\r\n\t}\r\n\t\r\n\t// RJM 10/21/2020: appConstants.cs > StatesList\r\n\tstatic StatesList = [\"Alabama\",\"Alaska\",\"Arizona\",\"Arkansas\",\"California\",\"Colorado\",\"Connecticut\",\"Delaware\",\"District of Columbia\",\"Florida\",\"Georgia\",\"Hawaii\",\"Idaho\",\"Illinois\",\"Indiana\",\"Iowa\",\"Kansas\",\"Kentucky\",\"Louisiana\",\"Maine\",\"Maryland\",\"Massachusetts\",\"Michigan\",\"Minnesota\",\"Mississippi\",\"Missouri\",\"Montana\",\"Nebraska\",\"Nevada\",\"New Hampshire\",\"New Jersey\",\"New Mexico\",\"New York\",\"North Carolina\",\"North Dakota\",\"Ohio\",\"Oklahoma\",\"Oregon\",\"Pennsylvania\",\"Rhode Island\",\"South Carolina\",\"South Dakota\",\"Tennessee\",\"Texas\",\"Utah\",\"Vermont\",\"Virginia\",\"Washington\",\"West Virginia\",\"Wisconsin\",\"Wyoming\"];\r\n\r\n\t// RJM 12/31/2020: Controllers\\CreatePostingController.cs > Post() > returnPageName\r\n\tstatic pageNameToUrlMap = {\r\n\t\t\"MyVehicles\" : \"/VehiclePosting/MyVehicles/\",\r\n\t\t\"MyContainers\" : \"/ContainerPosting/MyContainers/\"\r\n\t}\r\n\tstatic messageIDToMessageMap = {\r\n\t\t\"PostingSubmitSuccess\" : \"Your posting has been successfully submitted\"\r\n\t}\r\n\r\n\tstatic postingType = {\r\n\t\t\"normal\" : { \r\n\t\t\t\"value\" : \"normal\",\r\n\t\t\t\"displayValue\" : \"Regular\",\r\n\t\t\t\"description\" : \"Creating a posting with all information needed to assign to a carrier\"\r\n\t\t},\r\n\t\t\"quickPosting\" : {\r\n\t\t\t\"value\" : \"quickPosting\",\r\n\t\t\t\"displayValue\" : \"Quick Posting\",\r\n\t\t\t\"description\" : \"Creating a posting with only essential information. Appears to truckers, but must be completed before assignment\"\r\n\t\t},\r\n\t\t\"postAndDispatch\" : {\r\n\t\t\t\"value\" : \"postAndDispatch\",\r\n\t\t\t\"displayValue\" : \"Post And Dispatch\",\r\n\t\t\t\"description\" : \"Creating a posting and assign a carrier to it right away\"\r\n\t\t}\r\n\t}\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Constants } from '../Constants';\r\n\r\nconst VehicleInfoInputCard = (props) => {\r\n \tconst [vehicleInfo, updateVehicleInfoArray] = useState(JSON.parse(JSON.stringify(Constants.defaultVehicleInputData)));\r\n \tconst [vehicleModelList, updateVehicleModelDatalist] = useState(null);\r\n\r\n\tuseEffect(\r\n\t\t() => {\r\n\t\t\tupdateVehicleInfoArray(props.values);\r\n\t\t},\r\n\t\t[props.values]\r\n\t);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tvar nameSplitArray = event.target.name.split(\".\");\r\n\t\t\r\n\t\tvar key = nameSplitArray[nameSplitArray.length-1];\r\n\t\tvar value = event.target.value;\r\n\t\t\r\n\t\tprops.onUpdate(props.id, key, value);\t\t\r\n\t}\r\n\r\n\tconst fetchDataForVIN = (event) => {\r\n\t\tvar VIN = event.target.value;\r\n\t\t\r\n\t\tif(VIN.length != 17){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar keyValuePairs = {keys: [\"Make\",\"Model\",\"Year\"], values: []};\r\n\t\tfetch('https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVin/' + VIN + '?format=json')\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => {\r\n\t\t\t\tkeyValuePairs.values[0] = data[\"Results\"][\"6\"][\"Value\"];\r\n\t\t\t\tkeyValuePairs.values[1] = data[\"Results\"][\"8\"][\"Value\"];\r\n\t\t\t\tkeyValuePairs.values[2] = data[\"Results\"][\"9\"][\"Value\"];\r\n\t\t\t\t\r\n\t\t\t\tprops.onUpdateMultiple(props.id, keyValuePairs);\r\n\t\t\t});\r\n\t}\r\n\t\r\n\tconst fetchModelsForMake = (event) => {\r\n var make = event.target.value;\r\n \r\n if(make.length == 0){\r\n return;\r\n }\r\n var innerData, dataList;\r\n fetch('https://vpic.nhtsa.dot.gov/api/vehicles/GetModelsForMake/' + make + '?format=json')\r\n .then(response => response.json())\r\n .then(data => {\r\n innerData = data[\"Results\"].map((result,index) => );\r\n dataList = {innerData}; \r\n updateVehicleModelDatalist(dataList);\r\n });\r\n\t}\r\n\t\r\n\t// RJM 10/28/2020: bound to Models\\Freight\\Vehicles\\Vechicle.cs > VehicleViewModel\r\n\tvar baseInputName = props.baseInputName;\r\n\tvar VINinput = baseInputName + \"[\" + props.id + \"].VIN\";\r\n\tvar makeInput = baseInputName + \"[\" + props.id + \"].Make\";\r\n\tvar modelInput = baseInputName + \"[\" + props.id + \"].Model\";\r\n\tvar yearInput = baseInputName + \"[\" + props.id + \"].Year\";\r\n\tvar conditionInput = baseInputName + \"[\" + props.id + \"].vehicleCondition\";\r\n\tvar vehicleTypeInput = baseInputName + \"[\" + props.id + \"].VehicleType\"\r\n\tvar freeTextTypeInput = baseInputName + \"[\" + props.id + \"].userFreeTextedVehicleType\"\r\n\tvar memberInput = baseInputName + \"[\" + props.id + \"].memberNumber\";\r\n\tvar lotInput = baseInputName + \"[\" + props.id + \"].lotNumber\";\r\n\tvar attributeEditIdInput = baseInputName + \"[\" + props.id + \"].attributeEditId\";\r\n\tvar vehicleEditIdInput = baseInputName + \"[\" + props.id + \"].vehicleEditId\";\r\n\tvar conditionToolTip = baseInputName + \"[\" + props.id + \"].conditionToolTip\";\r\n\r\n\tvar modelListName = \"modelList\" + props.id;\r\n\tvar removeButton,yearOptionsList,documentUploadConf;\r\n\t\r\n\tvar years = [];\r\n\tfor(var i = new Date().getFullYear(); i >= 1970; i--){\r\n\t\tyears.push(i.toString());\r\n\t}\r\n\tyearOptionsList = years.map((year,index) => );\r\n\t\r\n \treturn (\r\n\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\t\tVehicle #{parseInt(props.id,10) + 1}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{!props.editMode &&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\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\t
\r\n\t\t\t\t\t\t handleChange(evt)}/>\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t handleChange(evt)} list=\"makeList\"/>\r\n\t\t\t\t\t\t{Constants.vehicleMakeList(\"makeList\")}\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\t handleChange(evt)} list={modelListName}/>\r\n\t\t\t\t\t\t{vehicleModelList}\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\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\t\r\n\t\t\t\t\t\t\tInfo\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
  • Choose Running if the vehicle starts and drives normally.
  • \r\n\t\t\t\t\t\t\t\t\t\t
  • Choose Non-Running if the vehicle does not start, but can be moved/rolled on its own set of wheels.
  • \r\n\t\t\t\t\t\t\t\t\t\t
  • Choose Needs forklift trailer if the vehicle does not start, and cannot be moved/rolled on its own wheels.
  • \r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\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\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{props.values[\"VehicleType\"] == \"Other\" &&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t handleChange(evt)} />\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{props.auctionDetailsNeeded\r\n\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t handleChange(evt)}/>\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t handleChange(evt)}/>\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{props.editMode &&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\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);\r\n}\r\n\r\nexport { VehicleInfoInputCard };","import React, { useState, useEffect } from 'react';\r\nimport { Constants } from '../Constants';\r\n\r\nconst ContainerInfoInputCard = (props) => {\r\n \tconst [ContainerInfo, updateContainerInfoArray] = useState(JSON.parse(JSON.stringify(Constants.defaultContainerInputData)));\r\n\r\n\tuseEffect(\r\n\t\t() => {\r\n\t\t\tupdateContainerInfoArray(props.values);\r\n\t\t},\r\n\t\t[props.values]\r\n\t);\r\n\r\n\tconst handleChange = (event) => {\r\n\t\tvar nameSplitArray = event.target.name.split(\".\");\r\n\t\t\r\n\t\tvar key = nameSplitArray[nameSplitArray.length-1];\r\n\t\tvar value = event.target.value;\r\n\t\t\r\n\t\tprops.onUpdate(props.id, key, value);\t\t\r\n\t}\r\n\t\r\n\t// RJM 11/04/2020: bound to Models\\Freight\\Container\\Container.cs > ContainerViewModel\r\n\tvar baseInputName = props.baseInputName;\r\n\tvar bookingNumberInput = baseInputName + \"[\" + props.id + \"].bookingNumber\";\r\n\tvar sizeInput = baseInputName + \"[\" + props.id + \"].size\";\r\n\tvar containerSize = Constants.ContainerSize[props.values[\"size\"]];\r\n\tvar containerEditInput = baseInputName + \"[\" + props.id + \"].containerEditId\";\r\n\r\n\t// Container number not known when posting this. Container number is written on the container\r\n\t// itself, and will be known once the carrier picks the container up from the port.\r\n\t// var ContainerNumeberInput = baseInputName + \"[\" + props.id + \"].Model\";\r\n\r\n\tvar removeButton;\r\n\t\r\n \treturn (\r\n\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\t\tContainer #{parseInt(props.id,10) + 1}\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\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\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\t handleChange(evt)}/>\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\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{props.editMode &&\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);\r\n}\r\n\r\nexport { ContainerInfoInputCard };","import { Constants } from \"../Constants\";\r\n\r\nexport class mapsApi{\r\n\r\n\tbaseApiString = \"https://dev.virtualearth.net/REST/v1/Autosuggest?query=\"\r\n\r\n\tgetAutoSuggestValues(requestString, apiKey){\r\n\t\tvar encodedRequest = encodeURI(requestString);\r\n\t\tvar apiRequestString = this.baseApiString + encodedRequest + \"&key=\" + apiKey; // TODO: Replace this with a call to the backend\r\n\t\t\r\n\t\treturn fetch(apiRequestString)\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => data.resourceSets[0].resources[0].value[0].address);\r\n\t}\r\n}\r\n\t\t\t\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Constants } from '../../Constants';\r\nimport { mapsApi } from '../../utils/mapsApi';\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\n/// provide values, onUpdateDeliveryAddress and bingApiKey to props\r\nconst OriginLocationCard = (props) => {\r\n\tconst [earliestPickupDateSpecifiedByUser, updateWhetherEarliestPickupDateSpecifiedByUser] = useState(false);\r\n\tconst [latestPickupDateRequired, updateWhetherLatestPickupDateRequired] = useState(true);\r\n\t\r\n\tconst [earliestPickupDate, updateEarliestPickupDate] = useState(new Date());\r\n\tconst [latestPickupDate, updateLatestPickupDate] = useState(new Date());\r\n\t\r\n\tconst [zipCodeSearched, updateZipCodeSearched] = useState(false);\r\n\r\n\tconst originColor = \"#008000\";\r\n\r\n\tconst getLocationByZipCode = (evt) => {\r\n\t\t// Update address elements here\r\n\t\tvar api = new mapsApi();\r\n\t\tapi.getAutoSuggestValues(evt.target.value + \",United States\",props.bingApiKey)\r\n\t\t\t.then(returnVal => {\r\n\t\t\t\tif(returnVal.locality == null){\r\n\t\t\t\t\treturnVal.locality = \"\";\r\n\t\t\t\t}\r\n\t\t\t\t// alert(returnVal.adminDistrict);\r\n\t\t\t\tif(returnVal.adminDistrict == null){\r\n\t\t\t\t\treturnVal.adminDistrict = Constants.StatesList[0];\r\n\t\t\t\t}\r\n\t\t\t\tif(returnVal.postalCode == null){\r\n\t\t\t\t\treturnVal.postalCode = \"\";\r\n\t\t\t\t}\r\n\t\t\t\tdocument.getElementById(\"pickup_locality\").value = returnVal.locality;\r\n\t\t\t\tdocument.getElementById(\"pickup_administrative_area_level_1\").value = returnVal.adminDistrict;\r\n\t\t\t\tdocument.getElementById(\"pickup_postal_code\").value = returnVal.postalCode;\r\n\r\n\t\t\t\tprops.onUpdateLoadingAddress(\"freightPostingInputModel.loadingCity\", returnVal.locality);\r\n\t\t\t\tprops.onUpdateLoadingAddress(\"freightPostingInputModel.loadingState\", returnVal.adminDistrict);\r\n\t\t\t\tprops.onUpdateLoadingAddress(\"freightPostingInputModel.loadingPostalcode\", returnVal.postalCode);\r\n\t\t\t});\r\n\t\tupdateZipCodeSearched(true);\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tif(!props.expandAddress){\r\n\t\t\tupdateEarliestPickupDate(new Date())\r\n\t\t}\r\n\t},\r\n\t[earliestPickupDateSpecifiedByUser]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

Origin

\r\n\t\t\t\t{/* https://developers.google.com/maps/documentation/javascript/places-autocomplete */}\r\n\t\t\t\t
\r\n\t\t\t\t\t{props.postingType != Constants.postingType.quickPosting.value\r\n\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\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\tgetLocationByZipCode(evt)} />\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{/* Here is where will add the control to additionally display the items. i.e. zipCodeSearched || InstructedToDisplayAll*/}\r\n\t\t\t\t\t{(zipCodeSearched || props.expandAddress) &&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{props.postingType != Constants.postingType.quickPosting.value\r\n\t\t\t\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t props.onUpdateLoadingAddress(evt.target.name,evt.target.value)} className=\"form-control\" />\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/* https://www.npmjs.com/package/react-datepicker */}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t props.onUpdateLoadingAddress(evt.target.name,evt.target.value)} className=\"form-control\" />\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{props.postingType != Constants.postingType.quickPosting.value\r\n\t\t\t\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t}\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\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

Pickup date

\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tSpecify earliest pickup time?
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t updateWhetherEarliestPickupDateSpecifiedByUser(true)}\r\n\t\t\t\t\t\t\t\tchecked={earliestPickupDateSpecifiedByUser}/>\r\n\t\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\t updateWhetherEarliestPickupDateSpecifiedByUser(false)}\r\n\t\t\t\t\t\t\t\tchecked={!earliestPickupDateSpecifiedByUser}/>\r\n\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\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t updateEarliestPickupDate(date)}\r\n\t\t\t\t\t\t\tdateFormat=\"MM/dd/yyyy h:mm aa\"/>\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\t updateLatestPickupDate(date)}\r\n\t\t\t\t\t\t\tdateFormat=\"MM/dd/yyyy h:mm aa\"/>\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);\r\n}\r\n\r\nexport { OriginLocationCard };","import React, { useState, useEffect } from 'react';\r\nimport { Constants } from '../../Constants';\r\nimport { mapsApi } from '../../utils/mapsApi';\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\n/// provide values, onUpdateDeliveryAddress and bingApiKey to props\r\nconst DestinationLocationCard = (props) => {\r\n\tconst [earliestDeliveryDateSpecifiedByUser, updateWhetherEarliestDeliveryDateIsSpecifiedByUser] = useState(false);\r\n\tconst [latestDeliveryDateRequired, updateWhetherLatestDeliveryDateRequired] = useState(true);\r\n\r\n\tconst [earliestDeliveryDate, updateEarliestDeliveryDate] = useState(null);\r\n\tconst [latestDeliveryDate, updateLatestDeliveryDate] = useState(new Date());\r\n\tconst [zipCodeSearched, updateZipCodeSearched] = useState(false);\r\n\r\n\tconst destinationColor = \"#1266f1\";\r\n\r\n\tconst getLocationByZipCode = (evt) => {\r\n\t\t// Update address elements here\r\n\t\tvar api = new mapsApi();\r\n\t\tapi.getAutoSuggestValues(evt.target.value + \",United States\",props.bingApiKey)\r\n\t\t\t.then(returnVal => {\r\n\t\t\t\tif(returnVal.locality == null){\r\n\t\t\t\t\treturnVal.locality = \"\";\r\n\t\t\t\t}\r\n\t\t\t\t// alert(returnVal.adminDistrict);\r\n\t\t\t\tif(returnVal.adminDistrict == null){\r\n\t\t\t\t\treturnVal.adminDistrict = Constants.StatesList[0];\r\n\t\t\t\t}\r\n\t\t\t\tif(returnVal.postalCode == null){\r\n\t\t\t\t\treturnVal.postalCode = \"\";\r\n\t\t\t\t}\r\n\t\t\t\tdocument.getElementById(\"destination_locality\").value = returnVal.locality;\r\n\t\t\t\tdocument.getElementById(\"destination_administrative_area_level_1\").value = returnVal.adminDistrict;\r\n\t\t\t\tdocument.getElementById(\"destination_postal_code\").value = returnVal.postalCode;\r\n\r\n\t\t\t\tprops.onUpdateDeliveryAddress(\"freightPostingInputModel.deliveryCity\",returnVal.locality);\r\n\t\t\t\tprops.onUpdateDeliveryAddress(\"freightPostingInputModel.deliveryState\",returnVal.adminDistrict);\r\n\t\t\t\tprops.onUpdateDeliveryAddress(\"freightPostingInputModel.deliveryPostalcode\",returnVal.postalCode);\r\n\t\t\t});\r\n\t\t\tupdateZipCodeSearched(true);\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tupdateEarliestDeliveryDate(new Date());\r\n\t},\r\n\t[earliestDeliveryDateSpecifiedByUser])\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t

Destination

\r\n\t\t\t\t{/* https://developers.google.com/maps/documentation/javascript/places-autocomplete */}\r\n\t\t\t\t
\r\n\t\t\t\t\t{props.postingType != Constants.postingType.quickPosting.value\r\n\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\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\t getLocationByZipCode(evt)}/>\r\n\t\t\t\t\t\t\t{/* NOTE: This button actually does nothing, but if you click it/focus it, you will trigger the blur event on the above input */}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{/* Here is where will add the control to additionally display the items. i.e. zipCodeSearched || InstructedToDisplayAll*/}\r\n\t\t\t\t\t{(zipCodeSearched || props.expandAddress) &&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{props.postingType != Constants.postingType.quickPosting.value\r\n\t\t\t\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t props.onUpdateDeliveryAddress(evt.target.name,evt.target.value)} className=\"form-control\" />\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t props.onUpdateDeliveryAddress(evt.target.name,evt.target.value)} className=\"form-control\" />\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{props.postingType != Constants.postingType.quickPosting.value\r\n\t\t\t\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\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

Delivery date

\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tSpecify earliest delivery time?
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t updateWhetherEarliestDeliveryDateIsSpecifiedByUser(true)}\r\n\t\t\t\t\t\t\t\tchecked={earliestDeliveryDateSpecifiedByUser}/>\r\n\t\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\t updateWhetherEarliestDeliveryDateIsSpecifiedByUser(false)}\r\n\t\t\t\t\t\t\t\tchecked={!earliestDeliveryDateSpecifiedByUser}/>\r\n\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\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t updateEarliestDeliveryDate(date)}\r\n\t\t\t\t\t\t\tdateFormat=\"MM/dd/yyyy h:mm aa\"/>\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\t updateLatestDeliveryDate(date)}\r\n\t\t\t\t\t\t\tdateFormat=\"MM/dd/yyyy h:mm aa\"/>\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);\r\n}\r\n\r\nexport { DestinationLocationCard };\r\n","import React, { Component, useEffect, useState } from 'react';\r\nimport { Constants } from '../../Constants';\r\nimport authService from '../api-authorization/AuthorizeService'\r\n\r\nconst PricingTable = (props) => {\r\n\r\n\tconst [prices, updatePrices] = useState();\r\n\tconst [loading, updateLoading] = useState(true);\r\n\r\n\tuseEffect(() => {\r\n\t\tif(!props.priceCheckCompleted){\r\n\t\t\tgetPrices();\r\n\t\t}\r\n\t}); // Whenever input props change, refetch the prices for it?\r\n\r\n\tconst getPrices = async () =>{\r\n\t\tconst token = await authService.getAccessToken();\r\n\t\t// Controllers\\PriceCheckController.cs > public async Task> getPrices\r\n\t\tvar queryString = \"?type=\" + props.type \r\n\t\t\t+ \"&loadingCityName=\" + props.loadingCityName \r\n\t\t\t+ \"&loadingStateName=\" + props.loadingStateName\r\n\t\t\t+ \"&loadingZipCode=\" + props.loadingZipCode\r\n\t\t\t+ \"&deliveryCityName=\" + props.deliveryCityName\r\n\t\t\t+ \"&deliveryStateName=\" + props.deliveryStateName\r\n\t\t\t+ \"&deliveryZipCode=\" + props.deliveryZipCode\r\n\r\n\t\tprops.setPriceCheckComplete(true);\r\n\r\n\t\tconst response = await fetch('PriceCheck/getPrices?' + queryString, {\r\n\t\theaders: !token ? {} : { 'Authorization': `Bearer ${token}` }\r\n\t\t});\r\n\t\tconst data = await response.json();\r\n\t\tupdatePrices(data);\r\n\t\tupdateLoading(false);\r\n\t}\r\n\r\n\treturn(\r\n\t\t
\r\n\t\t\t{!loading \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\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\t{prices.map((routePrice,index) =>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/* Models\\RoutePricing.cs > RoutePricingViewDto */}\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\t\r\n\t\t\t
RoutePrice paidCargo descriptionEstimate type
{routePrice.loadingAddress}{routePrice.deliveryAddress} ({Number(routePrice.distanceInMiles).toFixed(2)} miles){Number(routePrice.pricePaid).toFixed(2)} (${Number(routePrice.pricePaid/routePrice.distanceInMiles).toFixed(2)} per mile){routePrice.cargoDescription}{routePrice.pricingType}
\r\n\t\t\t}\r\n\t\t\t{loading &&

Loading...

}\r\n\t\t
\r\n\t);\r\n\r\n}\r\n\r\nexport { PricingTable as PricingTable };","import React, { useState, useEffect } from 'react';\r\nimport { Constants } from '../../Constants';\r\n\r\nexport const OrderIdTypeChoice = (props) => {\r\n\r\n\tconst [orderIdTypePreferenceChosen, updateOrderIdTypePreferenceChosen] = useState(false);\r\n\tconst [orderIdTypePreference, updateOrderIdTypePreference] = useState();\r\n\tconst [selectedNewOrderIdPref, updateselectedNewOrderIdPref ] = useState(\"\");\r\n\r\n\t// First, check if the user has already selected an order preference\r\n\t// that is stored in the database\r\n\tuseEffect(()=>{\r\n\t\tvar queryString = \"/OrderID/checkIfOrderIdPreferenceExists?type=\" + props.freightType;\r\n\t\tfetch(queryString) // TODO: Provide type argument\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => updateOrderIdTypePreferenceChosen(data))\r\n\t}, [true]); // Setting the second argument to true like this makes the effect run just once\r\n\r\n\t// When the user's orderIdtypePReference is updated, get a new order ID \r\n\tuseEffect(() => {\t\t\r\n\t\tif(props.dontAutoGenerateOnLoad){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tgetAutoGeneratedOrderIdViaApi();\r\n\t}, [orderIdTypePreferenceChosen]);\r\n\r\n\tconst getAutoGeneratedOrderIdViaApi = () => {\r\n\t\tif(!orderIdTypePreferenceChosen){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar queryString = \"/OrderID/generateOrderId?type=\" + props.freightType;\r\n\t\tfetch(queryString)\r\n\t\t\t.then(response => response.text())\r\n\t\t\t.then(data => {\r\n\t\t\t\tprops.onChangeId(data);\r\n\t\t\t})\r\n\t};\r\n\r\n\tconst updateOrderIdPreference = (value) => {\r\n\t\tvar queryString = \"/OrderID/saveOrderIdTypePref?freightType=\" + props.freightType + \"&type=\" + value;\r\n\t\tfetch(queryString)\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => {\r\n\t\t\t\tupdateOrderIdTypePreferenceChosen(data)\r\n\t\t\t});\r\n\t}\r\n\r\n\treturn(\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t props.onChangeId(evt.target.value)} />\r\n\t\t\t\t{/* {orderIdTypePreferenceChosen &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t getAutoGeneratedOrderIdViaApi()}/>\r\n\t\t\t\t\t
\r\n\t\t\t\t} */}\r\n\t\t\t
\r\n\t\t\t{!orderIdTypePreferenceChosen &&\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tYou can choose to automatically generate order IDs\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t updateselectedNewOrderIdPref(Constants.orderIDType.Number)}/>\r\n\t\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\t updateselectedNewOrderIdPref(Constants.orderIDType.Alphabetical)}/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t updateOrderIdPreference(selectedNewOrderIdPref)}>Confirm ID type\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)\r\n\t\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Constants } from '../../Constants';\r\nimport authService from '../api-authorization/AuthorizeService'\r\nimport { VehicleInfoInputCard } from '../VehicleInfoInputCard';\r\nimport { ContainerInfoInputCard } from '../ContainerInfoInputCard';\r\nimport { OriginLocationCard } from './OriginDetailsCard';\r\nimport { DestinationLocationCard } from './DestinationDetailsCard';\r\nimport { PricingTable } from './PricingTable';\r\nimport { OrderIdTypeChoice } from '../OrderID/OrderIdTypeChoice';\r\n\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\n// RJM 10/14/2020: POST handled by Controllers\\CreatePosting.cs\r\n// Component for the form that is responsible for collecting user input to create a new vehicle posting\r\n// Do not rename name={values}s, they are bound to the corresponding backend variable\r\nconst CreatePosting = () => {\r\n\t// Use Effect seems to run BEFORE the constants import, so Constants.postingFormName is null \r\n\t// in UseEffect. But this works for some reason\r\n\tconst postingFormName = Constants.postingFormName;\r\n\r\n\tconst [EditMode, updateEditMode] = useState(false);\r\n\tconst [addressesExpanded, updateAddressesExpanded] = useState({\"origin\" : false, \"destination\" : false});\r\n\tconst [submitAction, updateSubmitAction] = useState(\"/CreatePosting\");\r\n\tconst [postingType, updatePostingType] = useState(Constants.postingType.normal.value);\r\n\tconst [freightType, updateFreightType] = useState(null); // Constants.freightType.vehicle, Constants.freightType.container\r\n\tconst [pickupLocationType, updatePickupLocationType] = useState(null); \r\n\tconst [dropOffLocationType, updateDropOffLocationType] = useState(null); \r\n\tconst [vehicleInputDetails, updateVehicleInputDetails] = useState([JSON.parse(JSON.stringify(Constants.defaultVehicleInputData))]);\r\n\tconst [containerInputDetails, updateContainerInputDetails] = useState([JSON.parse(JSON.stringify(Constants.defaultContainerInputData))]);\r\n\tconst [containerSize, updateContainerSize] = useState(Constants.ContainerSize.TwentyFoot.value);\r\n\tconst [formSubmitting, updateFormSubmitting] = useState(false);\r\n\tconst [pricesCheckRequested, updatePriceCheckRequested] = useState(false);\r\n\tconst [loadingAddress, updateLoadingAddress] = useState(JSON.parse(JSON.stringify(Constants.defaultLoadingAddressData)));\r\n\tconst [deliveryAddress, updateDeliveryAddress] = useState(JSON.parse(JSON.stringify(Constants.defaultDeliveryAddressData)));\r\n\tconst [priceCheckCompleted, updatePriceCheckCompleted] = useState(true);\r\n\tconst [apiKey, updateApiKey] = useState(\"\");\r\n\tconst [shipperContactNumber, updateShipperContactNumber] = useState(\"\");\r\n\tconst [cookieLoaded, updateCookieLoaded] = useState(false);\r\n\tconst [currentOrderId, updateCurrentOrderId] = useState(\"\");\r\n\tconst [priceEntered, updatePriceEntered] = useState(null);\r\n\tconst [serviceFeePerVehicle, updateServiceFeePerVehicle] = useState(null);\r\n\tconst [serviceFeePerContainerForShippers, updateServiceFeePerContainerForShippers] = useState(null);\r\n\tconst [serviceFeePerContainerForCarriers, updateServiceFeePerContainerForCarriers] = useState(null);\r\n\tconst [creditCardFeeMultiplier, updateCreditCardFeeMultiplier] = useState(null);\r\n\tconst expDate = new Date()\r\n\texpDate.setDate(expDate.getDate() + 7);\r\n\tconst [expiry, updateExpiry] = useState(expDate)\r\n\tuseEffect(() => {\r\n\t\t// Parse url\r\n\t\tconst urlParams = new URLSearchParams(window.location.search);\r\n\t\tvar EditModeFromUrl = urlParams.get('Edit');\r\n\r\n\t\tif(EditModeFromUrl == \"true\"){\r\n\t\t\tupdateEditMode(true);\t\t\t\r\n\t\t\tupdateSubmitAction(\"/EditPosting/Post?freightType=\"+ urlParams.get('freightType') \r\n\t\t\t\t\t\t\t\t+ \"&postingID=\"+ urlParams.get('ID'))\r\n\t\t}\r\n\t\t\r\n\t\tif(EditModeFromUrl == \"true\"){\r\n\t\t\tvar postingID = urlParams.get('ID');\r\n\r\n\t\t\tupdateFreightType(urlParams.get('freightType'));\r\n\t\t\tvar freightType = urlParams.get('freightType');\r\n\r\n\t\t\tfetch(\"/EditPosting/GetFreightPosting?freightType=\"+ urlParams.get('freightType')\r\n\t\t\t\t\t+ \"&postingID=\"+ urlParams.get('ID'))\r\n\t\t\t\t\t.then(response => response.json())\r\n\t\t\t\t\t.then(data => scaffoldOutFormUsingData(data, postingID, freightType));\r\n\t\t}\r\n\t\telse{\r\n\r\n\t\t\tfetch(\"/ContactNumber\")\r\n\t\t\t\t.then(response => response.text())\r\n\t\t\t\t.then(data => updateShipperContactNumber(data))\r\n\r\n\t\t\tvar cookie = getCookie(postingFormName);\r\n\t\t\t\r\n\t\t\tif(cookie.length > 10 && !EditMode){\r\n\t\t\t\tvar cookieData = JSON.parse(cookie);\r\n\t\t\t\t// alert(retval.length);\r\n\t\t\t\t// You will want to trigger updates here as needed\r\n\t\t\t\tvar atLeastOneChoice = false;\r\n\t\t\t\tfor(var key in cookieData) {\r\n\t\t\t\t\tif(key == \"freightTypeChoice\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tupdateFreightType(cookieData[key]);\r\n\t\t\t\t\t\tatLeastOneChoice = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(key == \"freightPostingInputModel.pickupLocationType\"){\r\n\t\t\t\t\t\tupdatePickupLocationType(cookieData[\"freightPostingInputModel.pickupLocationType\"]);\r\n\t\t\t\t\t\tatLeastOneChoice = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(key == \"freightPostingInputModel.deliveryLocationType\"){\r\n\t\t\t\t\t\tupdateDropOffLocationType(cookieData[\"freightPostingInputModel.deliveryLocationType\"]);\r\n\t\t\t\t\t\tatLeastOneChoice = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(key == \"vehicleInputDetails\"){\r\n\t\t\t\t\t\tupdateVehicleInputDetails(cookieData[key]);\r\n\t\t\t\t\t\tatLeastOneChoice = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(key == \"containerInputDetails\"){\r\n\t\t\t\t\t\tupdateVehicleInputDetails(cookieData[key]);\r\n\t\t\t\t\t\tatLeastOneChoice = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tupdateCookieLoaded(atLeastOneChoice);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t// Always do this:\r\n\t\tfetch(\"/MapsApi\")\r\n\t\t\t.then(response => response.text())\r\n\t\t\t.then(data => updateApiKey(data))\r\n\r\n\t\t// fetch(\"/ServiceFee/GetVehicleServiceFee\")\r\n\t\t// \t.then(response => response.text())\r\n\t\t// \t.then(data => updateServiceFeePerVehicle(Number(data)))\r\n\r\n\t\t// fetch(\"/ServiceFee/GetContainerServiceFeeForShipper\")\r\n\t\t// \t.then(response => response.text())\r\n\t\t// \t.then(data => updateServiceFeePerContainerForShippers(Number(data)))\r\n\r\n\t\t// fetch(\"/ServiceFee/GetContainerServiceFeeForCarrier\")\r\n\t\t// \t.then(response => response.text())\r\n\t\t// \t.then(data => updateServiceFeePerContainerForCarriers(Number(data)))\r\n\t\t// Controllers\\api\\ServiceFeeController.cs > GetServiceFeeItems\r\n\t\tfetch(\"/ServiceFee/GetServiceFeeItems\")\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => {\r\n\t\t\t\tupdateServiceFeePerVehicle(Number(data.vehicleServiceFee));\r\n\t\t\t\tupdateServiceFeePerContainerForShippers(Number(data.containerServiceFeeForShippers));\r\n\t\t\t\tupdateServiceFeePerContainerForCarriers(Number(data.containerServiceFeeForCarriers));\r\n\t\t\t\tupdateCreditCardFeeMultiplier(Number(data.creditCardFee));\r\n\t\t\t});\r\n\t}, []);\r\n\r\n\tconst scaffoldOutFormUsingData = (data, postingID, freightType) => {\r\n\t\tif('isQuickPostingFlag' in data){\r\n\t\t\tif (data['isQuickPostingFlag']){\r\n\t\t\t\tupdatePostingType(Constants.postingType.quickPosting.value);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tupdatePostingType(Constants.postingType.normal.value);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tupdatePickupLocationType(data['pickupLocationType'].toString());\r\n\t\tupdateDropOffLocationType(data['deliveryLocationType'].toString());\r\n\t\tupdateShipperContactNumber(data['listingContactNumber']);\r\n\t\tupdateAddressesExpanded({\"origin\": true, \"destination\": true});\r\n\t\tupdateCurrentOrderId(data['orderID']);\r\n\t\tupdatePriceEntered(data['initialPrice']);\r\n\t\t\r\n\t\tif(freightType == Constants.freightType.vehicle){\r\n\t\t\tfetch('/Vehicle/GetVehiclesForVehiclePosting?postingID=' + postingID)\r\n\t\t\t\t.then(response => response.json())\r\n\t\t\t\t.then(data => createVehicleDataFromApiResponse(data));\r\n\t\t}else if(freightType == Constants.freightType.container){\r\n\t\t\tfetch('/Container/GetContainersForContainerPosting?postingID=' + postingID)\r\n\t\t\t\t.then(response => response.json())\r\n\t\t\t\t.then(data => createContainerDataFromApiResponse(data));\r\n\t\t}\r\n\t\t\r\n\t\tfor(var key in data){\r\n\t\t\tvar formElements = document.getElementById(postingFormName).elements;\r\n\t\t\tif(key in formElements){\r\n\t\t\t\tformElements[key].value = data[key];\r\n\t\t\t}\r\n\t\t\tvar extraKey = \"freightPostingInputModel.\" + key;\r\n\t\t\tif(extraKey in formElements){\r\n\t\t\t\tformElements[extraKey].value = data[key];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst createVehicleDataFromApiResponse = (vehicleArray) =>\r\n\t{\r\n\t\tvar vehicleDetails = [];\r\n\t\t// RJM January 11, 2021; Controllers\\api\\VehicleController.cs > vehiclePostingEditModel\r\n\t\tvehicleArray.map(vehicle => {\r\n\t\t\tvar vehicleInput = JSON.parse(JSON.stringify(Constants.defaultVehicleInputData));\r\n\t\t\tvehicleInput.VIN = vehicle.vin;\r\n\t\t\tvehicleInput.Make = vehicle.make;\r\n\t\t\tvehicleInput.Model = vehicle.model;\r\n\t\t\tvehicleInput.Year = vehicle.year;\r\n\t\t\tvehicleInput.serialNumber = vehicle.serialNumber;\r\n\t\t\tvehicleInput.VehicleType = vehicle.vehicleType.toString();\r\n\t\t\tvehicleInput.userFreeTextedVehicleType = vehicle.userFreeTextedVehicleType;\r\n\t\t\tvehicleInput.VINDecodedVehicleType = vehicle.vehicleType.toString();\r\n\t\t\tvehicleInput.vehicleCondition = vehicle.vehicleCondition.toString();\r\n\t\t\tvehicleInput.memberNumber = vehicle.memberNumber;\r\n\t\t\tvehicleInput.lotNumber = vehicle.lotNumber;\r\n\t\t\tvehicleInput.attributeEditId = vehicle.attributeEditId;\r\n\t\t\tvehicleInput.vehicleEditId = vehicle.vehicleEditId;\r\n\t\t\tvehicleDetails.push(vehicleInput);\r\n\t\t});\r\n\r\n\t\tupdateVehicleInputDetails([...vehicleDetails]);\r\n\t}\r\n\r\n\tconst createContainerDataFromApiResponse = (containerArray) =>\r\n\t{\r\n\t\tvar containerDetails = [];\r\n\t\tvar containerSizeValue = null;\r\n\t\t// RJM January 11, 2021; Controllers\\api\\ContainerController.cs > containerPostingEditModel\r\n\t\tcontainerArray.map(container => {\r\n\t\t\tvar containerInput = JSON.parse(JSON.stringify(Constants.defaultContainerInputData));\r\n\t\t\tcontainerInput.size = container.size;\r\n\t\t\tcontainerInput.bookingNumber = container.bookingNumber;\r\n\t\t\tcontainerInput.containerEditId = container.containerEditId;\r\n\t\t\tif(container.size == 0){\r\n\t\t\t\tcontainerSizeValue = Constants.ContainerSize.TwentyFoot.value;\r\n\t\t\t}\r\n\t\t\tif(container.size == 1){\r\n\t\t\t\tcontainerSizeValue = Constants.ContainerSize.FortyFoot.value;\r\n\t\t\t}\r\n\t\t\tcontainerDetails.push(containerInput);\r\n\t\t});\r\n\t\tupdateContainerSize(containerSizeValue);\r\n\t\tupdateContainerInputDetails([...containerDetails]);\r\n\t}\r\n\r\n\r\n\tuseEffect(() => {\r\n\t\tif(!cookieLoaded || EditMode){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar cookie = getCookie(postingFormName);\r\n\t\tif(cookie.length > 10){\r\n\t\t\tvar cookieData = JSON.parse(cookie);\r\n\t\t\t// alert(retval.length);\r\n\t\t\t// You will want to trigger updates here as needed\r\n\t\t\tfor(var key in cookieData){\r\n\t\t\t\tvar formElements = document.getElementById(postingFormName).elements;\r\n\t\t\t\t//alert(key+\": \"+obj[key]);\r\n\t\t\t\tif(key in formElements){\r\n\t\t\t\t\tformElements[key].value = cookieData[key];\r\n\t\t\t\t}\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t}, [cookieLoaded, EditMode]);\r\n\r\n\tconst onUpdateLoadingAddress = (key,value) => {\r\n\t\tupdateAddressesExpanded(prevExpanded => {\r\n\t\t\tprevExpanded.origin = true;\r\n\t\t\treturn {...prevExpanded};\r\n\t\t});\r\n\t\tupdateLoadingAddress(prevLoadingAddress => {\r\n\t\t\tprevLoadingAddress[key] = value;\r\n\t\t\treturn {...prevLoadingAddress};\r\n\t\t});\r\n\t}\r\n\r\n\tconst onUpdateDeliveryAddress = (key,value) => {\r\n\t\tupdateAddressesExpanded(prevExpanded => {\r\n\t\t\tprevExpanded.destination = true;\r\n\t\t\treturn {...prevExpanded};\r\n\t\t});\r\n\t\tupdateDeliveryAddress(prevDestinationAddress => {\r\n\t\t\tprevDestinationAddress[key] = value;\r\n\t\t\treturn {...prevDestinationAddress};\r\n\t\t});\r\n\t}\r\n\r\n\tconst onUpdateVehicleInput = (id,key,value) => {\r\n updateVehicleInputDetails(vehicleInputData => {\r\n\t\t\tvehicleInputData[id][key] = value;\r\n\t\t\treturn [...vehicleInputData];\r\n\t\t});\r\n\t}\r\n\r\n\tconst onUpdateMultipleVehicleInputs = (id,keyValuePairs) => {\r\n\t\tupdateVehicleInputDetails(vehicleInputData => {\r\n\t\t\tkeyValuePairs[\"keys\"].forEach((key,index) => {\r\n\t\t\t\t\tvehicleInputData[id][key] = keyValuePairs[\"values\"][index];\r\n\t\t\t\t\t// console.log(\"Index is \" + index + \" . Value at index is \" + keyValuePairs[\"values\"][index]);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t\treturn [...vehicleInputData];\r\n\t\t})\r\n\t}\r\n\r\n\tconst onUpdateContainerInput = (id,key,value) => {\r\n updateContainerInputDetails(containerInputData => {\r\n\t\t\tcontainerInputData[id][key] = value;\r\n\t\t\treturn [...containerInputData];\r\n\t\t});\r\n\t}\r\n\t\r\n\tconst addVehicle = () =>\r\n\t{\r\n\t\tif(vehicleInputDetails.length < Constants.maxNumVehiclesPerPosting)\r\n\t\t{\r\n\t\t\tvar newInput = JSON.parse(JSON.stringify(Constants.defaultVehicleInputData));\r\n\t\t\tupdateVehicleInputDetails(prevValues => {\r\n\t\t\t\t// https://reactjs.org/docs/hooks-reference.html#usestate \r\n\t\t\t\t// (search for 'object spread syntax')\r\n\t\t\t\treturn [...prevValues, newInput]; \r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tconst addContainer = () =>\r\n\t{\r\n\t\tif(containerInputDetails.length < Constants.maximumContainersPerPosting(containerSize))\r\n\t\t{\r\n\t\t\tvar newInput = JSON.parse(JSON.stringify(Constants.defaultContainerInputData));\r\n\t\t\tupdateContainerInputDetails(prevValues => {\r\n\t\t\t\t// https://reactjs.org/docs/hooks-reference.html#usestate \r\n\t\t\t\t// (search for 'object spread syntax')\r\n\t\t\t\treturn [...prevValues, newInput]; \r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t\r\n\tconst removeVehicle = (index) =>\r\n\t{\r\n\t\tvar numVehicles = vehicleInputDetails.length;\r\n\t\tif(index < numVehicles && index >= 0 && numVehicles > 1)\r\n\t\t{\r\n\t\t\tupdateVehicleInputDetails(prevValues => {\r\n\t\t\t\tprevValues.splice(index,1);\r\n\t\t\t\treturn [...prevValues];\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tconst removeContainer = (index) =>\r\n\t{\r\n\t\tvar numVehicles = containerInputDetails.length;\r\n\t\tif(index < numVehicles && index >= 0 && numVehicles > 1)\r\n\t\t{\r\n\t\t\tupdateContainerInputDetails(prevValues => {\r\n\t\t\t\tprevValues.splice(index,1);\r\n\t\t\t\treturn [...prevValues];\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t// #region Cookie\r\n\tconst setCookie = (c_name,value,expireminutes) =>\r\n\t{\r\n\t\tvar exdate=new Date();\r\n\t\texdate.setMinutes(exdate.getMinutes()+expireminutes);\r\n\t\tdocument.cookie=c_name+ \"=\" +escape(value)+\r\n\t\t((expireminutes==null) ? \"\" : \";expires=\"+exdate.toUTCString())+\r\n\t\t\";path=/ClientApp/CreatePosting\";\r\n\t}\r\n\r\n\tconst getCookie = (c_name) =>\r\n\t{\r\n\t\tif (document.cookie.length>0)\r\n\t\t{\r\n\t\t\tvar c_start = document.cookie.indexOf(c_name + \"=\");\r\n\t\t\tif (c_start!=-1)\r\n\t\t\t{\r\n\t\t\t\tc_start=c_start + c_name.length+1;\r\n\t\t\t\tvar c_end=document.cookie.indexOf(\";\",c_start);\r\n\t\t\t\tif (c_end==-1) c_end=document.cookie.length;\t\t\t\t\r\n\t\t\t\treturn unescape(document.cookie.substring(c_start,c_end));\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\t\r\n\r\n\t//#region Components5\r\n\tconst PostingTypeChoice = () => \r\n\t\t
\r\n\t\t\tChoose your posting type
\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
\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{postingType == Constants.postingType.normal.value && Constants.postingType.normal.description}\r\n\t\t\t\t{postingType == Constants.postingType.quickPosting.value && Constants.postingType.quickPosting.description}\r\n\t\t\t\t{postingType == Constants.postingType.postAndDispatch.value && Constants.postingType.postAndDispatch.description}\r\n\t\t\t\r\n\t\t
\r\n\r\n\tconst FreightTypeChoice = () =>\r\n\t\t
\r\n\t\t\tAre you shipping vehicles or containers?\r\n\t\t\t
\r\n\t\t\t\t updateFreightType(evt.target.value)}\r\n\t\t\t\t\tchecked={freightType == Constants.freightType.vehicle}/>\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t updateFreightType(evt.target.value)}\r\n\t\t\t\t\tchecked={freightType == Constants.freightType.container}/>\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\r\n\tconst ContainerSizeChoice = () => \r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\tWhat is the size of your container(s)?
\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\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\r\n\tconst OriginAndDestinationTypeChoiceCard = () => \r\n\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\tconst PickupLocationTypeChoice = () =>\r\n\t\t
\r\n\t\t\t \r\n\t\t\t\r\n\t\t
\r\n\r\n\tconst DestinationLocationTypeChoice = () =>\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\tconst SubmitButton = () =>\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t{/* {this.state.fileUploadsMayTakeTimeText} */}\r\n\t\t\t
\r\n\t\t\t\tPlease note: If you plan to ship your freight overseas, make sure that the carrier has a Dock Receipt for before they arrive at the port \r\n\t\t\t
\r\n\t\t
\r\n\t//#endregion Components\r\n\r\n\t// Make sure to remove \"|| true\" before going live\r\n\tconst freightTypeSelected = () => freightType != null\r\n\tconst locationTypesSelected = () => (pickupLocationType != null && dropOffLocationType != null);\r\n\tconst freightAndLocationTypeSelected = () =>\r\n\t\tfreightTypeSelected() && (locationTypesSelected() || (postingType === Constants.postingType.quickPosting.value));\r\n\r\n\t// Fees calcualtion\r\n\tconst getServiceFeeForVehicles = (numVehicles) => numVehicles * serviceFeePerVehicle\r\n\tconst getServiceFeeForContainers = (numContainers) => numContainers * serviceFeePerContainerForShippers\r\n\tconst getCreditCardFee = (originalPaymentAmount) => originalPaymentAmount * (creditCardFeeMultiplier - 1)\r\n\tconst getTotalPrice = (originalPaymentAmount) => originalPaymentAmount * creditCardFeeMultiplier\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{!EditMode &&

New Freight Posting

}\r\n\t\t\t\t{EditMode &&

Edit {freightType} Posting

}\r\n\t\t\t
\r\n\t\t\t
{\r\n\t\t\t\t\tupdateFormSubmitting(true);\r\n\t\t\t\t\tvar form = document.getElementById(postingFormName);\r\n \t\t\t\t\tvar json = {};\r\n\t\t\t\t\tfor (var i=0;i\r\n\t\t\t\t{/* Header post and save buttons */}\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\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
*/}\r\n\t\t\t\t\r\n\t\t\t\t{!EditMode && }\r\n\t\t\t\t{freightTypeSelected() \r\n\t\t\t\t\t&& postingType != Constants.postingType.quickPosting.value\r\n\t\t\t\t\t&& }\r\n\t\t\t\t\r\n\t\t\t\t{/* VEHICLE INPUT CARD */}\r\n\t\t\t\t{freightAndLocationTypeSelected()\r\n\t\t\t\t\t&& freightType == Constants.freightType.vehicle \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\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
Vehicle information
\r\n\t\t\t\t\t\t\t\t\t{!EditMode &&\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\tTotal vehicle(s): {vehicleInputDetails.length}
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{vehicleInputDetails.map((values,index) => \r\n\t\t\t\t\t\t\t\t\t\t\t vehicleInputList\r\n\t\t\t\t\t\t\t\t\t\t\t\tauctionDetailsNeeded={pickupLocationType == Constants.locationType[\"1\"]}\r\n\t\t\t\t\t\t\t\t\t\t\t\teditMode={EditMode}\r\n\t\t\t\t\t\t\t\t\t\t/>)}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t{/* CONTAINER INPUT CARD */}\r\n\t\t\t\t{freightAndLocationTypeSelected()\r\n\t\t\t\t\t&& freightType == Constants.freightType.container \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\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
Container information
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tTotal container(s): {containerInputDetails.length}
\r\n\t\t\t\t\t\t\t\t\t\t\t{/*If Container size is 20 ft, show add container button*/}\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{/* TODO: Add container specific front end */}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{/* Seems like we need to mirror the vehicle info input card because otherwise the\r\n\t\t\t\t\t\t\t\t\t\t \tcentering of the container card doesn't work like the vehicle one does*/}\r\n\t\t\t\t\t\t\t\t\t\t{containerInputDetails.map((values,index) => \r\n\t\t\t\t\t\t\t\t\t\t\t containerInputList\r\n\t\t\t\t\t\t\t\t\t\t\t\tcontainerSize={containerSize}\r\n\t\t\t\t\t\t\t\t\t\t\t\teditMode={EditMode}\r\n\t\t\t\t\t\t\t\t\t\t/>)}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t{/* ORIGIN AND DESTINATION LOCATION INPUT CARDs */}\r\n\t\t\t\t{freightAndLocationTypeSelected() \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\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t updateExpiry(value)}\r\n\t\t\t\t\t\t\t\t\tdateFormat=\"MM/dd/yyyy h:mm aa\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t{/* Flag to Assign to carrier Right away, and add carrier selection card */}\r\n\t\t\t\t\r\n\t\t\t\t{/* CONTACT NUMBER AND ORDER ID */}\r\n\t\t\t\t{freightAndLocationTypeSelected()\r\n\t\t\t\t\t&& addressesExpanded.origin \r\n\t\t\t\t\t&& addressesExpanded.destination \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\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t updateShipperContactNumber(evt.target.value)}/>\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{/* Order ID generation */}\r\n\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\t}\r\n\r\n\t\t\t\t{/* PRICE INPUT AND PRICE CHECK */}\r\n\t\t\t\t{freightAndLocationTypeSelected()\r\n\t\t\t\t\t&& addressesExpanded.origin \r\n\t\t\t\t\t&& addressesExpanded.destination \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\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
$
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif(evt.target.value == 0 || evt.target.value == \"0\"){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePriceEntered(\"\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePriceEntered(Number(evt.target.value));\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t\tvalue={priceEntered} />\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t{ \r\n\t\t\t\t\t\t\t\t\t\t\t\tupdatePriceCheckRequested(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\tupdatePriceCheckCompleted(false);\r\n\t\t\t\t\t\t\t\t\t\t\t}} />\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{pricesCheckRequested \r\n\t\t\t\t\t\t\t\t&& \r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t{freightAndLocationTypeSelected() \r\n\t\t\t\t\t&& addressesExpanded.origin \r\n\t\t\t\t\t&& addressesExpanded.destination \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\t\t

Price breakdown

\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{/* This could use a refactor sometime */}\r\n\t\t\t\t\t\t\t\t\t\tYour listed price: ${priceEntered}\r\n\t\t\t\t\t\t\t\t\t\t{freightType == Constants.freightType.vehicle\r\n\t\t\t\t\t\t\t\t\t\t\t&& <>\r\n\t\t\t\t\t\t\t\t\t\t\tService fee: {vehicleInputDetails.length} vehicles x ${serviceFeePerVehicle} = ${getServiceFeeForVehicles(vehicleInputDetails.length).toFixed(2)}\r\n\t\t\t\t\t\t\t\t\t\t\tCredit card fee: $ {getCreditCardFee(priceEntered + getServiceFeeForVehicles(vehicleInputDetails.length)).toFixed(3)} ({(creditCardFeeMultiplier - 1).toFixed(4)*100}%)\r\n\t\t\t\t\t\t\t\t\t\t\tYour total payment: \r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t${getTotalPrice(priceEntered + getServiceFeeForVehicles(vehicleInputDetails.length)).toFixed(2)}\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t{freightType == Constants.freightType.container\r\n\t\t\t\t\t\t\t\t\t\t\t&& <>\r\n\t\t\t\t\t\t\t\t\t\t\tService fee: {containerInputDetails.length} containers x ${serviceFeePerContainerForShippers} = ${getServiceFeeForContainers(containerInputDetails.length).toFixed(2)}\r\n\t\t\t\t\t\t\t\t\t\t\tCredit card fee: $ {getCreditCardFee(priceEntered + getServiceFeeForContainers(containerInputDetails.length)).toFixed(3)} ({(creditCardFeeMultiplier - 1).toFixed(4)*100}%)\r\n\t\t\t\t\t\t\t\t\t\t\tYour total payment: \r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t${getTotalPrice(priceEntered + getServiceFeeForContainers(containerInputDetails.length)).toFixed(2)}\r\n\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\tPayment to carrier: \r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t${priceEntered}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\tCarrier's final payment may differ based on their service fee\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tNote: Payment will be debited when carrier marks freight as picked up\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t{/* Additional terms */}\r\n\t\t\t\t{freightAndLocationTypeSelected() \r\n\t\t\t\t\t&& postingType != Constants.postingType.quickPosting.value\r\n\t\t\t\t\t&& addressesExpanded.origin \r\n\t\t\t\t\t&& addressesExpanded.destination \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\t\r\n\t\t\t\t\t
\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t{freightAndLocationTypeSelected() \r\n\t\t\t\t\t&& addressesExpanded.origin \r\n\t\t\t\t\t&& addressesExpanded.destination \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\r\n\t\t\t
\r\n\t\t
\r\n \t);\r\n}\r\n\r\nexport { CreatePosting };","import React from \"react\";\r\n\r\nconst NotFound = () => (\r\n

\r\n Sorry! The resource you are looking for has not been found\r\n

\r\n);\r\n\r\nexport { NotFound };","import React,{useEffect, useState} from \"react\";\r\nimport { Constants } from \"../Constants\";\r\n\r\nconst SubmissionSuccess = () => {\r\n\tconst message = Constants.messageIDToMessageMap[\"PostingSubmitSuccess\"];\r\n\r\n\tuseEffect(() => {\r\n\t\t// Get the page we're redirecting to from the search parameters returned by the post request\r\n\t\tconst urlParams = new URLSearchParams(window.location.search);\r\n\t\tconst redirectPageName = urlParams.get('redirectPage');\r\n\t\tconst redirectPageUrl = Constants.pageNameToUrlMap[redirectPageName];\r\n\r\n\t\tsetTimeout(function () {\r\n\t\t\twindow.parent.location.replace(redirectPageUrl);\r\n\t\t}, 1000);\r\n\t}, true)\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t

\r\n\t\t\t\t{message}\r\n\t\t\t

\r\n\t\t
\r\n\t);\r\n}\r\n\r\nexport { SubmissionSuccess };","import React from \"react\";\r\n\r\nconst SubmissionError = () => (\r\n

\r\n There was an error processing your request.\r\n

\r\n);\r\n\r\nexport { SubmissionError };","import React from 'react'\r\nimport { Component } from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants'\r\nimport authService from './AuthorizeService'\r\n\r\nexport default class AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.authenticationChanged());\r\n this.populateAuthenticationState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n var link = document.createElement(\"a\");\r\n link.href = this.props.path;\r\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(returnUrl)}`\r\n if (!ready) {\r\n return
;\r\n } else {\r\n const { component: Component, ...rest } = this.props;\r\n return {\r\n if (authenticated) {\r\n return \r\n } else {\r\n return \r\n }\r\n }} />\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ ready: true, authenticated });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
{message}
\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return (
Processing login
);\r\n case LoginActions.LoginCallback:\r\n return (
Processing login callback
);\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nexport class Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.state.local) {\r\n this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\r\n }\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({ isReady: true, message: \"You successfully logged out!\" });\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n if (!isReady) {\r\n return
\r\n }\r\n if (!!message) {\r\n return (
{message}
);\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return (
Processing logout
);\r\n case LogoutActions.LogoutCallback:\r\n return (
Processing logout callback
);\r\n case LogoutActions.LoggedOut:\r\n return (
{message}
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n } else {\r\n this.setState({ message: \"You successfully logged out!\" });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Login } from './Login'\r\nimport { Logout } from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { CreatePosting } from './components/CreatePosting/CreatePosting';\r\nimport { NotFound } from './components/NotFound';\r\nimport { SubmissionSuccess } from './components/SubmissionSuccess';\r\nimport { SubmissionError } from './components/SubmissionError';\r\nimport AuthorizeRoute from './components/api-authorization/AuthorizeRoute';\r\nimport ApiAuthorizationRoutes from './components/api-authorization/ApiAuthorizationRoutes';\r\nimport { ApplicationPaths } from './components/api-authorization/ApiAuthorizationConstants';\r\n\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render () {\r\n return (\r\n \r\n \r\n {/* \r\n {/* */}\r\n\t\t {/* RJM 10/14/2020 Authorize route only takes the path parameter as return url. Need to do this for now to make it work */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\n//import registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = \"ClientApp\";\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n// Uncomment the line above that imports the registerServiceWorker function\r\n// and the line below to register the generated service worker.\r\n// By default create-react-app includes a service worker to improve the\r\n// performance of the application by caching static assets. This service\r\n// worker can interfere with the Identity UI, so it is\r\n// disabled by default when Identity is being used.\r\n//\r\n//registerServiceWorker();\r\n\r\n"],"sourceRoot":""}