import {Navigate, RouteObject, useRoutes} from 'react-router-dom';
import {AdminLayout} from './admin-layout';
import {UserDatatable} from './users/user-datatable';
import {AppearanceLayout} from './appearance/appearance-layout';
import {MenuList} from './appearance/sections/menus/menu-list';
import {MenuEditor} from './appearance/sections/menus/menu-editor';
import {MenuItemEditor} from './appearance/sections/menus/menu-item-editor';
import {GeneralSection} from './appearance/sections/general-section';
import {ThemeList} from './appearance/sections/themes/theme-list';
import {SeoSection} from './appearance/sections/seo/seo-section';
import {CustomCodeSection} from './appearance/sections/code/custom-code-section';
import {CustomPageDatablePage} from './custom-pages/custom-page-datable-page';
import {SettingsLayout} from './settings/settings-layout';
import {GeneralSettings} from './settings/pages/general-settings';
import {ThemeEditor} from './appearance/sections/themes/theme-editor';
import {AppSettingsRoutes} from '@app/admin/settings/app-settings-routes';
import {SubscriptionSettings} from './settings/pages/subscription-settings';
import {LocalizationSettings} from './settings/pages/localization-settings';
import {AuthenticationSettings} from './settings/pages/authentication-settings';
import {UploadingSettings} from './settings/pages/uploading-settings/uploading-settings';
import {OutgoingEmailSettings} from './settings/pages/mail-settings/outgoing-email-settings';
import {CacheSettings} from './settings/pages/cache-settings/cache-settings';
import {LoggingSettings} from './settings/pages/logging-settings';
import {QueueSettings} from './settings/pages/queue-settings';
import {RecaptchaSettings} from './settings/pages/recaptcha-settings';
import {ReportsSettings} from './settings/pages/reports-settings';
import {UpdateUserPage} from './users/update-user-page';
import {CreateUserPage} from './users/create-user-page';
import {LocalizationIndex} from './translations/localization-index';
import {TranslationManagementPage} from './translations/translation-management-page';
import {AdsPage} from './ads/ads-page';
import React from 'react';
import {FullPageLoader} from '../ui/progress/full-page-loader';
import {SectionList} from './appearance/section-list';
import {RolesIndexPage} from './roles/roles-index-page';
import {EditRolePage} from './roles/crupdate-role-page/edit-role-page';
import {CreateRolePage} from './roles/crupdate-role-page/create-role-page';
import {TagIndexPage} from './tags/tag-index-page';
import {FileEntryIndexPage} from './file-entry/file-entry-index-page';
import {SubscriptionsIndexPage} from './subscriptions/subscriptions-index-page';
import {PlansIndexPage} from './plans/plans-index-page';
import {EditPlanPage} from './plans/crupdate-plan-page/edit-plan-page';
import {CreatePlanPage} from './plans/crupdate-plan-page/create-plan-page';
import {GdprSettings} from './settings/pages/gdpr-settings';
import {AuthRoute} from '../auth/guards/auth-route';
import {NotFoundPage} from '../ui/not-found-page/not-found-page';
import {AppAppearanceConfig} from '@app/admin/appearance/app-appearance-config';
import {AppAdminRoutes} from '@app/admin/app-admin-routes';
import {EditCustomPage} from '@common/admin/custom-pages/edit-custom-page';
import {CreateCustomPage} from '@common/admin/custom-pages/create-custom-page';
import {ThemeFontPanel} from '@common/admin/appearance/sections/themes/theme-font-panel';
import {ThemeRadiusPanel} from '@common/admin/appearance/sections/themes/theme-radius-panel';
import {LogsPage} from '@common/admin/logging/logs-page';
import {ScheduleLogDatatable} from '@common/admin/logging/schedule/schedule-log-datatable';
import {ErrorLogDatatable} from '@common/admin/logging/error/error-log-datatable';
import {OutgoingEmailLogDatatable} from '@common/admin/logging/outgoing-email/outgoing-email-log-datatable';
const ReportsPage = React.lazy(() => import('./analytics/admin-report-page'));
const AdminRouteConfig: RouteObject[] = [
{
path: 'appearance',
element: (
),
children: [
{index: true, element: },
{path: 'general', element: },
{path: 'seo-settings', element: },
{path: 'custom-code', element: },
{path: 'themes', element: },
{path: 'themes/:themeIndex', element: },
{path: 'themes/:themeIndex/font', element: },
{path: 'themes/:themeIndex/radius', element: },
{path: 'menus', element: },
{path: 'menus/:menuIndex', element: },
{
path: 'menus/:menuIndex/items/:menuItemIndex',
element: ,
},
...Object.values(AppAppearanceConfig.sections).flatMap(
s => s.routes || [],
),
],
},
{
path: '/',
element: ,
children: [
...AppAdminRoutes,
// REPORT PAGE
{
path: '/',
element: (
}>
),
},
// USERS
{
path: 'users',
element: (
),
},
{
path: 'users/new',
element: (
),
},
{
path: 'users/:userId/edit',
element: (
),
},
// ROLES
{
path: 'roles',
element: (
),
},
{
path: 'roles/new',
element: (
),
},
{
path: 'roles/:roleId/edit',
element: (
),
},
// SUBSCRIPTIONS and PLANS
{
path: 'subscriptions',
element: (
),
},
{
path: 'plans',
element: (
),
},
{
path: 'plans/new',
element: (
),
},
{
path: 'plans/:productId/edit',
element: (
),
},
// CUSTOM PAGES
{
path: 'custom-pages',
element: (
),
},
{
path: 'custom-pages/new',
element: (
),
},
{
path: 'custom-pages/:pageId/edit',
element: (
),
},
// TAGS
{
path: 'tags',
element: (
),
},
// LOCALIZATIONS
{
path: 'localizations',
element: (
),
},
{
path: 'localizations/:localeId/translate',
element: ,
},
// FILE ENTRIES
{
path: 'files',
element: (
),
},
// ADS
{
path: 'ads',
element: (
),
},
// SETTINGS
{
path: 'settings',
element: (
),
children: [
{index: true, element: },
{path: 'general', element: },
{path: 'subscriptions', element: },
{path: 'localization', element: },
{path: 'authentication', element: },
{path: 'uploading', element: },
{path: 'outgoing-email', element: },
{path: 'cache', element: },
{path: 'analytics', element: },
{path: 'logging', element: },
{path: 'queue', element: },
{path: 'recaptcha', element: },
{path: 'gdpr', element: },
...AppSettingsRoutes,
],
},
// LOGS
{
path: 'logs',
element: (
),
children: [
{index: true, element: },
{path: 'schedule', element: },
{path: 'error', element: },
{path: 'outgoing-email', element: },
],
},
],
},
{path: '*', element: },
];
export default function AdminRoutes() {
return useRoutes(AdminRouteConfig);
}