PageSourceSearch

https://alwaysintune.netlify.app/assets/BlogPost-HbQXvBP8.js

js alwaysintune.netlify.app collected 2026-10-03 10:27:01 UTC 3,844 bytes, 1 lines download raw bytes

1import{c as b,_ as N,B as n}from"./index-CVuSjWCq.js";import{a,j as e}from"./query-vendor-BB0JUlq_.js";import{S as y}from"./SEO-wcQthF5D.js";import{f as w,d as _}from"./react-vendor-BIjsaQ6L.js";import{C as v}from"./calendar-BGqwoozq.js";import{U as k,E as P}from"./user-B99NGEGJ.js";import{M as B,r as E}from"./index-BPI0DfIe.js";import"./ui-vendor-CwH6wFZJ.js";const L=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],l=b("arrow-left",L);function $(){const{slug:r}=w(),o=_(),[t,c]=a.useState(null),[m,d]=a.useState(!0),[u,x]=a.useState(!1);a.useEffect(()=>{r&&p(r)},[r]);const p=async s=>{try{const{apiFetch:i}=await N(async()=>{const{apiFetch:j}=await import("./api-CyvozDRd.js");return{apiFetch:j}},[]),f=await i(`/api/blog/${s}`);c(f)}catch(i){console.error("Error loading blog post:",i),x(!0)}finally{d(!1)}},h=s=>new Date(s).toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"});if(m)return e.jsx("div",{className:"container mx-auto py-12 px-4",children:e.jsxs("div",{className:"max-w-3xl mx-auto text-center py-12",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary mx-auto"}),e.jsx("p",{className:"mt-4 text-muted-foreground",children:"Loading post..."})]})});if(u||!t)return e.jsx("div",{className:"container mx-auto py-12 px-4",children:e.jsxs("div",{className:"max-w-3xl mx-auto text-center py-12",children:[e.jsx("h1",{className:"text-3xl font-bold mb-4",children:"Post Not Found"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"The blog post you're looking for doesn't exist or has been removed."}),e.jsxs(n,{onClick:()=>o("/blog"),children:[e.jsx(l,{className:"mr-2 h-4 w-4"}),"Back to Blog"]})]})});const g={"@context":"https://schema.org","@type":"BlogPosting",headline:t.title,description:t.excerpt||t.meta_description,image:t.featured_image,datePublished:t.published_at,author:{"@type":"Person",name:t.author_name},publisher:{"@type":"Organization",name:"InTune Music",logo:{"@type":"ImageObject",url:"https://intunemusic.co.uk/logo.png"}},mainEntityOfPage:{"@type":"WebPage","@id":`https://intunemusic.co.uk/blog/${t.slug}`}};return e.jsxs(e.Fragment,{children:[e.jsx(y,{title:t.meta_title||`${t.title} | InTune Music Blog`,description:t.meta_description||t.excerpt,keywords:t.meta_keywords||"music education, InTune Music, West Lothian",type:"article",image:t.featured_image,url:`/blog/${t.slug}`,article:{publishedTime:t.published_at,author:t.author_name,tags:t.meta_keywords?.split(",").map(s=>s.trim())||[]},structuredData:g}),e.jsx("article",{className:"container mx-auto py-12 px-4",children:e.jsxs("div",{className:"max-w-3xl mx-auto",children:[e.jsxs(n,{variant:"ghost",onClick:()=>o("/blog"),className:"mb-6",children:[e.jsx(l,{className:"mr-2 h-4 w-4"}),"Back to Blog"]}),t.featured_image&&e.jsx("img",{src:t.featured_image,alt:t.title,className:"w-full h-[400px] object-cover rounded-lg mb-8"}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-4",children:t.title}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm text-muted-foreground mb-8 pb-8 border-b",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(v,{className:"h-4 w-4"}),e.jsx("span",{children:h(t.published_at)})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{className:"h-4 w-4"}),e.jsx("span",{children:t.author_name})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(P,{className:"h-4 w-4"}),e.jsxs("span",{children:[t.views," views"]})]})]}),e.jsx("div",{className:"prose prose-lg max-w-none dark:prose-invert",children:e.jsx(B,{remarkPlugins:[E],children:t.content})}),e.jsx("div",{className:"mt-12 pt-8 border-t",children:e.jsxs(n,{onClick:()=>o("/blog"),children:[e.jsx(l,{className:"mr-2 h-4 w-4"}),"Back to Blog"]})})]})})]})}export{$ 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.