prototype 1.0

This commit is contained in:
2026-05-07 17:29:59 +03:00
parent fde574c7a0
commit 2f69ac14c5
291 changed files with 34857 additions and 5683 deletions

View File

@@ -1,40 +1,30 @@
import React from 'react';
import { Admin, Resource, Layout } from 'react-admin';
import { authProvider } from './authProvider';
import { dataProvider } from './dataProvider';
import { MyLayout } from './layout/MyLayout';
import Dashboard from './resources/dashboard/Dashboard';
import { UserList, UserEdit } from './resources/users';
import { ReportList, ReportEdit } from './resources/reports';
import { TicketList, TicketEdit } from './resources/tickets';
import { AdminList, AdminEdit } from './resources/admins';
import { BannedWordList, BannedWordEdit } from './resources/banned-words';
import { SubscriptionList, SubscriptionEdit } from './resources/subscriptions';
import { ReviewList, ReviewEdit } from './resources/reviews';
import { AuditList } from './resources/audit';
import { BrowserRouter as Router } from 'react-router-dom'
import { ThemeProvider } from '@/components/theme-provider'
import { SidebarConfigProvider } from '@/contexts/sidebar-context'
import { AppRouter } from '@/components/router/app-router'
import { useEffect } from 'react'
import { initGTM } from '@/utils/analytics'
const App = () => (
<Admin
dashboard={Dashboard}
authProvider={authProvider}
dataProvider={dataProvider}
requireAuth
>
{(permissions) => [
// Доступно всем администраторам
<Resource name="users" list={UserList} edit={UserEdit} />,
<Resource name="reports" list={ReportList} edit={ReportEdit} />,
<Resource name="tickets" list={TicketList} edit={TicketEdit} />,
<Resource name="banned-words" list={BannedWordList} edit={BannedWordEdit} />,
<Resource name="subscriptions" list={SubscriptionList} edit={SubscriptionEdit} />,
<Resource name="reviews" list={ReviewList} edit={ReviewEdit} />,
<Resource name="audit" list={AuditList} />,
// Только superadmin
permissions === 'superadmin' ? (
<Resource name="admins" list={AdminList} edit={AdminEdit} />
) : null,
]}
</Admin>
);
// Get basename from environment (for deployment) or use empty string for development
const basename = import.meta.env.VITE_BASENAME || ''
export default App;
function App() {
// Initialize GTM on app load
useEffect(() => {
initGTM();
}, []);
return (
<div className="font-sans antialiased" style={{ fontFamily: 'var(--font-inter)' }}>
<ThemeProvider defaultTheme="system" storageKey="vite-ui-theme">
<SidebarConfigProvider>
<Router basename={basename}>
<AppRouter />
</Router>
</SidebarConfigProvider>
</ThemeProvider>
</div>
)
}
export default App