issue fix for dev env

This commit is contained in:
Malini 2025-10-29 18:26:41 +05:30
parent ddcfa59045
commit af0524b785
43 changed files with 256 additions and 214 deletions

View File

@ -1,17 +1,17 @@
import React from 'react'
import { Routes, Route, Navigate } from 'react-router-dom'
import Dashboard from './pages/Dashboard/Dashboard'
import AdminDashboard from './pages/Admin/AdminDashboard'
import AdminUsers from './pages/Admin/AdminUsers'
import Validations from './pages/Admin/Validations'
import ValidationReview from './pages/Admin/ValidationReview'
import Configuration from './pages/Admin/Configuration'
import Survey from './pages/Survey/Survey'
import Login from './pages/Login/Login'
import History from './pages/History/History'
import ChangePassword from './pages/ChangePassword/ChangePassword'
import ForgotPassword from './pages/ForgotPassword/ForgotPassword'
import PublicContactForm from './pages/PublicContactForm'
import React from 'react';
import { Routes, Route, Navigate } from 'react-router-dom';
import Dashboard from '@/pages/Dashboard/Dashboard';
import AdminDashboard from '@/pages/Admin/AdminDashboard';
import AdminUsers from '@/pages/Admin/AdminUsers';
import Validations from '@/pages/Admin/Validations';
import ValidationReview from '@/pages/Admin/ValidationReview';
import Configuration from '@/pages/Admin/Configuration';
import Survey from '@/pages/Survey/Survey';
import Login from '@/pages/Login/Login';
import History from '@/pages/History/History';
import ChangePassword from '@/pages/ChangePassword/ChangePassword';
import ForgotPassword from '@/pages/ForgotPassword/ForgotPassword';
import PublicContactForm from '@/pages/PublicContactForm';
const RequireRole = ({ allowedRoles = [], children }) => {
let role

View File

@ -1,15 +1,15 @@
import React from 'react';
import { NavLink, useNavigate } from 'react-router-dom';
import Logo from '../../assets/images/fcsclogo.svg';
import DashboardIconActive from '../../assets/images/cuida_dashboard-outline.svg';
import DashboardIconInactive from '../../assets/images/cuida_dashboard-outline-inactive.svg';
import CheckCircleActive from '../../assets/images/checkcircle-active.svg';
import ConfigActive from '../../assets/images/configrationicon-active.svg';
import ConfigInactive from '../../assets/images/configrationicon-inactive.svg';
import UserActive from '../../assets/images/user-active.svg';
import UserInactive from '../../assets/images/user-inactive.svg';
import ManageSubmissionInactive from '../../assets/images/managesubmission - inactive.svg';
import BellIconAsset from '../../assets/images/bell.svg';
import Logo from '@/assets/images/fcsclogo.svg';
import DashboardIconActive from '@/assets/images/cuida_dashboard-outline.svg';
import DashboardIconInactive from '@/assets/images/cuida_dashboard-outline-inactive.svg';
import CheckCircleActive from '@/assets/images/checkcircle-active.svg';
import ConfigActive from '@/assets/images/configrationicon-active.svg';
import ConfigInactive from '@/assets/images/configrationicon-inactive.svg';
import UserActive from '@/assets/images/user-active.svg';
import UserInactive from '@/assets/images/user-inactive.svg';
import ManageSubmissionInactive from '@/assets/images/managesubmission - inactive.svg';
import BellIconAsset from '@/assets/images/bell.svg';
const NavItem = ({ label, to, iconActive, iconInactive, end = false }) => (
<NavLink

View File

@ -1,6 +1,6 @@
import React from 'react';
import Table from '../common/Table';
import SearchIcon from '../../assets/images/material-symbols_search-rounded.svg';
import Table from '@/components/common/Table';
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
const submissions = [
{

View File

@ -1,6 +1,6 @@
import React from 'react';
import CaretDownActive from '../../assets/images/caretdown-active.svg';
import CalendarIcon from '../../assets/images/uil_calender.svg';
import CaretDownActive from '@/assets/images/caretdown-active.svg';
import CalendarIcon from '@/assets/images/uil_calender.svg';
const baseInputStyles = {
default: {

View File

@ -1,8 +1,8 @@
import React from 'react';
import CaretLeftIcon from '../../assets/images/caretleft.svg';
import CaretRightIcon from '../../assets/images/caretright.svg';
import CaretDoubleLeftIcon from '../../assets/images/caretdoubleleft.svg';
import CaretDoubleRightIcon from '../../assets/images/caretdoubleright.svg';
import CaretLeftIcon from '@/assets/images/caretleft.svg';
import CaretRightIcon from '@/assets/images/caretright.svg';
import CaretDoubleLeftIcon from '@/assets/images/caretdoubleleft.svg';
import CaretDoubleRightIcon from '@/assets/images/caretdoubleright.svg';
// Generic, reusable table
// Props:

View File

@ -1,8 +1,8 @@
import React from 'react';
import { useNavigate } from 'react-router-dom';
import Table from '../common/Table';
import SearchIcon from '../../assets/images/material-symbols_search-rounded.svg';
import CaretDown from '../../assets/images/caretdown.svg';
import Table from '@/components/common/Table';
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
import CaretDown from '@/assets/images/caretdown.svg';
const getStatusClass = (status) => {
const normalized = String(status || '').toLowerCase();

View File

@ -1,5 +1,5 @@
import React from 'react';
import HeaderBar from '../../components/layout/HeaderBar';
import HeaderBar from '@/components/layout/HeaderBar';
const formatDate = (value) => {
if (!value) return '—';

View File

@ -1,12 +1,12 @@
import React from 'react';
import { NavLink, useNavigate } from 'react-router-dom';
import Logo from '../../assets/images/fcsclogo.svg';
import SurveyIconActive from '../../assets/images/vector.svg';
import SurveyIconInactive from '../../assets/images/vectorblack.svg';
import DashboardIconActive from '../../assets/images/cuida_dashboard-outline.svg';
import DashboardIconInactive from '../../assets/images/cuida_dashboard-outline-inactive.svg';
import HistoryIconActive from '../../assets/images/mdi_history.svg';
import HistoryIconInactive from '../../assets/images/history.svg';
import Logo from '@/assets/images/fcsclogo.svg';
import SurveyIconActive from '@/assets/images/vector.svg';
import SurveyIconInactive from '@/assets/images/vectorblack.svg';
import DashboardIconActive from '@/assets/images/cuida_dashboard-outline.svg';
import DashboardIconInactive from '@/assets/images/cuida_dashboard-outline-inactive.svg';
import HistoryIconActive from '@/assets/images/mdi_history.svg';
import HistoryIconInactive from '@/assets/images/history.svg';
const HeaderBar = () => {
const [open, setOpen] = React.useState(false);

View File

@ -1,6 +1,6 @@
import React from 'react';
import CaretDown from '../../../assets/images/caretdown.svg';
import BackVendor from '../../../assets/images/backvector.svg';
import CaretDown from '@/assets/images/caretdown.svg';
import BackVendor from '@/assets/images/backvector.svg';
const Field = ({ label, placeholder = '', type = 'text', value = '', onChange = () => {}, disabled = false }) => (
<div>

View File

@ -4,8 +4,8 @@ import {
fetchZeroTargetReasons,
fetchProducts,
fetchUnits,
} from '../../../services/masters/masterService.js';
import CaretDown from '../../../assets/images/caretdown-black.svg';
} from '@/services/masters/masterService.js';
import CaretDown from '@/assets/images/caretdown-black.svg';
const Input = ({ placeholder = '', type = 'text', value = '', onChange = () => {} }) => (
<input

View File

@ -1,6 +1,6 @@
import React from 'react';
import Table from '../../common/Table';
import BackVendor from '../../../assets/images/caretdown-black.svg';
import Table from '@/components/common/Table';
import BackVendor from '@/assets/images/caretdown-black.svg';
const Card = ({ title, children }) => (
<div className="bg-white w-full rounded-lg shadow-sm ring-1 ring-gray-200">

View File

@ -1,8 +1,8 @@
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import './index.css'
import { BrowserRouter } from 'react-router-dom'
import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom';
import App from '@/App';
import '@/index.css';
ReactDOM.createRoot(document.getElementById('root')).render(
<React.StrictMode>

View File

@ -1,13 +1,13 @@
import React from 'react';
import AdminHeader from '../../components/admin/AdminHeader';
import StatCard from '../../components/admin/StatCard';
import WpfSurveyIcon from '../../assets/images/wpf_survey.svg';
import SubmittedIcon from '../../assets/images/check-circle-fill 1.svg';
import ApprovedIcon from '../../assets/images/check-circle-fill 1-approved.svg';
import RejectedIcon from '../../assets/images/warning-circle-fill 1.svg';
import OverdueIcon from '../../assets/images/warning-fill 1.svg';
import PendingIcon from '../../assets/images/info-fill 1.svg';
import SubmissionTable from '../../components/admin/SubmissionTable';
import AdminHeader from '@/components/admin/AdminHeader';
import StatCard from '@/components/admin/StatCard';
import WpfSurveyIcon from '@/assets/images/wpf_survey.svg';
import SubmittedIcon from '@/assets/images/check-circle-fill 1.svg';
import ApprovedIcon from '@/assets/images/check-circle-fill 1-approved.svg';
import RejectedIcon from '@/assets/images/warning-circle-fill 1.svg';
import OverdueIcon from '@/assets/images/warning-fill 1.svg';
import PendingIcon from '@/assets/images/info-fill 1.svg';
import SubmissionTable from '@/components/admin/SubmissionTable';
const AdminDashboard = () => {
return (

View File

@ -1,8 +1,8 @@
import React from 'react';
import { Link } from 'react-router-dom';
import AdminHeader from '../../components/admin/AdminHeader';
import AdminHeader from '@/components/admin/AdminHeader';
import AdminUsersContent from './configuration/AdminUsers';
import CaretUp from '../../assets/images/caret-up.svg';
import CaretUp from '@/assets/images/caret-up.svg';
const AdminUsersPage = () => {
return (

View File

@ -1,12 +1,12 @@
import React from 'react';
import { Link } from 'react-router-dom';
import AdminHeader from '../../components/admin/AdminHeader';
import QuarterlyWindows from './configuration/QuarterlyWindows';
import IsicHsCodes from './configuration/IsicHsCodes';
import UnitMaster from './configuration/UnitMaster';
import AdminUsers from './configuration/AdminUsers';
import CompanyProfile from './configuration/CompanyProfile';
import CaretUp from '../../assets/images/caret-up.svg';
import AdminHeader from '@/components/admin/AdminHeader';
import QuarterlyWindows from '@/pages/Admin/configuration/QuarterlyWindows';
import IsicHsCodes from '@/pages/Admin/configuration/IsicHsCodes';
import UnitMaster from '@/pages/Admin/configuration/UnitMaster';
import AdminUsers from '@/pages/Admin/configuration/AdminUsers';
import CompanyProfile from '@/pages/Admin/configuration/CompanyProfile';
import CaretUp from '@/assets/images/caret-up.svg';
const Configuration = () => {
const tabs = ['Quarterly Windows', 'HS Codes', 'Unit Master', 'Admin Users', 'Company Profile'];

View File

@ -1,16 +1,16 @@
import React from 'react';
import { Link, useNavigate, useParams } from 'react-router-dom';
import AdminHeader from '../../components/admin/AdminHeader';
import CaretUp from '../../assets/images/caret-up.svg';
import EstablishmentIcon from '../../assets/images/establishment.svg';
import EstablishmentIdIcon from '../../assets/images/establishmentid.svg';
import EmailIcon from '../../assets/images/emailid.svg';
import EmiratesIcon from '../../assets/images/emirates.svg';
import TotalEmployeesIcon from '../../assets/images/totalemployess.svg';
import MaleEmployeesIcon from '../../assets/images/maleemployes.svg';
import FemaleEmployeesIcon from '../../assets/images/femaleemployess.svg';
import UaeIcon from '../../assets/images/uae.svg';
import NonUaeIcon from '../../assets/images/nonuae.svg';
import AdminHeader from '@/components/admin/AdminHeader';
import CaretUp from '@/assets/images/caret-up.svg';
import EstablishmentIcon from '@/assets/images/establishment.svg';
import EstablishmentIdIcon from '@/assets/images/establishmentid.svg';
import EmailIcon from '@/assets/images/emailid.svg';
import EmiratesIcon from '@/assets/images/emirates.svg';
import TotalEmployeesIcon from '@/assets/images/totalemployess.svg';
import MaleEmployeesIcon from '@/assets/images/maleemployes.svg';
import FemaleEmployeesIcon from '@/assets/images/femaleemployess.svg';
import UaeIcon from '@/assets/images/uae.svg';
import NonUaeIcon from '@/assets/images/nonuae.svg';
const establishmentDetails = [
{ label: 'Establishment Name', value: 'ABC Manufacturing LLC' },

View File

@ -1,12 +1,12 @@
import React from 'react';
import { Link, useNavigate } from 'react-router-dom';
import AdminHeader from '../../components/admin/AdminHeader';
import Table from '../../components/common/Table';
import SearchIcon from '../../assets/images/material-symbols_search-rounded.svg';
import DownloadIcon from '../../assets/images/downloadsimple.svg';
import CaretUp from '../../assets/images/caret-up.svg';
import { SelectField } from '../../components/common/FormControls';
import { getSubmissions } from '../../services/admin/submission.js';
import AdminHeader from '@/components/admin/AdminHeader';
import Table from '@/components/common/Table';
import { SelectField } from '@/components/common/FormControls';
import { getSubmissions } from '@/services/admin/submission';
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
import DownloadIcon from '@/assets/images/downloadsimple.svg';
import CaretUp from '@/assets/images/caret-up.svg';
const STATUS_VARIANTS = {
Approved: { background: '#F3FAF4', text: '#2F663C', border: '#F3FAF4' },

View File

@ -1,17 +1,17 @@
import React from 'react';
import Table from '../../../components/common/Table';
import SearchIcon from '../../../assets/images/material-symbols_search-rounded.svg';
import ExportIcon from '../../../assets/images/downloadsimple.svg';
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
import PencilActive from '../../../assets/images/pencilsimple.svg';
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
import TrashActive from '../../../assets/images/trash - active.svg';
import TrashInactive from '../../../assets/images/trash - inactive.svg';
import AdminUserIcon from '../../../assets/images/usergear.svg';
import ActiveUserIcon from '../../../assets/images/active-user.svg';
import InactiveUserIcon from '../../../assets/images/inactive-user.svg';
import ResetPasswordIcon from '../../../assets/images/hugeicons_reset-password.svg';
import ResetPasswordInactiveIcon from '../../../assets/images/hugeicons_reset-password-inactive.svg';
import Table from '@/components/common/Table';
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
import ExportIcon from '@/assets/images/downloadsimple.svg';
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
import PencilActive from '@/assets/images/pencilsimple.svg';
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
import TrashActive from '@/assets/images/trash - active.svg';
import TrashInactive from '@/assets/images/trash - inactive.svg';
import AdminUserIcon from '@/assets/images/usergear.svg';
import ActiveUserIcon from '@/assets/images/active-user.svg';
import InactiveUserIcon from '@/assets/images/inactive-user.svg';
import ResetPasswordIcon from '@/assets/images/hugeicons_reset-password.svg';
import ResetPasswordInactiveIcon from '@/assets/images/hugeicons_reset-password-inactive.svg';
const SummaryCard = ({ label, count, icon, iconBg = '#FDF7EB' }) => (
<div className="flex min-h-[96px] min-w-[220px] flex-1 items-center justify-between rounded-[16px] border border-[#E6EAF5] bg-white px-6 py-5 shadow-[0_12px_24px_rgba(15,23,42,0.06)]">

View File

@ -1,25 +1,25 @@
import React from 'react';
import Table from '../../../components/common/Table';
import Loader from '../../../components/common/Loader';
import { TextField, SelectField, PhoneField } from '../../../components/common/FormControls';
import { fetchEmirates, fetchCityTowns } from '../../../services/masters/masterService';
import Table from '@/components/common/Table';
import Loader from '@/components/common/Loader';
import { TextField, SelectField, PhoneField } from '@/components/common/FormControls';
import { fetchEmirates, fetchCityTowns } from '@/services/masters/masterService';
import {
createEstablishment,
fetchEstablishments,
fetchEstablishmentDetail,
updateEstablishment,
deleteEstablishment,
} from '../../../services/establishments/establishmentService';
import SearchIcon from '../../../assets/images/material-symbols_search-rounded.svg';
import DownloadIcon from '../../../assets/images/downloadsimple.svg';
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
import PencilActive from '../../../assets/images/pencilsimple.svg';
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
import TrashActive from '../../../assets/images/trash - active.svg';
import TrashInactive from '../../../assets/images/trash - inactive.svg';
import ResetPasswordActive from '../../../assets/images/hugeicons_reset-password.svg';
import ResetPasswordInactive from '../../../assets/images/hugeicons_reset-password-inactive.svg';
import DeleteIcon from '../../../assets/images/delete.svg';
} from '@/services/establishments/establishmentService';
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
import DownloadIcon from '@/assets/images/downloadsimple.svg';
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
import PencilActive from '@/assets/images/pencilsimple.svg';
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
import TrashActive from '@/assets/images/trash - active.svg';
import TrashInactive from '@/assets/images/trash - inactive.svg';
import ResetPasswordActive from '@/assets/images/hugeicons_reset-password.svg';
import ResetPasswordInactive from '@/assets/images/hugeicons_reset-password-inactive.svg';
import DeleteIcon from '@/assets/images/delete.svg';
const PASSWORD_POLICY = {
minLength: 12,

View File

@ -1,5 +1,5 @@
import React from 'react';
import { SelectField, TextField } from '../../../components/common/FormControls';
import { SelectField, TextField } from '@/components/common/FormControls';
const initialTemplate = {
subject: 'IPI Survey Submission Reminder - {{quarter}}',

View File

@ -1,13 +1,13 @@
import React from 'react';
import Table from '../../../components/common/Table';
import { TextField, SelectField } from '../../../components/common/FormControls';
import SearchIcon from '../../../assets/images/material-symbols_search-rounded.svg';
import ExportIcon from '../../../assets/images/downloadsimple.svg';
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
import PencilActive from '../../../assets/images/pencilsimple.svg';
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
import TrashActive from '../../../assets/images/trash - active.svg';
import TrashInactive from '../../../assets/images/trash - inactive.svg';
import Table from '@/components/common/Table';
import { TextField, SelectField } from '@/components/common/FormControls';
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
import ExportIcon from '@/assets/images/downloadsimple.svg';
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
import PencilActive from '@/assets/images/pencilsimple.svg';
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
import TrashActive from '@/assets/images/trash - active.svg';
import TrashInactive from '@/assets/images/trash - inactive.svg';
const establishmentsSeed = [
{

View File

@ -1,15 +1,15 @@
import React from 'react';
import Table from '../../../components/common/Table';
import DownloadIcon from '../../../assets/images/downloadsimple.svg';
import UploadImportIcon from '../../../assets/images/upload-import.svg';
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
import PencilActive from '../../../assets/images/pencilsimple.svg';
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
import TrashActive from '../../../assets/images/trash - active.svg';
import TrashInactive from '../../../assets/images/trash - inactive.svg';
import DeleteIcon from '../../../assets/images/delete.svg';
import StatusBadge from '../../../components/common/StatusBadge';
import { TextField, SelectField } from '../../../components/common/FormControls';
import Table from '@/components/common/Table';
import DownloadIcon from '@/assets/images/downloadsimple.svg';
import UploadImportIcon from '@/assets/images/upload-import.svg';
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
import PencilActive from '@/assets/images/pencilsimple.svg';
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
import TrashActive from '@/assets/images/trash - active.svg';
import TrashInactive from '@/assets/images/trash - inactive.svg';
import DeleteIcon from '@/assets/images/delete.svg';
import StatusBadge from '@/components/common/StatusBadge';
import { TextField, SelectField } from '@/components/common/FormControls';
const createEmptyCodeForm = () => ({
code: '',

View File

@ -1,17 +1,17 @@
import React from 'react';
import Table from '../../../components/common/Table';
import DownloadIcon from '../../../assets/images/downloadsimple.svg';
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
import PencilActive from '../../../assets/images/pencilsimple.svg';
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
import TrashActive from '../../../assets/images/trash - active.svg';
import TrashInactive from '../../../assets/images/trash - inactive.svg';
import DeleteIcon from '../../../assets/images/delete.svg';
import CaretDownActive from '../../../assets/images/caretdown-active.svg';
import SearchIcon from '../../../assets/images/material-symbols_search-rounded.svg';
import CaretDown from '../../../assets/images/caretdown-black.svg';
import { TextField, SelectField, DateField } from '../../../components/common/FormControls';
import StatusBadge from '../../../components/common/StatusBadge';
import Table from '@/components/common/Table';
import { TextField, SelectField, DateField } from '@/components/common/FormControls';
import StatusBadge from '@/components/common/StatusBadge';
import DownloadIcon from '@/assets/images/downloadsimple.svg';
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
import PencilActive from '@/assets/images/pencilsimple.svg';
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
import TrashActive from '@/assets/images/trash - active.svg';
import TrashInactive from '@/assets/images/trash - inactive.svg';
import DeleteIcon from '@/assets/images/delete.svg';
import CaretDownActive from '@/assets/images/caretdown-active.svg';
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
import CaretDown from '@/assets/images/caretdown-black.svg';
const createEmptyQuarterForm = () => ({
establishment: '',

View File

@ -1,5 +1,5 @@
import React from 'react';
import { TextField } from '../../../components/common/FormControls';
import { TextField } from '@/components/common/FormControls';
const SubmissionDeadlines = () => {
const [form, setForm] = React.useState({

View File

@ -1,17 +1,17 @@
import React from 'react';
import Table from '../../../components/common/Table';
import DownloadIcon from '../../../assets/images/downloadsimple.svg';
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
import PencilActive from '../../../assets/images/pencilsimple.svg';
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
import TrashActive from '../../../assets/images/trash - active.svg';
import TrashInactive from '../../../assets/images/trash - inactive.svg';
import DeleteIcon from '../../../assets/images/delete.svg';
import StatusBadge from '../../../components/common/StatusBadge';
import { TextField, SelectField } from '../../../components/common/FormControls';
import CaretDownIcon from '../../../assets/images/caretdown-active.svg';
import RectangleIcon from '../../../assets/images/rectangle.svg';
import CheckboxIcon from '../../../assets/images/checkbox.svg';
import Table from '@/components/common/Table';
import DownloadIcon from '@/assets/images/downloadsimple.svg';
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
import PencilActive from '@/assets/images/pencilsimple.svg';
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
import TrashActive from '@/assets/images/trash - active.svg';
import TrashInactive from '@/assets/images/trash - inactive.svg';
import DeleteIcon from '@/assets/images/delete.svg';
import StatusBadge from '@/components/common/StatusBadge';
import { TextField, SelectField } from '@/components/common/FormControls';
import CaretDownIcon from '@/assets/images/caretdown-active.svg';
import RectangleIcon from '@/assets/images/rectangle.svg';
import CheckboxIcon from '@/assets/images/checkbox.svg';
const createEmptyUnitForm = () => ({
unitName: '',

View File

@ -1,7 +1,7 @@
import React from "react";
import Logo from "../../assets/images/fcsclogo.svg";
import { useNavigate, useLocation } from "react-router-dom";
import apiClient from "../../services/api/apiClient.js";
import React from 'react';
import { useNavigate, useLocation } from 'react-router-dom';
import Logo from '@/assets/images/fcsclogo.svg';
import apiClient from '@/services/api/apiClient';
const ChangePassword = () => {
const navigate = useNavigate();

View File

@ -1,8 +1,8 @@
import React from 'react';
import { WelcomeSection } from '../../components/dashboard/WelcomeSection';
import { SurveyStatus } from '../../components/dashboard/SurveyStatus';
import { SubmissionHistory } from '../../components/dashboard/SubmissionHistory';
import { fetchEstablishmentDashboard } from '../../services/establishments/establishmentService.js';
import { WelcomeSection } from '@/components/dashboard/WelcomeSection';
import { SurveyStatus } from '@/components/dashboard/SurveyStatus';
import { SubmissionHistory } from '@/components/dashboard/SubmissionHistory';
import { fetchEstablishmentDashboard } from '@/services/establishments/establishmentService.js';
const Dashboard = () => {
const [dashboardData, setDashboardData] = React.useState(null);

View File

@ -1,7 +1,7 @@
import React from 'react';
import Logo from '../../assets/images/fcsclogo.svg';
import { useNavigate } from 'react-router-dom';
import { requestPasswordReset } from '../../services/auth/authService.js';
import Logo from '@/assets/images/fcsclogo.svg';
import { requestPasswordReset } from '@/services/auth/authService.js';
const ForgotPassword = () => {
const navigate = useNavigate();

View File

@ -1,10 +1,10 @@
import React from 'react';
import { useNavigate } from 'react-router-dom';
import Table from '../../components/common/Table';
import HeaderBar from '../../components/layout/HeaderBar';
import { fetchSubmissionHistory } from '../../services/submissions/submissionService.js';
import SearchIcon from '../../assets/images/material-symbols_search-rounded.svg';
import CaretDown from '../../assets/images/caretdown.svg';
import Table from '@/components/common/Table';
import HeaderBar from '@/components/layout/HeaderBar';
import { fetchSubmissionHistory } from '@/services/submissions/submissionService.js';
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
import CaretDown from '@/assets/images/caretdown.svg';
const Badge = ({ variant = 'default', children }) => {
const styles = {

View File

@ -1,7 +1,7 @@
import React from 'react';
import Logo from '../../assets/images/fcsclogo.svg';
import { useNavigate } from 'react-router-dom';
import { login } from '../../services/auth/authService.js';
import Logo from '@/assets/images/fcsclogo.svg';
import { login } from '@/services/auth/authService.js';
const Login = () => {
const navigate = useNavigate();

View File

@ -1,7 +1,7 @@
import React, { useState, useEffect } from "react";
import Logo from "../assets/images/fcsclogo.svg";
import { useNavigate } from "react-router-dom";
import apiClient from "../services/api/apiClient.js";
import React, { useState, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import Logo from '@/assets/images/fcsclogo.svg';
import apiClient from '@/services/api/apiClient';
const PublicContactForm = () => {
const navigate = useNavigate();

View File

@ -1,12 +1,12 @@
import React from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import { submitSurvey, fetchSubmissionDetail } from '../../services/submissions/submissionService.js';
import { fetchEstablishmentDetail } from '../../services/establishments/establishmentService.js';
import EstablishmentInfo from '../../components/survey/EstablishmentInfo/EstablishmentInfo';
import HeaderBar from '../../components/layout/HeaderBar';
import ProductData from '../../components/survey/ProductData/ProductData';
import ReviewSubmit from '../../components/survey/ReviewSubmit/ReviewSubmit';
import CheckCircleActive from '../../assets/images/circleframe.svg';
import { submitSurvey, fetchSubmissionDetail } from '@/services/submissions/submissionService';
import { fetchEstablishmentDetail } from '@/services/establishments/establishmentService';
import EstablishmentInfo from '@/components/survey/EstablishmentInfo/EstablishmentInfo';
import HeaderBar from '@/components/layout/HeaderBar';
import ProductData from '@/components/survey/ProductData/ProductData';
import ReviewSubmit from '@/components/survey/ReviewSubmit/ReviewSubmit';
import CheckCircleActive from '@/assets/images/circleframe.svg';
const createEmptyProduct = (id) => ({
id,

View File

@ -1,10 +1,10 @@
import React from 'react';
import { Routes, Route } from 'react-router-dom';
import Dashboard from '../pages/Dashboard/Dashboard';
import Survey from '../pages/Survey/Survey';
import History from '../pages/History/History';
import Configuration from '../pages/Admin/Configuration';
import AdminDashboard from '../pages/Admin/AdminDashboard';
import Dashboard from '@/pages/Dashboard/Dashboard';
import Survey from '@/pages/Survey/Survey';
import History from '@/pages/History/History';
import Configuration from '@/pages/Admin/Configuration';
import AdminDashboard from '@/pages/Admin/AdminDashboard';
const AppRoutes = () => {
return (

View File

@ -1,4 +1,4 @@
import apiClient from '../api/apiClient.js';
import apiClient from '@/services/api/apiClient';
/** Fetch all submissions for the listing page */
export const getSubmissions = async () => {

View File

@ -1,4 +1,4 @@
import apiClient from './apiClient.js';
import apiClient from '@/services/api/apiClient';
export const getRequest = (url, config = {}) => apiClient.get(url, config);

View File

@ -1,4 +1,4 @@
import apiClient from '../api/apiClient.js';
import apiClient from '@/services/api/apiClient';
export const login = async ({ email, password }) => {
const response = await apiClient.post('/auth/login', { email, password }, { skipAuth: true });

View File

@ -1,5 +1,5 @@
import { getRequest, postRequest, putRequest, deleteRequest } from '../api/CommonService.js';
import resolveEstablishmentId from '../utils/establishment.js';
import { getRequest, postRequest, putRequest, deleteRequest } from '@/services/api/CommonService';
import resolveEstablishmentId from '@/services/utils/establishment';
const dashboardEndpoint = '/establishment_dashboard';
const establishmentsEndpoint = '/establishments';

View File

@ -1,4 +1,4 @@
import { getRequest } from '../api/CommonService.js';
import { getRequest } from '@/services/api/CommonService';
const endpoints = {
variationReasons: '/variation_reasons',

View File

@ -1,5 +1,5 @@
import { getRequest, postRequest } from '../api/CommonService.js';
import resolveEstablishmentId from '../utils/establishment.js';
import { getRequest, postRequest } from '@/services/api/CommonService';
import resolveEstablishmentId from '@/services/utils/establishment';
const endpoint = '/submissions';

View File

@ -2,11 +2,11 @@ export {
submitSurvey,
fetchSubmissionHistory,
fetchSubmissionDetail,
} from '../submissions/submissionService.js';
} from '@/services/submissions/submissionService';
export {
fetchEstablishmentDashboard,
fetchEstablishmentDetail,
} from '../establishments/establishmentService.js';
} from '@/services/establishments/establishmentService';
export { default as resolveEstablishmentId } from '../utils/establishment.js';
export { default as resolveEstablishmentId } from '@/services/utils/establishment';

View File

@ -1,3 +1,8 @@
/**
* Resolves an establishment ID from various input types
* @param {string|number} inputId - The input ID to resolve
* @returns {number|undefined} The resolved establishment ID or undefined if not found
*/
export const resolveEstablishmentId = (inputId) => {
if (typeof inputId === 'number' && Number.isFinite(inputId)) {
return inputId;

View File

@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
"baseUrl": ".",
"paths": {
"@assets/*": ["src/assets/*"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -1,7 +1,19 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import path from 'path';
// https://vite.dev/config/
export default defineConfig({
plugins: [react()],
})
resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
'@assets': path.resolve(__dirname, 'src/assets'),
},
},
// Ensure Vite handles these file types
assetsInclude: ['**/*.svg', '**/*.png', '**/*.jpg', '**/*.jpeg', '**/*.gif'],
build: {
assetsDir: 'assets',
outDir: 'dist',
}
});