PageSourceSearch

https://tour-manager-hub-1-r-1769346649.emergent.host/static/js/3050.16d4f5ed.chunk.js

js tour-manager-hub-1-r-1769346649.emergent.host collected 2026-10-03 03:22:32 UTC 2,714 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkfrontend=self.webpackChunkfrontend||[]).push([[3050],{53050:(e,t,s)=>{s.r(t),s.d(t,{default:()=>h});var a=s(65043),r=s(18163),i=s(87245),n=s(13390),l=s(56328),d=s(65469),c=s(20059),o=s(70579);const m="https://balkandestination.com";function h(){const e=(0,r.Zp)(),[t,s]=(0,a.useState)([]),[h,x]=(0,a.useState)(null),[p,u]=(0,a.useState)(!0);return(0,a.useEffect)(()=>{(async()=>{try{const e=localStorage.getItem("token"),t=await fetch(`${m}/api/partner/pms/hotels`,{headers:{Authorization:`Bearer ${e}`}}),a=await t.json();if(!t.ok)throw new Error(a.detail||"Failed to load");s(a),1===a.length&&x(a[0])}catch(e){l.oR.error(e.message)}finally{u(!1)}})()},[]),(0,o.jsxs)("div",{className:"min-h-screen bg-gray-50","data-testid":"partner-pms-page",children:[(0,o.jsx)("div",{className:"bg-white border-b px-6 py-4 flex items-center justify-between",children:(0,o.jsxs)("div",{className:"flex items-center gap-3",children:[h&&t.length>1&&(0,o.jsxs)(n.$,{variant:"ghost",size:"sm",onClick:()=>x(null),"data-testid":"partner-pms-back",children:[(0,o.jsx)(d.A,{className:"h-4 w-4 mr-1"}),"My properties"]}),!h&&(0,o.jsxs)(n.$,{variant:"ghost",size:"sm",onClick:()=>e("/partner"),children:[(0,o.jsx)(d.A,{className:"h-4 w-4 mr-1"}),"Dashboard"]}),(0,o.jsxs)("div",{children:[(0,o.jsxs)("h1",{className:"text-xl font-bold flex items-center gap-2",children:[(0,o.jsx)(c.A,{className:"h-5 w-5 text-[#41B649]"})," PMS & Channel Manager"]}),(0,o.jsx)("p",{className:"text-sm text-gray-500",children:h?h.name:"Manage rooms, rates, availability & OTA distribution"})]})]})}),(0,o.jsx)("div",{className:"max-w-6xl mx-auto p-6",children:h?(0,o.jsx)(i.R,{apiBase:"/api/partner",hotelId:h.id,hotelName:h.name,isAdmin:!1}):p?(0,o.jsx)("div",{className:"text-gray-500",children:"Loading\u2026"}):(0,o.jsxs)("div",{className:"bg-white border rounded-lg divide-y","data-testid":"partner-pms-hotel-list",children:[0===t.length&&(0,o.jsx)("div",{className:"p-4 text-sm text-gray-500",children:"No properties assigned to your account yet."}),t.map(e=>{const t=e.subscription||{};return(0,o.jsxs)("button",{onClick:()=>x(e),"data-testid":`partner-pms-hotel-${e.id}`,className:"w-full flex items-center justify-between p-4 hover:bg-gray-50 text-left",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"font-medium",children:e.name}),(0,o.jsx)("div",{className:"text-xs text-gray-500",children:[e.city,e.state].filter(Boolean).join(", ")})]}),(0,o.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs "+(t.channels_allowed?"bg-emerald-100 text-emerald-700":"bg-red-100 text-red-700"),children:t.effective_status||"free"})]},e.id)})]})})]})}}}]);
2//# sourceMappingURL=3050.16d4f5ed.chunk.js.map

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.