feat: Добавить новые компоненты и улучшения UX/UI, включая Breadcrumbs с динамическими фильтрами, ToastContainer для уведомлений и CommandPalette для глобального поиска. Обновить TableSkeleton с анимацией и добавить новые skeleton компоненты для карточек, списков и форм. Обновить документацию по новым компонентам и улучшениям.
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m38s

This commit is contained in:
2025-10-02 18:02:22 +07:00
parent 495063a510
commit 339144fb11
12 changed files with 1950 additions and 24 deletions
+10 -4
View File
@@ -24,6 +24,8 @@ import Dashboard from './Dashboard';
import './App.css';
import { NotifyProvider } from './components/NotifyProvider.jsx';
import SettingsModal from './components/SettingsModal.jsx';
import ToastContainer from './components/ToastContainer.jsx';
import CommandPalette, { KeyboardShortcutsButton } from './components/CommandPalette.jsx';
// axios не используется напрямую; сетевые вызовы через src/lib/api.js
// --- Simple i18n (RU/EN) ---
@@ -93,9 +95,11 @@ function App() {
<QueryClientProvider client={queryClient}>
<LanguageProvider>
<ThemeProvider>
<NotifyProvider>
<MainLayout />
</NotifyProvider>
<ToastContainer>
<NotifyProvider>
<MainLayout />
</NotifyProvider>
</ToastContainer>
</ThemeProvider>
</LanguageProvider>
</QueryClientProvider>
@@ -314,7 +318,8 @@ function MainLayout() {
<option value="dark">{t('dark')}</option>
</select>
</div>
<div className="nav-item ms-2">
<div className="nav-item ms-2 d-flex gap-1">
<KeyboardShortcutsButton />
<button className="btn btn-outline-primary btn-sm" onClick={() => setSettingsOpen(true)}>
<IconSettings className="me-1" /> Настройки
</button>
@@ -342,6 +347,7 @@ function MainLayout() {
</div>
</footer>
<SettingsModal open={settingsOpen} onClose={() => setSettingsOpen(false)} />
<CommandPalette />
</div>
);
}