feat: Restructure Channel Configuration as separate section

 New Structure:
Notifications
├── Staff Notifications (toggle only)
├── Customer Notifications (toggle only)
├── Channel Configuration (new section)
│   ├── Email Configuration
│   │   ├── Template Settings (colors, logo, branding)
│   │   └── Connection Settings (wp_mail/SMTP)
│   ├── Push Configuration
│   │   ├── Template Settings (icon, badge, sound)
│   │   └── Connection Settings (browser-native/FCM)
│   └── Future: WhatsApp, Telegram, SMS (addons)
└── Activity Log (coming soon)

 Separation of Concerns:
- Staff/Customer pages: "What to send" (enable/disable)
- Channel Config: "How to send" (global settings)

 Changes:
- Created ChannelConfiguration.tsx (main page listing all channels)
- Created EmailConfiguration.tsx (template + connection tabs)
- Created PushConfiguration.tsx (template + connection tabs)
- Updated Staff/Customer Channels tabs to toggle-only
- Removed Configure buttons from Staff/Customer pages
- Added links to Channel Configuration
- Updated main Notifications page with new card
- Added routing for all new pages

 Benefits:
- Clear separation: enable vs configure
- Global settings apply to both staff & customer
- Scalable for addon channels
- No confusion about where to configure
- Consistent with app patterns

🎯 Ready for: WhatsApp, Telegram, SMS addons
This commit is contained in:
dwindown
2025-11-15 21:05:57 +07:00
parent a8e8d42619
commit 778afeef9a
7 changed files with 399 additions and 41 deletions

View File

@@ -203,6 +203,9 @@ import SettingsLocalPickup from '@/routes/Settings/LocalPickup';
import SettingsNotifications from '@/routes/Settings/Notifications';
import StaffNotifications from '@/routes/Settings/Notifications/Staff';
import CustomerNotifications from '@/routes/Settings/Notifications/Customer';
import ChannelConfiguration from '@/routes/Settings/Notifications/ChannelConfiguration';
import EmailConfiguration from '@/routes/Settings/Notifications/EmailConfiguration';
import PushConfiguration from '@/routes/Settings/Notifications/PushConfiguration';
import EmailCustomization from '@/routes/Settings/Notifications/EmailCustomization';
import EditTemplate from '@/routes/Settings/Notifications/EditTemplate';
import SettingsDeveloper from '@/routes/Settings/Developer';
@@ -494,6 +497,9 @@ function AppRoutes() {
<Route path="/settings/notifications" element={<SettingsNotifications />} />
<Route path="/settings/notifications/staff" element={<StaffNotifications />} />
<Route path="/settings/notifications/customer" element={<CustomerNotifications />} />
<Route path="/settings/notifications/channels" element={<ChannelConfiguration />} />
<Route path="/settings/notifications/channels/email" element={<EmailConfiguration />} />
<Route path="/settings/notifications/channels/push" element={<PushConfiguration />} />
<Route path="/settings/notifications/email-customization" element={<EmailCustomization />} />
<Route path="/settings/notifications/edit-template" element={<EditTemplate />} />
<Route path="/settings/brand" element={<SettingsIndex />} />