Nicholai 1378bff909 updated the following components to use the API instead of hardcoded data:
### 1. __artists-grid.tsx__ (Main Artist Browsing)

- Uses  hook from
- Fetches from  endpoint
- Includes loading states, error handling, and filtering
- __Impact:__ Primary artist browsing experience now fully API-driven

### 2. __artist-portfolio.tsx__ (Individual Artist Pages)

- Uses  hook
- Fetches from  endpoint
- Fixed all TypeScript errors (changed image ID from number to string)
- Added loading/error states
- __Impact:__ Artist detail pages now fully API-driven

### 3. __booking-form.tsx__ (Artist Selection Dropdown)

- Uses  hook for artist selection
- Updated to use API data structure ( array, , etc.)
- Added loading state for dropdown
- __Impact:__ Booking flow now uses real artist data

## ⚠️ REMAINING (Decorative/Marketing Components)

Two complex components still use hardcoded :

### 4. __artists-section.tsx__ (Homepage Hero - 348 lines)

- Homepage marketing section with complex parallax scrolling
- Uses hardcoded artist data for visual cards
- __Non-blocking:__ This is a decorative homepage element

### 5. __artists-page-section.tsx__ (Artists Page Section - 413 lines)

- Full-page artists showcase with parallax effects
- Uses hardcoded artist data for visual layout
- __Non-blocking:__ Alternative to artists-grid.tsx (which IS using API)

##
2025-10-06 04:44:08 -06:00

1 line
5.8 KiB
JavaScript

"use strict";(()=>{var e={};e.id=6668,e.ids=[6668],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},64888:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>T,patchFetch:()=>y,requestAsyncStorage:()=>h,routeModule:()=>f,serverHooks:()=>k,staticGenerationAsyncStorage:()=>x});var o={};s.r(o),s.d(o,{GET:()=>l,POST:()=>g,PUT:()=>m,dynamic:()=>p});var i=s(73278),n=s(45002),r=s(54877),a=s(71309),u=s(33897),d=s(74725),c=s(69362);let p="force-dynamic";async function l(e){try{let e={id:"settings-1",studioName:"United Tattoo Studio",description:"Premier tattoo studio specializing in custom artwork and professional tattooing services.",address:"123 Main Street, Denver, CO 80202",phone:"+1 (555) 123-4567",email:"info@unitedtattoo.com",socialMedia:{instagram:"https://instagram.com/unitedtattoo",facebook:"https://facebook.com/unitedtattoo",twitter:"https://twitter.com/unitedtattoo",tiktok:"https://tiktok.com/@unitedtattoo"},businessHours:[{dayOfWeek:1,openTime:"10:00",closeTime:"20:00",isClosed:!1},{dayOfWeek:2,openTime:"10:00",closeTime:"20:00",isClosed:!1},{dayOfWeek:3,openTime:"10:00",closeTime:"20:00",isClosed:!1},{dayOfWeek:4,openTime:"10:00",closeTime:"20:00",isClosed:!1},{dayOfWeek:5,openTime:"10:00",closeTime:"22:00",isClosed:!1},{dayOfWeek:6,openTime:"10:00",closeTime:"22:00",isClosed:!1},{dayOfWeek:0,openTime:"12:00",closeTime:"18:00",isClosed:!1}],heroImage:"/united-studio-main.jpg",logoUrl:"/united-logo-website.jpg",emailNotifications:!0,smsNotifications:!1,bookingEnabled:!0,onlinePayments:!0,requireDeposit:!0,depositAmount:100,cancellationPolicy:"Cancellations must be made at least 24 hours in advance. Deposits are non-refundable.",theme:"system",language:"en",timezone:"America/Denver",updatedAt:new Date};return a.NextResponse.json(e)}catch(e){return console.error("Error fetching site settings:",e),a.NextResponse.json({error:"Failed to fetch site settings"},{status:500})}}async function m(e){try{await (0,u.mk)(d.i.SHOP_ADMIN);let t=await e.json(),s=c.IF.parse(t),o={id:"settings-1",studioName:s.studioName||"United Tattoo Studio",description:s.description||"Premier tattoo studio specializing in custom artwork and professional tattooing services.",address:s.address||"123 Main Street, Denver, CO 80202",phone:s.phone||"+1 (555) 123-4567",email:s.email||"info@unitedtattoo.com",socialMedia:s.socialMedia||{instagram:"https://instagram.com/unitedtattoo",facebook:"https://facebook.com/unitedtattoo",twitter:"https://twitter.com/unitedtattoo",tiktok:"https://tiktok.com/@unitedtattoo"},businessHours:s.businessHours||[{dayOfWeek:1,openTime:"10:00",closeTime:"20:00",isClosed:!1},{dayOfWeek:2,openTime:"10:00",closeTime:"20:00",isClosed:!1},{dayOfWeek:3,openTime:"10:00",closeTime:"20:00",isClosed:!1},{dayOfWeek:4,openTime:"10:00",closeTime:"20:00",isClosed:!1},{dayOfWeek:5,openTime:"10:00",closeTime:"22:00",isClosed:!1},{dayOfWeek:6,openTime:"10:00",closeTime:"22:00",isClosed:!1},{dayOfWeek:0,openTime:"12:00",closeTime:"18:00",isClosed:!1}],heroImage:s.heroImage||"/united-studio-main.jpg",logoUrl:s.logoUrl||"/united-logo-website.jpg",updatedAt:new Date};return a.NextResponse.json(o)}catch(e){if(console.error("Error updating site settings:",e),e instanceof Error){if(e.message.includes("Authentication required"))return a.NextResponse.json({error:"Authentication required"},{status:401});if(e.message.includes("Insufficient permissions"))return a.NextResponse.json({error:"Insufficient permissions"},{status:403})}return a.NextResponse.json({error:"Failed to update site settings"},{status:500})}}async function g(e){try{await (0,u.mk)(d.i.SUPER_ADMIN);let t=await e.json(),s=c.IF.parse(t),o={id:`settings-${Date.now()}`,studioName:s.studioName||"United Tattoo Studio",description:s.description||"Premier tattoo studio specializing in custom artwork and professional tattooing services.",address:s.address||"123 Main Street, Denver, CO 80202",phone:s.phone||"+1 (555) 123-4567",email:s.email||"info@unitedtattoo.com",socialMedia:s.socialMedia||{},businessHours:s.businessHours||[],heroImage:s.heroImage,logoUrl:s.logoUrl,updatedAt:new Date};return a.NextResponse.json(o,{status:201})}catch(e){if(console.error("Error creating site settings:",e),e instanceof Error){if(e.message.includes("Authentication required"))return a.NextResponse.json({error:"Authentication required"},{status:401});if(e.message.includes("Insufficient permissions"))return a.NextResponse.json({error:"Insufficient permissions"},{status:403})}return a.NextResponse.json({error:"Failed to create site settings"},{status:500})}}let f=new i.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:"app/api/settings/route"},resolvedPagePath:"/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo/app/api/settings/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:h,staticGenerationAsyncStorage:x,serverHooks:k}=f,T="/api/settings/route";function y(){return(0,r.patchFetch)({serverHooks:k,staticGenerationAsyncStorage:x})}}};var t=require("../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),o=t.X(0,[9379,3670,4833,2064],()=>s(64888));module.exports=o})();