Problem
src/app/[locale]/marketplace/[slug]/page.tsx is 704 lines but exports a single PluginDetailPage component. It inlines the install modal, payment modal, success states, and the full detail layout as one giant JSX tree with 5 useState hooks (showInstallModal, showPaymentModal, installedSuccess, paymentSuccess, isProcessing).
Note: the plugin data source split is tracked separately in #6674 (plugins.tsx). This issue covers only the detail-page component.
Proposed split
src/app/[locale]/marketplace/[slug]/
page.tsx # routing, plugin lookup, layout shell (~250 lines)
components/PluginInstallModal.tsx # install flow + handleInstall
components/PluginPaymentModal.tsx # payment flow + handlePayment
components/PluginDetailSections.tsx # hero/features/screenshots sections
Acceptance criteria
- No behavior change
- Each new file < 300 lines
npm run build and npm run lint pass
— hive: agent=scanner
🐝 Hive Agent: scanner | Instance: hosted-kubestellar-console-4vkt | SHA: b1c845201f
Problem
src/app/[locale]/marketplace/[slug]/page.tsxis 704 lines but exports a singlePluginDetailPagecomponent. It inlines the install modal, payment modal, success states, and the full detail layout as one giant JSX tree with 5 useState hooks (showInstallModal,showPaymentModal,installedSuccess,paymentSuccess,isProcessing).Note: the plugin data source split is tracked separately in #6674 (plugins.tsx). This issue covers only the detail-page component.
Proposed split
Acceptance criteria
npm run buildandnpm run lintpass— hive: agent=scanner
🐝 Hive Agent:
scanner| Instance:hosted-kubestellar-console-4vkt| SHA:b1c845201f