{"version":3,"file":"edit-Cjk8JjZR.js","sources":["../../../app/javascript/packs/reviews/edit.js"],"sourcesContent":["/* global Foundation */\n\nconst csrfProtection = (xhr) => {\n const token = document.querySelector('meta[name=\"csrf-token\"]')?.content\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token)\n }\n}\n\n$(document).ready(() => {\n if (window.location.hash === '#set-password') {\n const $modalDiv = $('#set-password')\n if ($modalDiv.length > 0) {\n const $modal = new Foundation.Reveal($modalDiv)\n $modal.open()\n }\n }\n\n const $container = $('#new-review-form-container')\n const reviewId = $container.data('reviewId')\n\n // duplicate chrome tab caused the last ajax call to be loaded instead of the html view\n $container.on('click', '.go-back', (e) => {\n e.preventDefault()\n $.ajax(`/reviews/${reviewId}/edit.js`)\n })\n\n $container.on('keyup', '#review-body', Foundation.util.debounce((e) => {\n microUpdate(e.currentTarget.name, e.currentTarget.value)\n }, 5000))\n\n $container.on('change', '#review_contract_vehicle_id', Foundation.util.debounce((e) => {\n microUpdate(e.currentTarget.name, e.currentTarget.value)\n }, 3000))\n\n $container.on('change', '#review_contract_id', Foundation.util.debounce((e) => {\n microUpdate(e.currentTarget.name, e.currentTarget.value)\n }, 3000))\n\n $container.on('change', '#review_contract_freeform', Foundation.util.debounce((e) => {\n microUpdate(e.currentTarget.name, e.currentTarget.value)\n }, 3000))\n\n $container.on('change', '.reviewer-display-input, .share-with-supplier-input', (e) => {\n const el = e.currentTarget\n let value = null\n\n if (el.checked) {\n value = el.value\n } else {\n value = $(`input[name=\"${e.currentTarget.name}\"][type=\"hidden\"]`).val()\n }\n\n microUpdate(e.currentTarget.name, value)\n })\n\n $container.on('change', '.nps-input, .star-input', (e) => {\n microUpdate(e.currentTarget.name, e.currentTarget.value)\n })\n\n $container.on('click', '#save-body-button', (e) => {\n e.preventDefault()\n\n const form = $(e.currentTarget).closest('form')\n const updatedBody = form.find('#review-body-page-2').val()\n const submitButton = form.find('#save-body-button')\n\n $.ajax({\n url: form.attr('action'),\n method: form.attr('method'),\n data: { review: { body: updatedBody } },\n beforeSend: csrfProtection,\n success: () => {\n microUpdate('review[body]', updatedBody)\n submitButton.val('THANK YOU')\n },\n error: (error) => {\n console.error('Error updating review body:', error)\n }\n })\n })\n\n $container.on('input', '#review-body-page-2', () => {\n const submitButton = $('#save-body-button')\n submitButton.val('SUBMIT REVIEW')\n })\n\n const microUpdate = (name, value) => {\n const page = $('#review-form-inner-container').data('page')\n const reviewStatus = $('#review-form-inner-container').data('reviewStatus')\n\n // do not autosave on page 1 when the review has been published\n if (page === 1 && reviewStatus === 'published') {\n return\n }\n\n const data = {}\n data[name] = value\n\n $('#save-confirmation').css({ opacity: 0 })\n\n $.ajax({\n url: `/reviews/${reviewId}/micro_update`,\n method: 'PATCH',\n data,\n beforeSend: csrfProtection\n }).then(function (response) {\n if (response.published_complete) {\n $('.progress').addClass('complete')\n } else {\n $('.progress').removeClass('complete')\n }\n\n const text = saveConfirmationText(name)\n const $saveConfirmation = $('#save-confirmation')\n const $confirmationMessage = $('#save-confirmation-message')\n\n if (text !== '') {\n $confirmationMessage.text(text)\n $saveConfirmation.addClass('show-checkmark')\n $saveConfirmation.animate({ opacity: 1 }, 800)\n } else {\n $saveConfirmation.removeClass('show-checkmark')\n $confirmationMessage.empty()\n $saveConfirmation.animate({ opacity: 0 }, 800)\n }\n })\n }\n})\n\nconst showReviewCta = () => {\n setTimeout(() => {\n $('#review-cta-container, #view-supplier-profile').addClass('fade-in')\n }, 1000)\n}\n\nif (window.app === undefined) {\n window.app = {}\n}\nwindow.app.showReviewCta = showReviewCta\n\nconst saveConfirmationText = (field) => {\n let text = ''\n const submitButtonClicked = $('#save-body-button').is(':focus')\n\n switch (field) {\n case 'review[net_promoter]':\n text = 'Your recommendation has been captured'\n break\n case 'review[service_rating]':\n text = 'Your customer service rating has been captured'\n break\n case 'review[price_rating]':\n text = 'Your pricing/value rating has been captured'\n break\n case 'review[quality_rating]':\n text = 'Your quality rating has been captured'\n break\n case 'review[timeliness_rating]':\n text = 'Your timeliness rating has been captured'\n break\n case 'review[body]':\n if (submitButtonClicked) {\n text = 'Your review has been captured'\n }\n break\n }\n\n return text\n}\n"],"names":["csrfProtection","xhr","token","$modalDiv","$container","reviewId","microUpdate","el","value","form","updatedBody","submitButton","error","name","page","reviewStatus","data","response","text","saveConfirmationText","$saveConfirmation","$confirmationMessage","showReviewCta","field","submitButtonClicked"],"mappings":"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"}