2026-03-19 13:58:42 +01:00
import { A , useNavigate } from '@solidjs/router' ;
2026-03-19 21:05:06 +01:00
import { createMemo , createSignal } from 'solid-js' ;
2026-03-16 23:20:54 +01:00
import AdminShell from '~/components/AdminShell' ;
2026-03-19 15:29:22 +01:00
import OnboardingManagementTabs from '~/components/admin/OnboardingManagementTabs' ;
2026-03-19 21:05:06 +01:00
import OnboardingFlowBuilder , {
buildStepsFromFields ,
createDefaultFields ,
type OnboardingField ,
} from '~/components/admin/OnboardingFlowBuilder' ;
2026-03-16 23:37:26 +01:00
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
const API = '/api/gateway' ;
2026-03-19 21:05:06 +01:00
export default function NewOnboardingSchemaPage() {
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
const navigate = useNavigate ( ) ;
const [ title , setTitle ] = createSignal ( '' ) ;
const [ roleKey , setRoleKey ] = createSignal ( 'company' ) ;
const [ description , setDescription ] = createSignal ( '' ) ;
2026-03-19 21:05:06 +01:00
const [ finalSubmissionMessage , setFinalSubmissionMessage ] = createSignal ( 'Your onboarding has been submitted for review. We will notify you once it is approved.' ) ;
const [ stepCount , setStepCount ] = createSignal ( 2 ) ;
const [ selectedFields , setSelectedFields ] = createSignal < OnboardingField [ ] > ( createDefaultFields ( 'company' ) ) ;
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
const [ saving , setSaving ] = createSignal ( false ) ;
const [ error , setError ] = createSignal ( '' ) ;
2026-03-16 23:20:54 +01:00
2026-03-19 21:05:06 +01:00
const payload = createMemo ( ( ) = > ( {
title : title ( ) ,
roleKey : roleKey ( ) ,
description : description ( ) ,
finalSubmissionMessage : finalSubmissionMessage ( ) ,
steps : buildStepsFromFields ( selectedFields ( ) , stepCount ( ) ) ,
} ) ) ;
const handleChange = ( next : {
title? : string ;
roleKey? : string ;
description? : string ;
finalSubmissionMessage? : string ;
stepCount? : number ;
selectedFields? : OnboardingField [ ] ;
} ) = > {
if ( typeof next . title === 'string' ) setTitle ( next . title ) ;
if ( typeof next . description === 'string' ) setDescription ( next . description ) ;
if ( typeof next . finalSubmissionMessage === 'string' ) setFinalSubmissionMessage ( next . finalSubmissionMessage ) ;
if ( typeof next . stepCount === 'number' ) setStepCount ( next . stepCount ) ;
if ( Array . isArray ( next . selectedFields ) ) setSelectedFields ( next . selectedFields ) ;
if ( typeof next . roleKey === 'string' ) {
setRoleKey ( next . roleKey ) ;
setSelectedFields ( createDefaultFields ( next . roleKey ) ) ;
}
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
} ;
2026-03-19 21:05:06 +01:00
const handleSubmit = async ( ) = > {
2026-03-17 20:48:27 +01:00
try {
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
setSaving ( true ) ;
setError ( '' ) ;
2026-03-19 21:05:06 +01:00
const response = await fetch ( ` ${ API } /api/admin/onboarding-config ` , {
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' } ,
2026-03-19 21:05:06 +01:00
body : JSON.stringify ( { schema_json : payload ( ) , is_active : false } ) ,
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
} ) ;
2026-03-19 21:05:06 +01:00
const body = await response . json ( ) ;
if ( ! response . ok ) throw new Error ( body ? . message || 'Failed to create onboarding flow' ) ;
navigate ( ` /admin/onboarding-schemas/ ${ body . id || body . schema ? . id } ` ) ;
} catch ( nextError : any ) {
setError ( nextError ? . message || 'Failed to create onboarding flow' ) ;
2026-03-17 20:48:27 +01:00
} finally {
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
setSaving ( false ) ;
2026-03-17 20:48:27 +01:00
}
2026-03-16 23:20:54 +01:00
} ;
return (
< AdminShell >
2026-03-19 15:29:22 +01:00
< OnboardingManagementTabs / >
2026-03-19 13:58:42 +01:00
< div class = "page-hero-card page-actions" >
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
< div >
< h1 class = "page-title" > Create Onboarding Flow < / h1 >
2026-03-19 21:05:06 +01:00
< p class = "page-subtitle" > Build one onboarding flow at a time . Start with role , questions , and final submission message . < / p >
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
< / div >
2026-03-19 15:29:22 +01:00
< A class = "btn" href = "/admin/onboarding-schemas" > Back to Onboarding Management < / A >
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
< / div >
2026-03-19 21:05:06 +01:00
< div class = "field-grid-2" style = "margin-bottom:16px" >
< div class = "card" > < p class = "kv-label" > Role < / p > < p class = "kv-value" > { roleKey ( ) . replace ( /_/g , ' ' ) . toUpperCase ( ) } < / p > < / div >
< div class = "card" > < p class = "kv-label" > Steps < / p > < p class = "kv-value" > { stepCount ( ) } < / p > < / div >
< div class = "card" style = "grid-column:1 / -1" > < p class = "kv-label" > Questions < / p > < p class = "kv-value" > { selectedFields ( ) . length } < / p > < / div >
feat(admin): build complete admin panel with UI parity and search/filter
- Implement all admin management pages (employees, users, jobs, leads, orders, companies, customers, candidates, approval, invoices, reviews, support, KB, pricing, coupons, credits, discounts, tax, reports, ledger)
- Implement 9 professional vertical pages (developers, designers, tutors, video editors, photographers, makeup artists, graphic designers, social media managers, fitness trainers)
- Implement internal/external dashboard and role management with builder UI
- Fix tab styling: replace inline border-bottom styles with admin-tab CSS class across 8+ pages
- Add search/filter functionality to invoice and review pages
- Add toggle status (activate/deactivate) to employees page with PATCH /api/admin/employees/{id}
- Align UI styling with NextJS admin panel for visual parity
- Add stat cards to approval page showing counts by status
- Implement graceful empty states for all list views
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-19 13:04:10 +01:00
< / div >
2026-03-19 21:05:06 +01:00
< OnboardingFlowBuilder
title = { title ( ) }
roleKey = { roleKey ( ) }
description = { description ( ) }
finalSubmissionMessage = { finalSubmissionMessage ( ) }
stepCount = { stepCount ( ) }
selectedFields = { selectedFields ( ) }
saving = { saving ( ) }
error = { error ( ) }
primaryLabel = "Create Onboarding Flow"
onChange = { handleChange }
onSubmit = { handleSubmit }
/ >
2026-03-16 23:20:54 +01:00
< / AdminShell >
) ;
}