PageSourceSearch

https://app.zoca.com/assets/ResourcesPage-CgCQesL3.js

js zoca.com collected 2026-09-30 09:41:34 UTC 7,899 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ResourcesList-kDvbNs2I.js","assets/vendor-react-Dw2zQmPu.js","assets/commonjs-helpers-C05_-Ghz.js","assets/button-CFi0D1K4.js","assets/vendor-radix-guzGw5-0.js","assets/vendor-router-CtopkIuN.js","assets/vendor-ui-mAy9LocR.js","assets/app-cn-C2LL9ulS.js","assets/CatalogEmptyState-3i1od_VR.js","assets/badge-CeMSLKTm.js","assets/dialog-BvmB9skF.js","assets/dropdown-menu-CM3Fw2BS.js","assets/MediaImage-Bl7A0Pgn.js","assets/useResourceListData-DbG0CMY8.js","assets/vendor-tanstack-Dk5vt_tN.js","assets/app-core-DTTgVEgu.js","assets/vendor-utils-CQ_dDVxl.js","assets/vendor-redux-CqVJnD2r.js","assets/vite-preload-helper-BXl3LOEh.js","assets/resourcesApi-GBtgvPpB.js","assets/useResourcesTracking-2Pt4jbWt.js","assets/ResourceSkeletonLoader-BvfMbn6d.js","assets/skeleton-BJiIkxs-.js","assets/ResourceGroupsList-D5zLARG2.js","assets/resourceGroupIcons--TUWw1og.js","assets/ManageResourceModal-CouwBZ4u.js","assets/vendor-forms-CVvQPlhB.js","assets/input-D2ulylI3.js","assets/label-Bk74TkBv.js","assets/select-Bix8n78g.js","assets/switch-cx-NVRLs.js","assets/write-with-ai-input-CmkW15sk.js","assets/input-group-DrMNcVmx.js","assets/textarea-BekLdUF0.js","assets/collapsible-DXWzvf-v.js","assets/drop-zone-C0QS6DKH.js","assets/vendor-dropzone-DsNhpptc.js","assets/Selector-C3PUkr_t.js","assets/calendar-CqB-V14U.js","assets/vendor-date-fns-D1v0qsob.js","assets/popover-QqxJL8eJ.js","assets/BusinessHoursEditor-BmYw7REm.js","assets/timeInput-BMGtFVIH.js","assets/businessHoursUtils-O7qEsr1E.js","assets/ResourceFormSection-D6Tma5xO.js","assets/manageBookingForm-8N2kiP_1.js","assets/uploadToS3-DUJxsu3c.js","assets/uploadFileWithProgress-ZE3QZTyK.js","assets/app-shared-QFLrTdTF.js","assets/vendor-lodash-DVjWl2dU.js","assets/app-shared-Bk7LbV6o.css","assets/ServiceAccentBar-CwAovJR6.js","assets/workingHoursApi-Ed6tUUWH.js"])))=>i.map(i=>d[i]);
2import{_ as j}from"./vite-preload-helper-BXl3LOEh.js";import{r as s,j as e}from"./vendor-react-Dw2zQmPu.js";import{B as _}from"./button-CFi0D1K4.js";import{T as W,a as F,b as K}from"./tabs-Idmy3GtH.js";import{T as Q}from"./TopBar-MjVkmRVM.js";import{C as H}from"./CatalogEmptyState-3i1od_VR.js";import{u as Y,b as J}from"./vendor-router-CtopkIuN.js";import{u as X}from"./vendor-tanstack-Dk5vt_tN.js";import{R as Z}from"./resourcesApi-GBtgvPpB.js";import{R as $}from"./app-core-DTTgVEgu.js";import{u as ee,a as se}from"./useResourcesTracking-2Pt4jbWt.js";import{ae as T,b5 as re}from"./vendor-ui-mAy9LocR.js";import"./commonjs-helpers-C05_-Ghz.js";import"./vendor-radix-guzGw5-0.js";import"./app-cn-C2LL9ulS.js";import"./activatable-cWgvSTbQ.js";import"./app-back-btn-wWeMZhZJ.js";import"./useZocaAppActions-B3KlgEzE.js";import"./app-shared-QFLrTdTF.js";import"./vendor-lodash-DVjWl2dU.js";import"./vendor-utils-CQ_dDVxl.js";import"./useFtuxAnchorRect-CoIvPJl_.js";import"./SearchInput-DTaqHUou.js";import"./input-group-DrMNcVmx.js";import"./input-D2ulylI3.js";import"./textarea-BekLdUF0.js";import"./usemobile-BuLrGuzN.js";import"./vendor-redux-CqVJnD2r.js";const I=[{value:"groups",label:"Groups"},{value:"resources",label:"Resources"},{value:"inactive",label:"Archived"}],ae=()=>{const a=Y(),n=$(),[p,v]=s.useState(""),[f,m]=J(),g=f.get("tab"),o=I.some(r=>r.value===g)?g:"groups",[R,c]=s.useState(!1),[b,d]=s.useState(void 0),x=X(),{trackTabChange:C,trackSearchChange:h,trackAddClick:i}=ee(),[u,l]=s.useState({}),N=s.useCallback(r=>l(t=>({...t,resources:r})),[]),P=s.useCallback(r=>l(t=>({...t,groups:r})),[]),[E,k]=s.useState({}),w=s.useCallback(r=>k(t=>({...t,resources:r})),[]),O=s.useCallback(r=>k(t=>({...t,groups:r})),[]),G=E.resources===0&&E.groups===0;se({tab:o,resourceCount:u.resources??0,groupCount:u.groups??0,isLoading:o==="groups"?u.groups==null:o==="resources"?u.resources==null:!1});const z=s.useCallback(r=>{C(o,r),m(t=>{const y=new URLSearchParams(t);return y.set("tab",r),y})},[m,C,o]),V=s.useCallback(r=>{v(r),h(r,o)},[h,o]),M=s.useCallback(()=>{i("resource","topbar"),d(void 0),c(!0)},[i]),q=s.useCallback(()=>{d(void 0),c(!0)},[]),U=s.useCallback(r=>{d(r),c(!0)},[]),B=s.useCallback(()=>{x.invalidateQueries({queryKey:[Z.GET_ALL_RESOURCES]})},[x]),D=s.useCallback(()=>{i("group","topbar"),a(n("/dashboard/settings/resources/manage-group"))},[a,n,i]);return{activeSection:o,searchText:p,isResourceModalOpen:R,setIsResourceModalOpen:c,editingResourceId:b,isArchivedEmpty:G,handleResourceCount:N,handleGroupCount:P,handleArchivedResourceCount:w,handleArchivedGroupCount:O,handleSectionChange:z,handleSearchChange:V,handleCreateResource:M,handleCreateResourceFromEmptyState:q,handleEditResource:U,handleResourceSaved:B,handleCreateGroup:D}},A=s.lazy(()=>j(()=>import("./ResourcesList-kDvbNs2I.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]))),L=s.lazy(()=>j(()=>import("./ResourceGroupsList-D5zLARG2.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,24,21,22]))),oe=s.lazy(()=>j(()=>import("./ManageResourceModal-CouwBZ4u.js"),__vite__mapDeps([25,1,2,6,4,5,3,7,10,26,27,28,29,30,31,32,33,15,16,17,18,34,35,36,37,38,39,40,41,42,43,22,44,14,19,20,45,21,46,47,48,49,50,51,52]))),S=({children:a})=>e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-neutral-200 bg-neutral-50 px-3 py-2.5",children:[e.jsx(re,{className:"mt-px size-4 shrink-0 text-muted-foreground","aria-hidden":!0}),e.jsx("p",{className:"min-w-0 text-xs font-medium leading-[1.6] tracking-[-0.02em] text-muted-foreground",children:a})]}),Pe=()=>{const{activeSection:a,searchText:n,isResourceModalOpen:p,setIsResourceModalOpen:v,editingResourceId:f,isArchivedEmpty:m,handleResourceCount:g,handleGroupCount:o,handleArchivedResourceCount:R,handleArchivedGroupCount:c,handleSectionChange:b,handleSearchChange:d,handleCreateResource:x,handleCreateResourceFromEmptyState:C,handleEditResource:h,handleResourceSaved:i,handleCreateGroup:u}=ae();return e.jsxs("div",{"data-mp-no-auto":!0,className:"@container relative flex h-full flex-col",children:[e.jsx(Q,{title:"Resources",subtitle:"Rooms, machines and equipment your services need",search:{value:n,onChange:d,placeholder:"Search resources…"},actions:a==="groups"?e.jsxs(_,{onClick:u,children:[e.jsx(T,{size:16}),"Add group"]}):a==="resources"?e.jsxs(_,{onClick:x,children:[e.jsx(T,{size:16}),"Add resource"]}):void 0}),e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-6 overflow-hidden px-4 py-4 md:px-6",children:[e.jsx(W,{value:a,onValueChange:b,children:e.jsx(F,{children:I.map(l
2=>e.jsx(K,{value:l.value,children:l.label},l.value))})}),e.jsx("div",{className:"no-scrollbar flex min-h-0 flex-1 flex-col overflow-y-auto pb-24 md:pb-10",children:e.jsxs(s.Suspense,{fallback:null,children:[a==="resources"&&e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx(S,{children:"A service can require a resource as well as a person. When it does, a time is only offered while both are free."}),e.jsx(A,{searchText:n,onCountChange:g,onCreate:C,onEdit:h})]}),a==="groups"&&e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx(S,{children:"Group interchangeable resources so a service can ask for any treatment room rather than naming one. The order inside a group decides which is taken first."}),e.jsx(L,{searchText:n,onCountChange:o})]}),a==="inactive"&&e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx(S,{children:"Resources and groups taken out of service. They keep their history and can be unarchived at any time."}),e.jsx(A,{showInactive:!0,hideWhenEmpty:!0,searchText:n,onEdit:h,onVisibleCountChange:R}),e.jsx(L,{showInactive:!0,hideWhenEmpty:!0,searchText:n,onVisibleCountChange:c}),m&&e.jsx(H,{title:"Nothing archived",description:"Resources and groups you take out of service will appear here."})]})]})})]}),e.jsx(s.Suspense,{fallback:null,children:p&&e.jsx(oe,{open:p,onOpenChange:v,resourceId:f,onSaved:i})})]})};export{Pe as default};

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.