feat: add navigation for admin portal
continuous-integration/drone/push Build is passing Details

Add 'Venue Admin' menu item in hamburger navigation:
- Links to /admin/clubs for facility management
- Purple accent to distinguish from player features
- Positioned after assessment, before language selector

Add tabs to club detail page:
- Plans tab (purple accent)
- Members tab (purple accent)
- Settings tab (purple accent)
- All tabs link to new admin portal pages

Navigation is now complete for accessing all facility management features.
master
Guillermo Pages 4 weeks ago
parent 5dd283525b
commit 95759fd649

@ -196,6 +196,24 @@ export default function ClubDetailTabs({ clubId }: ClubDetailTabsProps) {
> >
Slot Definitions Slot Definitions
</Link> </Link>
<Link
href={`/${locale}/admin/clubs/${clubId}/plans`}
className="px-6 py-3 font-semibold text-purple-600 hover:text-purple-700 hover:border-purple-300 transition-colors border-b-2 border-transparent"
>
Plans
</Link>
<Link
href={`/${locale}/admin/clubs/${clubId}/members`}
className="px-6 py-3 font-semibold text-purple-600 hover:text-purple-700 hover:border-purple-300 transition-colors border-b-2 border-transparent"
>
Members
</Link>
<Link
href={`/${locale}/admin/clubs/${clubId}/settings`}
className="px-6 py-3 font-semibold text-purple-600 hover:text-purple-700 hover:border-purple-300 transition-colors border-b-2 border-transparent"
>
Settings
</Link>
</div> </div>
</div> </div>

@ -409,6 +409,27 @@ export default function Navigation({ pageTitle }: NavigationProps) {
<span className="font-medium text-slate-900">{t("What's my level?")}</span> <span className="font-medium text-slate-900">{t("What's my level?")}</span>
</Link> </Link>
</motion.div> </motion.div>
{/* Admin Section */}
<div className="my-4 border-t border-slate-100"></div>
<motion.div
custom={4}
variants={menuItemVariants}
initial="closed"
animate="open"
>
<Link
href={localizedLink("/admin/clubs")}
onClick={closeMenu}
className="flex items-center space-x-3 p-4 rounded-xl hover:bg-slate-50 transition-colors duration-200 group"
>
<div className="p-2 rounded-lg bg-purple-100 group-hover:bg-purple-200 transition-colors duration-200">
<Settings className="w-5 h-5 text-purple-700" />
</div>
<span className="font-medium text-slate-900">{t('Venue Admin')}</span>
</Link>
</motion.div>
</> </>
)} )}
@ -416,7 +437,7 @@ export default function Navigation({ pageTitle }: NavigationProps) {
<div className="my-4 border-t border-slate-100"></div> <div className="my-4 border-t border-slate-100"></div>
<motion.div <motion.div
custom={isLoggedIn ? 4 : 2} custom={isLoggedIn ? 5 : 2}
variants={menuItemVariants} variants={menuItemVariants}
initial="closed" initial="closed"
animate="open" animate="open"
@ -476,7 +497,7 @@ export default function Navigation({ pageTitle }: NavigationProps) {
{isLoggedIn && ( {isLoggedIn && (
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<motion.div <motion.div
custom={5} custom={6}
variants={menuItemVariants} variants={menuItemVariants}
initial="closed" initial="closed"
animate="open" animate="open"
@ -494,7 +515,7 @@ export default function Navigation({ pageTitle }: NavigationProps) {
</Link> </Link>
</motion.div> </motion.div>
<motion.div <motion.div
custom={6} custom={7}
variants={menuItemVariants} variants={menuItemVariants}
initial="closed" initial="closed"
animate="open" animate="open"

Loading…
Cancel
Save