Restructure navigation: move setup items to Settings with accordion menu

Move rarely-used setup items from main sidebar to Settings to keep
daily-use features prominent:

- Services → Settings > Business section
- Locations → Settings > Business section
- Site Builder → Settings > Branding section

Settings sidebar changes:
- Convert static sections to accordion (one open at a time)
- Auto-expand section based on current URL
- Preserve all permission checks for moved items

Add redirects from old URLs to new locations for backwards compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-23 22:18:02 -05:00
parent 3eb1c303e5
commit e4668f81c5
5 changed files with 341 additions and 207 deletions

View File

@@ -879,15 +879,10 @@ const AppContent: React.FC = () => {
)
}
/>
{/* Redirect old services path to new settings location */}
<Route
path="/dashboard/services"
element={
canAccess('can_access_services') ? (
<Services />
) : (
<Navigate to="/dashboard" />
)
}
element={<Navigate to="/dashboard/settings/services" replace />}
/>
<Route
path="/dashboard/resources"
@@ -919,15 +914,10 @@ const AppContent: React.FC = () => {
)
}
/>
{/* Redirect old locations path to new settings location */}
<Route
path="/dashboard/locations"
element={
canAccess('can_access_locations') ? (
<Locations />
) : (
<Navigate to="/dashboard" />
)
}
element={<Navigate to="/dashboard/settings/locations" replace />}
/>
<Route
path="/dashboard/my-availability"
@@ -975,15 +965,10 @@ const AppContent: React.FC = () => {
)
}
/>
{/* Redirect old site-editor path to new settings location */}
<Route
path="/dashboard/site-editor"
element={
canAccess('can_access_site_editor') ? (
<PageEditor />
) : (
<Navigate to="/dashboard" />
)
}
element={<Navigate to="/dashboard/settings/site-builder" replace />}
/>
<Route
path="/dashboard/email-template-editor/:emailType"
@@ -1025,6 +1010,10 @@ const AppContent: React.FC = () => {
<Route path="sms-calling" element={<CommunicationSettings />} />
<Route path="billing" element={<BillingSettings />} />
<Route path="quota" element={<QuotaSettings />} />
{/* Moved from main sidebar */}
<Route path="services" element={<Services />} />
<Route path="locations" element={<Locations />} />
<Route path="site-builder" element={<PageEditor />} />
</Route>
) : (
<Route path="/dashboard/settings/*" element={<Navigate to="/dashboard" />} />