pos-dashboard/src/index.js
tuanOts 80bb712c70 Enhanced Calendar & Project Tracker UI
� Calendar Improvements:
- Fixed duplicate API calls and event handling
- Enhanced calendar toolbar with beautiful gradient buttons
- Fixed button alignment and clipping issues
- Added custom calendar-custom.css with modern styling
- Improved drag & drop functionality with better visual feedback
- Enhanced recently dropped events section with proper scrolling
- Added dark mode support for all calendar components
- Mobile responsive design with optimized button layouts

� Project Tracker Fixes:
- Eliminated duplicate API calls with loading refs and time-based prevention
- Enhanced pagination handling to prevent double requests
- Improved error handling and loading states
- Better console logging for debugging

� UI/UX Enhancements:
- Beautiful gradient backgrounds and hover effects
- Proper icon alignment in recently dropped events
- Color-coded status indicators (dots instead of text)
- Smooth animations and transitions
- Enhanced visual hierarchy and spacing
- Professional styling with backdrop filters and shadows

� Responsive Design:
- Mobile-optimized layouts and button sizes
- Proper touch targets and spacing
- Consistent styling across all screen sizes

� Performance:
- Reduced re-renders and optimized event handling
- Better memory management with proper cleanup
- Eliminated React StrictMode double rendering in development
2025-06-14 22:21:58 +07:00

66 lines
2.1 KiB
JavaScript

import React from "react";
import { BrowserRouter } from 'react-router-dom';
import ReactDOM from 'react-dom';
import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
import '../node_modules/bootstrap/dist/js/bootstrap.bundle.js';
import '../src/style/css/feather.css'
import '../src/style/css/line-awesome.min.css'
import "../src/style/scss/main.scss";
import '../src/style/icons/fontawesome/css/fontawesome.min.css'
import '../src/style/icons/fontawesome/css/all.min.css'
import { Provider } from "react-redux";
import store from "./core/redux/store.jsx";
import AllRoutes from "./Router/router.jsx";
const rootElement = document.getElementById('root');
// Initialize default dark mode theme
const initializeTheme = () => {
// Force reset to dark mode for new default (uncomment if needed)
// localStorage.removeItem("colorschema");
// localStorage.removeItem("layoutStyling");
// localStorage.removeItem("layoutThemeColors");
// Set default values if not exists in localStorage
if (!localStorage.getItem("colorschema")) {
localStorage.setItem("colorschema", "dark_mode");
}
if (!localStorage.getItem("layoutStyling")) {
localStorage.setItem("layoutStyling", "default");
}
if (!localStorage.getItem("layoutThemeColors")) {
localStorage.setItem("layoutThemeColors", "light");
}
// Apply theme to document
const colorSchema = localStorage.getItem("colorschema") || "dark_mode";
const layoutStyling = localStorage.getItem("layoutStyling") || "default";
const layoutThemeColors = localStorage.getItem("layoutThemeColors") || "light";
document.documentElement.setAttribute("data-layout-mode", colorSchema);
document.documentElement.setAttribute("data-layout-style", layoutStyling);
document.documentElement.setAttribute("data-nav-color", layoutThemeColors);
};
// Initialize theme before rendering
initializeTheme();
if (rootElement) {
const root = ReactDOM.createRoot(rootElement);
root.render(
<Provider store={store} >
<BrowserRouter basename={process.env.PUBLIC_URL}>
<AllRoutes />
</BrowserRouter>
</Provider>
);
} else {
console.error("Element with id 'root' not found.");
}