PageSourceSearch

https://frimurer.no/assets/ArtRoomQRSheet-C_mq8BpX.js

js frimurer.no collected 2026-10-02 12:14:25 UTC 2,789 bytes, 6 lines download raw bytes

1import{r as t,j as e}from"./vendor-react-GnwsTJfO.js";import{a4 as m,f as c,B as x}from"./index-Bk3sb3g_.js";import{u as p}from"./useAdminAuth-B8BfgGDM.js";import{e as n}from"./AdminNavigation-DVMee0wC.js";import{Q as h}from"./index-CDYJtqBk.js";import"./vendor-cjs-BcELrC9x.js";import"./vendor-supabase-BWPZKnGU.js";import"./vendor-ui-C1xCQL2z.js";import"./vendor-utils-B2rm_Apj.js";import"./vendor-query-Dp4tHR6-.js";import"./MasonicCross-CB_Vslf8.js";import"./image-CJtwgLmH.js";import"./users-Cq75-41X.js";/**
2 * @license lucide-react v0.462.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const u=m("Printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]),f="https://frimurer.lovable.app",E=()=>{const{loading:r}=p({requiredRoles:["webmaster","editor_dnfo"]}),[a,o]=t.useState([]),[d,l]=t.useState(!0);return t.useEffect(()=>{r||c.from("art_rooms").select("id, name, slug, access_hash, floor").order("floor").order("name").then(({data:s})=>{s&&o(s),l(!1)})},[r]),r||d?e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(n,{}),e.jsx("div",{className:"container mx-auto px-4 py-8",children:e.jsx("p",{className:"text-muted-foreground",children:"Laster..."})})]}):e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx("div",{className:"print:hidden",children:e.jsx(n,{})}),e.jsxs("div",{className:"container mx-auto px-4 py-8 max-w-4xl",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6 print:hidden",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"QR-koder for alle rom"}),e.jsx("p",{className:"text-muted-foreground",children:"Skriv ut eller bruk på iPad for befaring"})]}),e.jsxs(x,{onClick:()=>window.print(),children:[e.jsx(u,{className:"h-4 w-4 mr-2"}),"Skriv ut"]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-6 print:gap-4",children:a.map(s=>{const i=`${f}/kunst/r/${s.access_hash}`;return e.jsxs("div",{className:"border rounded-lg p-4 flex items-center gap-4 print:break-inside-avoid bg-white",children:[e.jsx(h,{value:i,size:120,level:"M"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"font-semibold text-lg text-foreground",children:s.name}),s.floor&&e.jsx("p",{className:"text-sm text-muted-foreground",children:s.floor}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:i})]})]},s.id)})}),a.length===0&&e.jsx("p",{className:"text-center text-muted-foreground py-12",children:"Ingen rom opprettet ennå."})]})]})};export{E 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.