diff --git a/.claude/launch.json b/.claude/launch.json index 83c3c24..c8b3fdc 100644 --- a/.claude/launch.json +++ b/.claude/launch.json @@ -3,9 +3,9 @@ "configurations": [ { "name": "admin-solid", - "runtimeExecutable": "/Users/ashwin/.bun/bin/bun", - "runtimeArgs": ["run", "dev"], - "port": 3000 + "runtimeExecutable": "/usr/local/bin/node", + "runtimeArgs": ["/Users/ashwin/workspace/nxtgauge-admin-solid/node_modules/.bin/vinxi", "dev"], + "port": 3001 } ] } diff --git a/.claude/start-dev.sh b/.claude/start-dev.sh new file mode 100755 index 0000000..0abcd64 --- /dev/null +++ b/.claude/start-dev.sh @@ -0,0 +1,4 @@ +#!/bin/bash +export PATH="/usr/local/bin:$PATH" +cd /Users/ashwin/workspace/nxtgauge-admin-solid +npm run dev diff --git a/src/components/AdminShell.tsx b/src/components/AdminShell.tsx index 6a997da..4d76f9a 100644 --- a/src/components/AdminShell.tsx +++ b/src/components/AdminShell.tsx @@ -41,6 +41,7 @@ const PAGE_TITLES: Array<{ prefix: string; label: string; exact?: boolean }> = [ { prefix: '/admin/video-editors', label: 'Video Editor Management' }, { prefix: '/admin/fitness-trainers', label: 'Fitness Trainer Management' }, { prefix: '/admin/catering-services', label: 'Catering Services Management' }, + { prefix: '/admin/ugc-content-creators', label: 'UGC Content Creator Management' }, { prefix: '/admin/graphic-designers', label: 'Graphic Designer Management' }, { prefix: '/admin/social-media-managers', label: 'Social Media Manager Management' }, { prefix: '/admin/jobs', label: 'Jobs Management' }, @@ -93,6 +94,7 @@ const ROUTE_MODULE_KEYS: Array<{ prefix: string; keys: string[] }> = [ { prefix: '/admin/video-editors', keys: ['VIDEO_EDITOR_MANAGEMENT', 'VIDEO_EDITORS'] }, { prefix: '/admin/fitness-trainers', keys: ['FITNESS_TRAINER_MANAGEMENT', 'FITNESS_TRAINERS'] }, { prefix: '/admin/catering-services', keys: ['CATERING_SERVICES_MANAGEMENT', 'CATERING_SERVICES'] }, + { prefix: '/admin/ugc-content-creators', keys: ['UGC_CONTENT_CREATOR_MANAGEMENT', 'UGC_CONTENT_CREATOR'] }, { prefix: '/admin/graphic-designers', keys: ['GRAPHIC_DESIGNER_MANAGEMENT', 'GRAPHIC_DESIGNERS'] }, { prefix: '/admin/social-media-managers', keys: ['SOCIAL_MEDIA_MANAGEMENT', 'SOCIAL_MEDIA_MANAGER_MANAGEMENT', 'SOCIAL_MEDIA_MANAGERS'] }, { prefix: '/admin/jobs', keys: ['JOBS_MANAGEMENT', 'JOBS'] }, diff --git a/src/components/admin/DashboardDesignPreview.tsx b/src/components/admin/DashboardDesignPreview.tsx index cead7b2..e8a981c 100644 --- a/src/components/admin/DashboardDesignPreview.tsx +++ b/src/components/admin/DashboardDesignPreview.tsx @@ -539,6 +539,8 @@ function portfolioMediaConfig(roleKey: string): { || normalized === 'GRAPHIC_DESIGNER' || normalized === 'SOCIAL_MEDIA_MANAGER' || normalized === 'CATERING_SERVICES' + || normalized === 'DEVELOPER' + || normalized === 'FITNESS_TRAINER' ) { return { mode: 'visual', @@ -576,6 +578,10 @@ function customerViewFor(sidebar: string, roleKey: string): CustomerView { return { title: 'Received Professional Responses', subtitle: 'Review and manage professional applications for active requirements.', tabs: ['all responses', 'new', 'shortlisted', 'rejected'] }; } if (key === 'shortlisted responses') return { title: 'Shortlisted Responses', subtitle: 'Focus on high-intent responses and convert them to confirmed engagements.', tabs: ['all shortlisted', 'interview scheduled', 'finalized'] }; + if (key === 'applications') return { title: 'Applications', subtitle: 'Review all candidate applications received for your active job postings.', tabs: ['all applications', 'shortlisted', 'under review', 'rejected'], cta: 'View Job Postings' }; + if (key === 'shortlisted candidates') return { title: 'Shortlisted Candidates', subtitle: 'Manage candidates you have shortlisted across all job postings.', tabs: ['shortlisted', 'interview scheduled', 'offer extended'] }; + if (key === 'my applications') return { title: 'My Applications', subtitle: 'Track the status of all jobs you have applied to.', tabs: ['all', 'under review', 'shortlisted', 'rejected'], cta: 'Browse Jobs' }; + if (key === 'saved jobs') return { title: 'Saved Jobs', subtitle: 'Jobs you have bookmarked. Apply before they expire.', tabs: ['saved', 'expiring soon'], cta: 'Browse Jobs' }; if (key.includes('profile')) { const spec = profileSpecForRole(roleKey); return { title: spec.title, subtitle: spec.subtitle, tabs: spec.tabs, cta: 'Save Changes' }; diff --git a/src/routes/admin/external-dashboard-management/index.tsx b/src/routes/admin/external-dashboard-management/index.tsx index bfbe0ef..ca2439d 100644 --- a/src/routes/admin/external-dashboard-management/index.tsx +++ b/src/routes/admin/external-dashboard-management/index.tsx @@ -74,6 +74,7 @@ const ROLE_BASED_SIDEBAR: Record<'PROFESSIONAL' | 'COMPANY' | 'JOB_SEEKER' | 'CU 'Explore Nxtgauge', 'Verification', 'Help Center', + 'Settings', 'Switch Services', 'Logout', ],