Creator Studio
{title &&{title}
} {subtitle &&{subtitle}
}import React, { useEffect, useState } from 'react' import { Link, usePage } from '@inertiajs/react' import { studioModule, studioSurface, trackStudioEvent } from '../utils/studioEvents' const navGroups = [ { label: 'Creator Studio', items: [ { label: 'Overview', href: '/studio', icon: 'fa-solid fa-chart-line' }, { label: 'Search', href: '/studio/search', icon: 'fa-solid fa-magnifying-glass' }, ], }, { label: 'Create', items: [ { label: 'New Artwork', href: '/upload', icon: 'fa-solid fa-cloud-arrow-up' }, { label: 'New Card', href: '/studio/cards/create', icon: 'fa-solid fa-id-card' }, { label: 'New Story', href: '/creator/stories/create', icon: 'fa-solid fa-feather-pointed' }, { label: 'New Collection', href: '/settings/collections/create', icon: 'fa-solid fa-layer-group' }, ], }, { label: 'Content', items: [ { label: 'All Content', href: '/studio/content', icon: 'fa-solid fa-table-cells-large' }, { label: 'Artworks', href: '/studio/artworks', icon: 'fa-solid fa-images' }, { label: 'Cards', href: '/studio/cards', icon: 'fa-solid fa-id-card' }, { label: 'Collections', href: '/studio/collections', icon: 'fa-solid fa-layer-group' }, { label: 'Stories', href: '/studio/stories', icon: 'fa-solid fa-feather-pointed' }, ], }, { label: 'Library', items: [ { label: 'Drafts', href: '/studio/drafts', icon: 'fa-solid fa-file-pen' }, { label: 'Scheduled', href: '/studio/scheduled', icon: 'fa-solid fa-calendar-days' }, { label: 'Calendar', href: '/studio/calendar', icon: 'fa-solid fa-calendar-range' }, { label: 'Archived', href: '/studio/archived', icon: 'fa-solid fa-box-archive' }, { label: 'Assets', href: '/studio/assets', icon: 'fa-solid fa-photo-film' }, ], }, { label: 'Engagement', items: [ { label: 'Inbox', href: '/studio/inbox', icon: 'fa-solid fa-inbox' }, { label: 'Activity', href: '/studio/activity', icon: 'fa-solid fa-bell' }, { label: 'Comments', href: '/studio/comments', icon: 'fa-solid fa-comments' }, { label: 'Followers', href: '/studio/followers', icon: 'fa-solid fa-user-group' }, { label: 'Challenges', href: '/studio/challenges', icon: 'fa-solid fa-trophy' }, ], }, { label: 'Insights', items: [ { label: 'Analytics', href: '/studio/analytics', icon: 'fa-solid fa-chart-pie' }, { label: 'Growth', href: '/studio/growth', icon: 'fa-solid fa-chart-line' }, ], }, { label: 'Creator', items: [ { label: 'Profile', href: '/studio/profile', icon: 'fa-solid fa-id-card' }, { label: 'Featured Content', href: '/studio/featured', icon: 'fa-solid fa-wand-magic-sparkles' }, { label: 'Preferences', href: '/studio/preferences', icon: 'fa-solid fa-sliders' }, { label: 'Studio Settings', href: '/studio/settings', icon: 'fa-solid fa-gear' }, ], }, ] const quickCreateItems = [ { label: 'Artwork', href: '/upload', icon: 'fa-solid fa-cloud-arrow-up' }, { label: 'Card', href: '/studio/cards/create', icon: 'fa-solid fa-id-card' }, { label: 'Story', href: '/creator/stories/create', icon: 'fa-solid fa-feather-pointed' }, { label: 'Collection', href: '/settings/collections/create', icon: 'fa-solid fa-layer-group' }, ] function NavLink({ item, active }) { return ( {item.label} ) } export default function StudioLayout({ children, title, subtitle, actions }) { const { url } = usePage() const [mobileOpen, setMobileOpen] = useState(false) const [createOpen, setCreateOpen] = useState(false) const pathname = url.split('?')[0] useEffect(() => { const moduleKey = studioModule(pathname) const surface = studioSurface(pathname) trackStudioEvent('studio_opened', { surface, module: moduleKey, }) trackStudioEvent('studio_module_opened', { surface, module: moduleKey, }) }, [pathname]) const isActive = (href) => { if (href === '/studio') return pathname === '/studio' return pathname.startsWith(href) } const handleQuickCreateClick = (item) => { trackStudioEvent('studio_quick_create_used', { surface: studioSurface(pathname), module: item.label.toLowerCase(), meta: { href: item.href, label: item.label, }, }) } return (
Creator Studio
Creator Studio
{title &&{subtitle}
}Skinbase Nova
Create, manage, and grow from one modular workspace built for every creator surface.
Quick create