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

44 lines
3.6 KiB
JavaScript

(()=>{"use strict";var e={},r={};function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={id:o,loaded:!1,exports:{}},d=!0;try{e[o].call(a.exports,a,a.exports,t),d=!1}finally{d&&delete r[o]}return a.loaded=!0,a.exports}t.m=e,t.amdO={},t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},(()=>{var e,r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;t.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);t.r(a);var d={};e=e||[null,r({}),r([]),r(r)];for(var l=2&n&&o;"object"==typeof l&&!~e.indexOf(l);l=r(l))Object.getOwnPropertyNames(l).forEach(e=>d[e]=()=>o[e]);return d.default=()=>o,t.d(a,d),a}})(),t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,o)=>(t.f[o](e,r),r),[])),t.u=e=>""+e+".js",t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.X=(e,r,o)=>{var n=r;o||(r=e,o=()=>t(t.s=n)),r.map(t.e,t);var a=o();return void 0===a?e:a},t.nc=void 0,(()=>{var e={6658:1},r=r=>{var o=r.modules,n=r.ids,a=r.runtime;for(var d in o)t.o(o,d)&&(t.m[d]=o[d]);a&&a(t);for(var l=0;l<n.length;l++)e[n[l]]=1};t.f.require=(o, _) => {
if (!e[o]) {
switch (o) {
case 1035: r(require("./chunks/1035.js")); break;
case 1181: r(require("./chunks/1181.js")); break;
case 1222: r(require("./chunks/1222.js")); break;
case 1488: r(require("./chunks/1488.js")); break;
case 1511: r(require("./chunks/1511.js")); break;
case 2064: r(require("./chunks/2064.js")); break;
case 2133: r(require("./chunks/2133.js")); break;
case 23: r(require("./chunks/23.js")); break;
case 2882: r(require("./chunks/2882.js")); break;
case 3664: r(require("./chunks/3664.js")); break;
case 3670: r(require("./chunks/3670.js")); break;
case 3744: r(require("./chunks/3744.js")); break;
case 3811: r(require("./chunks/3811.js")); break;
case 4012: r(require("./chunks/4012.js")); break;
case 4080: r(require("./chunks/4080.js")); break;
case 4106: r(require("./chunks/4106.js")); break;
case 4128: r(require("./chunks/4128.js")); break;
case 4298: r(require("./chunks/4298.js")); break;
case 4833: r(require("./chunks/4833.js")); break;
case 490: r(require("./chunks/490.js")); break;
case 4926: r(require("./chunks/4926.js")); break;
case 5160: r(require("./chunks/5160.js")); break;
case 5593: r(require("./chunks/5593.js")); break;
case 6082: r(require("./chunks/6082.js")); break;
case 6194: r(require("./chunks/6194.js")); break;
case 6609: r(require("./chunks/6609.js")); break;
case 6626: r(require("./chunks/6626.js")); break;
case 6694: r(require("./chunks/6694.js")); break;
case 6758: r(require("./chunks/6758.js")); break;
case 6887: r(require("./chunks/6887.js")); break;
case 6967: r(require("./chunks/6967.js")); break;
case 7542: r(require("./chunks/7542.js")); break;
case 817: r(require("./chunks/817.js")); break;
case 9161: r(require("./chunks/9161.js")); break;
case 9379: r(require("./chunks/9379.js")); break;
case 6658: e[o] = 1; break;
default: throw new Error(`Unknown chunk ${o}`);
}
}
}
,module.exports=t,t.C=r})()})();