1import{Controller}from"@hotwired/stimulus";import{get}from"@rails/request.js";export default class extends Controller{static values={restaurantIds:Array,enabled:{type:Boolean,default:!1},intervalSeconds:{type:Number,default:3}};connect(){this.disconnected=!1,this.paused=!1,this.enabledValue&&this.schedulePoll()}pausePoll(){this.paused=!0,this.pollTimeout&&(clearTimeout(this.pollTimeout),this.pollTimeout=null)}resumePoll(){this.paused=!1,this.enabledValue&&!this.disconnected&&this.schedulePoll()}disconnect(){this.disconnected=!0,this.pollTimeout&&clearTimeout(this.pollTimeout)}schedulePoll(){this.pollTimeout=setTimeout(()=>this.fetchSlots(),1e3*this.intervalSecondsValue)}fetchSlots(){if(this.disconnected||this.paused)return;if(0===this.restaurantIdsValue.length)return;const e=this.restaurantIdsValue.join(",");get(`/now/slots/${e}`,{responseKind:"turbo-stream"}).then(()=>{!this.enabledValue||this.disconnected||this.paused||this.schedulePoll()}).catch(e=>console.error("Error fetching slots:",e))}}
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.