PageSourceSearch

https://sa0-sp.roadtrippers.com/packs/2570.ecb500b5b69ead036ffb.js

js roadtrippers.com collected 2026-09-24 08:29:08 UTC 9,623 bytes, 1 lines download raw bytes

1(self.webpackChunk=self.webpackChunk||[]).push([[2570],{2570:(e,t,i)=>{"use strict";i.r(t),i(74529),i(3008),i(67013);var s=i(45469),r=i(90227),n=i(50052),a=i(45697),o=i.n(a),l=i(78974),h=i(13469),d=i(76834),c=i(22614),u=i(76318),w=i(67294),p=i(45007),v=i(85893);function y({createReview:e,createReviewUrl:t,onClose:i}){const a=(0,p.v9)(u.HF),[o,y]=(0,w.useState)({}),[m,f]=(0,w.useState)({text:"",url:""}),[R,g]=(0,w.useState)(!1),[b,k]=(0,w.useState)(!1),C=(0,w.useRef)(m),$="add-review-form",x=a.roles.some((e=>["admin","content_admin","curator"].includes(e.name)));function T(){b||(R?(0,c.BB)({headerText:"Are you sure you want to close without saving your review?",onPrimaryButtonClick:()=>{i()},primaryButtonClassName:"danger-filled",primaryButtonLabel:"Close"}):i())}function L(e){const{id:t,value:i}=e.currentTarget,s={...m,[t]:i};!function(e){if(o[e]){const t={...o};delete t[e],y(t)}}(t),f(s),g(!(0,h.isEqual)(C.current,s))}return(0,v.jsx)(n.Z,{onClose:T,size:"large",children:(0,v.jsxs)("section",{id:"add-review-modal",children:[(0,v.jsx)("h2",{children:"Add Review"}),(0,v.jsxs)("form",{id:$,noValidate:!0,onSubmit:function(s){s.preventDefault(),function(){const{text:e,url:t}=m,i={};return t&&t.replace(/^\s+|\s+$/g,"").length>0&&!/https?/i.test(t)&&(i.url="Review url must be a complete url."),e||(i.text="Review text is required."),!Object.entries(i).length||(y(i),!1)}()&&async function(){k(!0);try{var s;const r={Accept:"text/html","Content-Type":"application/json"},n=null===(s=document.querySelector('meta[name="csrf-token"]'))||void 0===s?void 0:s.content;n&&(r["X-CSRF-Token"]=n);const a=await fetch(t,{body:JSON.stringify(m),headers:r,method:"POST"}),o=await a.text();e(o),i()}catch(e){k(!1),(0,d.q)({contentText:"We were unable to save your review. Please try submitting again.",headerText:"Uh oh!"}),console.error(e)}}()},children:[(0,v.jsx)(l.Z,{errorText:o.text,id:"text",isDisabled:b,label:"Review",onChange:L,placeholder:"Add your review here",value:m.text}),(0,v.jsx)(r.Z,{className:"review-url",errorText:o.url,id:"url",isDisabled:b,isVisible:x,label:"Review Url",onChange:L,placeholder:"Add your review url here",type:"url",value:m.url}),(0,v.jsxs)("div",{className:"form-actions",children:[(0,v.jsx)(s.Z,{className:"secondary-filled",formId:$,isDisabled:!R,isLoading:b,children:"Add Review"}),(0,v.jsx)(s.Z,{className:"primary-text red",isDisabled:b,onClick:T,children:"Cancel"})]})]})]})})}function m(e){return(0,v.jsx)(p.zt,{store:redux,children:(0,v.jsx)(y,{...e})})}y.propTypes={createReview:o().func.isRequired,createReviewUrl:o().string.isRequired,onClose:o().func.isRequired},m.propTypes={createReview:o().func.isRequired,createReviewUrl:o().string.isRequired,onClose:o().func.isRequired};var f=i(61723),R=i(97818);rt.byway.views.FeedView=Backbone.View.extend({events:{"click .add-review":"handleAddReviewButtonClick","click .pagination-view a":"handlePaginationLinkClick","click .review-sort .menu-button":"handleReviewSortOpenClick","click .review-sort .menu button":"handleReviewSortClick"},initialize:function(e){this.props=e.props,this.reviewList=[],this.$htmlBody=$("html, body"),this.$reviewListView=this.$(".review-list-view"),this.$reviewList=this.$(".review-list"),this.$reviewSortButton=this.$(".review-sort .menu-button"),this.$reviewSortMenu=this.$(".review-sort .menu-view"),this.$reviewSortText=this.$(".review-sort .menu-button span"),this.rateView=new rt.byway.views.RateView({el:this.$(".rate-view")[0],props:{id:this.props.id,createRatingUrl:this.props.createRatingUrl,deleteRatingUrl:this.props.deleteRatingUrl,model:this.props.model}}),document.addEventListener("click",(e=>{this.$reviewSortButton.is(e.target)||0!==this.$reviewSortButton.has(e.target).length||this.$reviewSortMenu.removeClass("show")}))},setProps:function(e){this.props=_.extend({},this.props,e),this.render()},handleAddReviewButtonClick:function(){this.props.model&&this.addReview()},handleAjaxSuccess:function(e){let t=this.$el.offset().top-130;this.$reviewListView.html(e),this.$reviewList=this.$(".review-list"),this.renderReviewList(),this.$htmlBody.animate({scrollTop:t+"px"},250,(function(){rt.helpers.lazyLoad.update()})),this.$el.removeClass("loading")},handlePaginationLinkClick:function(e){e.preventDefault(),e.stopPropagation(),this.loadReviewList(e.currentTarget.getAttribute("href"))}
1,handleReviewSortOpenClick:function(){this.$reviewSortMenu.toggleClass("show")},handleReviewSortClick:function(e){const{sort:t}=e.currentTarget.dataset,i=e.currentTarget.textContent;this.$reviewSortText.text(`Sort: ${i}`),this.$reviewSortButton.addClass("enabled"),this.$reviewSortMenu.removeClass("show");const s=`/byways/${this.props.id}/reviews?sort=${t}`;this.loadReviewList(s)},addReview:function(){(0,R.G)({trackAuthenticationPromptedContext:"poi add review"}).then((e=>{var t;e&&(t={createReview:this.createReview.bind(this),createReviewUrl:rt.routes.api_v2_byways_review_create_path(this.props.id)},(0,f.r)(m,t))}))},createReview:function(e){this.reviewList.unshift(this.newReviewView($(e)[0])),this.$reviewList.prepend(this.reviewList[0].el),rt.helpers.lazyLoad.update()},deleteReview:function(e){this.reviewList.splice(e,1)[0].remove(),rt.helpers.lazyLoad.update()},loadReviewList:function(e){this.$el.addClass("loading"),$.ajax({success:this.handleAjaxSuccess.bind(this),type:"GET",url:e})},newReviewView:function(e){return new rt.core.review.views.ReviewView({el:e,props:{context:"poi",deleteReview:this.deleteReview.bind(this)}})},render:function(){this.rateView.setProps({id:this.props.id,model:this.props.model}),this.renderReviewList()},renderReviewList:function(){this.props.model&&this.$(".review-view").each(function(e,t){this.reviewList[e]?this.reviewList[e].el!==t&&(this.reviewList[e].remove(),this.reviewList[e]=this.newReviewView(t)):this.reviewList[e]=this.newReviewView(t)}.bind(this))}}),rt.byway.views.RateView=Backbone.View.extend({events:{'click .rate-group > div[class^="rate-"]':"handleRateButtonClick"},initialize:function(e){this.props=e.props,this.label=document.querySelector(".rate-view .label"),this.rateButtons=document.querySelectorAll('.rate-group > div[class^="rate-"]'),this.thanksTimeout=null},setProps:function(e){this.props=_.extend({},this.props,e)},handleRateButtonClick:function(e){let t=null;e.currentTarget.classList.contains("selected")||(t=+e.currentTarget.dataset.value),this.postNewPoiRating(t)},postNewPoiRating:async function(e){await(0,R.G)({trackAuthenticationPromptedContext:"poi add rating"})&&(e?await this.createRating(e):await this.deleteRating())},createRating:function(e){return fetch(this.props.createRatingUrl(this.props.id,e),{method:"POST"}).then((()=>{this.showThanks(),this.updateCurrentUserRating(e)}))},deleteRating:function(){return fetch(this.props.deleteRatingUrl(this.props.id),{method:"DELETE"}).then((()=>{this.updateCurrentUserRating(null)}))},hideThanks:function(){this.label.classList.remove("show"),this.resetThanksTimeout()},resetThanksTimeout:function(){this.thanksTimeout&&(window.clearTimeout(this.thanksTimeout),this.thanksTimeout=null)},showThanks:function(){this.label.classList.add("show"),this.resetThanksTimeout(),this.thanksTimeout=window.setTimeout(this.hideThanks.bind(this),3250)},updateCurrentUserRating(e){document.querySelectorAll(".current-user-rating").forEach((t=>{e?(t.parentElement.classList.remove("hide"),t.innerHTML=`${e}.0`,t.className=`rating-${e} current-user-rating`):t.parentElement.classList.add("hide")})),this.rateButtons.forEach((t=>{t.classList.toggle("selected",+t.dataset.value===e)}))}})},3008:()=>{!function(){"use strict";rt.byway.views.BywayView=Backbone.View.extend({initialize:function(e){this.state={byway:null,id:e.props.id}},initializeMapContent:function(){const e=this.el.querySelector(".description-view");e&&new rt.byway.views.DescriptionView({el:e}),this.feedView=new rt.byway.views.FeedView({el:this.el.querySelector(".feed-view"),props:{id:this.state.id,createRatingUrl:rt.routes.api_v2_byways_rating_create_path,deleteRatingUrl:rt.routes.api_v2_byways_rating_destroy_path,model:this.state.byway}}),this.render()},setState:function(e){this.state={...this.state,...e},this.render()},afterDomInsertion:function(){this.initializeMapContent(),this.render(),this.fetchByway()},fetchByway:function(){fetch(`/api/v1/byways/${this.state.id}`).then((e=>{if(e.ok)return e.json()})).then((e=>{this.setState({byway:e})}))},getTitle:function(){return this.el.querySelector("#byway-view").dataset.title},render:function(){this.feedView&&this.feedView.setProps({id:this.state.id,model:this.state.byway})}},{createView:function(e){const t=this.isRendered()?"main":this.promiseHtml(e);return Promise.resolve(t).then((t=>new rt.byway.views.BywayView({el:t,props:{id:e}})))},isRendered:function(){return rt.app.router.initialRoute&&document.getElementById("byway-view")},promiseHtml:function(e){return fetch(rt.routes.byway_id_path(e),{headers:{"X-Requested-With":"XMLHttpRequest"}}).then((e=>e.text()))}})}()},67013:()=>{!function(){"use strict";rt.byway.views.DescriptionView=Backbone.View.extend({events:{"click .read-more":"handleReadMoreButtonClick"},initialize:function(){this.$descriptionContent=this.$(".description-content"),this.$paragraph=this.$descriptionContent.find("p"),this.$descriptionContent.height()<this.$paragraph.height()&&this.$el.addClass("hide")},handleReadMoreButtonClick:function(){this.$el.removeClass("hide").addClass("show"),this.$descriptionContent.css("height",this.$paragraph.height()+"px")}})}()},74529:()=>{var e,t,i;(e=window.rt).byway||(e.byway={}),(t=window.rt.byway).components||(t.components={}),(i=window.rt.byway).views||(i.views={})}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.