issue fix for dev env
This commit is contained in:
parent
ddcfa59045
commit
af0524b785
@ -1,17 +1,17 @@
|
|||||||
import React from 'react'
|
import React from 'react';
|
||||||
import { Routes, Route, Navigate } from 'react-router-dom'
|
import { Routes, Route, Navigate } from 'react-router-dom';
|
||||||
import Dashboard from './pages/Dashboard/Dashboard'
|
import Dashboard from '@/pages/Dashboard/Dashboard';
|
||||||
import AdminDashboard from './pages/Admin/AdminDashboard'
|
import AdminDashboard from '@/pages/Admin/AdminDashboard';
|
||||||
import AdminUsers from './pages/Admin/AdminUsers'
|
import AdminUsers from '@/pages/Admin/AdminUsers';
|
||||||
import Validations from './pages/Admin/Validations'
|
import Validations from '@/pages/Admin/Validations';
|
||||||
import ValidationReview from './pages/Admin/ValidationReview'
|
import ValidationReview from '@/pages/Admin/ValidationReview';
|
||||||
import Configuration from './pages/Admin/Configuration'
|
import Configuration from '@/pages/Admin/Configuration';
|
||||||
import Survey from './pages/Survey/Survey'
|
import Survey from '@/pages/Survey/Survey';
|
||||||
import Login from './pages/Login/Login'
|
import Login from '@/pages/Login/Login';
|
||||||
import History from './pages/History/History'
|
import History from '@/pages/History/History';
|
||||||
import ChangePassword from './pages/ChangePassword/ChangePassword'
|
import ChangePassword from '@/pages/ChangePassword/ChangePassword';
|
||||||
import ForgotPassword from './pages/ForgotPassword/ForgotPassword'
|
import ForgotPassword from '@/pages/ForgotPassword/ForgotPassword';
|
||||||
import PublicContactForm from './pages/PublicContactForm'
|
import PublicContactForm from '@/pages/PublicContactForm';
|
||||||
|
|
||||||
const RequireRole = ({ allowedRoles = [], children }) => {
|
const RequireRole = ({ allowedRoles = [], children }) => {
|
||||||
let role
|
let role
|
||||||
|
|||||||
@ -1,15 +1,15 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { NavLink, useNavigate } from 'react-router-dom';
|
import { NavLink, useNavigate } from 'react-router-dom';
|
||||||
import Logo from '../../assets/images/fcsclogo.svg';
|
import Logo from '@/assets/images/fcsclogo.svg';
|
||||||
import DashboardIconActive from '../../assets/images/cuida_dashboard-outline.svg';
|
import DashboardIconActive from '@/assets/images/cuida_dashboard-outline.svg';
|
||||||
import DashboardIconInactive from '../../assets/images/cuida_dashboard-outline-inactive.svg';
|
import DashboardIconInactive from '@/assets/images/cuida_dashboard-outline-inactive.svg';
|
||||||
import CheckCircleActive from '../../assets/images/checkcircle-active.svg';
|
import CheckCircleActive from '@/assets/images/checkcircle-active.svg';
|
||||||
import ConfigActive from '../../assets/images/configrationicon-active.svg';
|
import ConfigActive from '@/assets/images/configrationicon-active.svg';
|
||||||
import ConfigInactive from '../../assets/images/configrationicon-inactive.svg';
|
import ConfigInactive from '@/assets/images/configrationicon-inactive.svg';
|
||||||
import UserActive from '../../assets/images/user-active.svg';
|
import UserActive from '@/assets/images/user-active.svg';
|
||||||
import UserInactive from '../../assets/images/user-inactive.svg';
|
import UserInactive from '@/assets/images/user-inactive.svg';
|
||||||
import ManageSubmissionInactive from '../../assets/images/managesubmission - inactive.svg';
|
import ManageSubmissionInactive from '@/assets/images/managesubmission - inactive.svg';
|
||||||
import BellIconAsset from '../../assets/images/bell.svg';
|
import BellIconAsset from '@/assets/images/bell.svg';
|
||||||
|
|
||||||
const NavItem = ({ label, to, iconActive, iconInactive, end = false }) => (
|
const NavItem = ({ label, to, iconActive, iconInactive, end = false }) => (
|
||||||
<NavLink
|
<NavLink
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Table from '../common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import SearchIcon from '../../assets/images/material-symbols_search-rounded.svg';
|
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
|
||||||
|
|
||||||
const submissions = [
|
const submissions = [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import CaretDownActive from '../../assets/images/caretdown-active.svg';
|
import CaretDownActive from '@/assets/images/caretdown-active.svg';
|
||||||
import CalendarIcon from '../../assets/images/uil_calender.svg';
|
import CalendarIcon from '@/assets/images/uil_calender.svg';
|
||||||
|
|
||||||
const baseInputStyles = {
|
const baseInputStyles = {
|
||||||
default: {
|
default: {
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import CaretLeftIcon from '../../assets/images/caretleft.svg';
|
import CaretLeftIcon from '@/assets/images/caretleft.svg';
|
||||||
import CaretRightIcon from '../../assets/images/caretright.svg';
|
import CaretRightIcon from '@/assets/images/caretright.svg';
|
||||||
import CaretDoubleLeftIcon from '../../assets/images/caretdoubleleft.svg';
|
import CaretDoubleLeftIcon from '@/assets/images/caretdoubleleft.svg';
|
||||||
import CaretDoubleRightIcon from '../../assets/images/caretdoubleright.svg';
|
import CaretDoubleRightIcon from '@/assets/images/caretdoubleright.svg';
|
||||||
|
|
||||||
// Generic, reusable table
|
// Generic, reusable table
|
||||||
// Props:
|
// Props:
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import Table from '../common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import SearchIcon from '../../assets/images/material-symbols_search-rounded.svg';
|
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
|
||||||
import CaretDown from '../../assets/images/caretdown.svg';
|
import CaretDown from '@/assets/images/caretdown.svg';
|
||||||
|
|
||||||
const getStatusClass = (status) => {
|
const getStatusClass = (status) => {
|
||||||
const normalized = String(status || '').toLowerCase();
|
const normalized = String(status || '').toLowerCase();
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import HeaderBar from '../../components/layout/HeaderBar';
|
import HeaderBar from '@/components/layout/HeaderBar';
|
||||||
|
|
||||||
const formatDate = (value) => {
|
const formatDate = (value) => {
|
||||||
if (!value) return '—';
|
if (!value) return '—';
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { NavLink, useNavigate } from 'react-router-dom';
|
import { NavLink, useNavigate } from 'react-router-dom';
|
||||||
import Logo from '../../assets/images/fcsclogo.svg';
|
import Logo from '@/assets/images/fcsclogo.svg';
|
||||||
import SurveyIconActive from '../../assets/images/vector.svg';
|
import SurveyIconActive from '@/assets/images/vector.svg';
|
||||||
import SurveyIconInactive from '../../assets/images/vectorblack.svg';
|
import SurveyIconInactive from '@/assets/images/vectorblack.svg';
|
||||||
import DashboardIconActive from '../../assets/images/cuida_dashboard-outline.svg';
|
import DashboardIconActive from '@/assets/images/cuida_dashboard-outline.svg';
|
||||||
import DashboardIconInactive from '../../assets/images/cuida_dashboard-outline-inactive.svg';
|
import DashboardIconInactive from '@/assets/images/cuida_dashboard-outline-inactive.svg';
|
||||||
import HistoryIconActive from '../../assets/images/mdi_history.svg';
|
import HistoryIconActive from '@/assets/images/mdi_history.svg';
|
||||||
import HistoryIconInactive from '../../assets/images/history.svg';
|
import HistoryIconInactive from '@/assets/images/history.svg';
|
||||||
|
|
||||||
const HeaderBar = () => {
|
const HeaderBar = () => {
|
||||||
const [open, setOpen] = React.useState(false);
|
const [open, setOpen] = React.useState(false);
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import CaretDown from '../../../assets/images/caretdown.svg';
|
import CaretDown from '@/assets/images/caretdown.svg';
|
||||||
import BackVendor from '../../../assets/images/backvector.svg';
|
import BackVendor from '@/assets/images/backvector.svg';
|
||||||
|
|
||||||
const Field = ({ label, placeholder = '', type = 'text', value = '', onChange = () => {}, disabled = false }) => (
|
const Field = ({ label, placeholder = '', type = 'text', value = '', onChange = () => {}, disabled = false }) => (
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@ -4,8 +4,8 @@ import {
|
|||||||
fetchZeroTargetReasons,
|
fetchZeroTargetReasons,
|
||||||
fetchProducts,
|
fetchProducts,
|
||||||
fetchUnits,
|
fetchUnits,
|
||||||
} from '../../../services/masters/masterService.js';
|
} from '@/services/masters/masterService.js';
|
||||||
import CaretDown from '../../../assets/images/caretdown-black.svg';
|
import CaretDown from '@/assets/images/caretdown-black.svg';
|
||||||
|
|
||||||
const Input = ({ placeholder = '', type = 'text', value = '', onChange = () => {} }) => (
|
const Input = ({ placeholder = '', type = 'text', value = '', onChange = () => {} }) => (
|
||||||
<input
|
<input
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Table from '../../common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import BackVendor from '../../../assets/images/caretdown-black.svg';
|
import BackVendor from '@/assets/images/caretdown-black.svg';
|
||||||
|
|
||||||
const Card = ({ title, children }) => (
|
const Card = ({ title, children }) => (
|
||||||
<div className="bg-white w-full rounded-lg shadow-sm ring-1 ring-gray-200">
|
<div className="bg-white w-full rounded-lg shadow-sm ring-1 ring-gray-200">
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import React from 'react'
|
import React from 'react';
|
||||||
import ReactDOM from 'react-dom/client'
|
import ReactDOM from 'react-dom/client';
|
||||||
import App from './App.jsx'
|
import { BrowserRouter } from 'react-router-dom';
|
||||||
import './index.css'
|
import App from '@/App';
|
||||||
import { BrowserRouter } from 'react-router-dom'
|
import '@/index.css';
|
||||||
|
|
||||||
ReactDOM.createRoot(document.getElementById('root')).render(
|
ReactDOM.createRoot(document.getElementById('root')).render(
|
||||||
<React.StrictMode>
|
<React.StrictMode>
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import AdminHeader from '../../components/admin/AdminHeader';
|
import AdminHeader from '@/components/admin/AdminHeader';
|
||||||
import StatCard from '../../components/admin/StatCard';
|
import StatCard from '@/components/admin/StatCard';
|
||||||
import WpfSurveyIcon from '../../assets/images/wpf_survey.svg';
|
import WpfSurveyIcon from '@/assets/images/wpf_survey.svg';
|
||||||
import SubmittedIcon from '../../assets/images/check-circle-fill 1.svg';
|
import SubmittedIcon from '@/assets/images/check-circle-fill 1.svg';
|
||||||
import ApprovedIcon from '../../assets/images/check-circle-fill 1-approved.svg';
|
import ApprovedIcon from '@/assets/images/check-circle-fill 1-approved.svg';
|
||||||
import RejectedIcon from '../../assets/images/warning-circle-fill 1.svg';
|
import RejectedIcon from '@/assets/images/warning-circle-fill 1.svg';
|
||||||
import OverdueIcon from '../../assets/images/warning-fill 1.svg';
|
import OverdueIcon from '@/assets/images/warning-fill 1.svg';
|
||||||
import PendingIcon from '../../assets/images/info-fill 1.svg';
|
import PendingIcon from '@/assets/images/info-fill 1.svg';
|
||||||
import SubmissionTable from '../../components/admin/SubmissionTable';
|
import SubmissionTable from '@/components/admin/SubmissionTable';
|
||||||
|
|
||||||
const AdminDashboard = () => {
|
const AdminDashboard = () => {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import AdminHeader from '../../components/admin/AdminHeader';
|
import AdminHeader from '@/components/admin/AdminHeader';
|
||||||
import AdminUsersContent from './configuration/AdminUsers';
|
import AdminUsersContent from './configuration/AdminUsers';
|
||||||
import CaretUp from '../../assets/images/caret-up.svg';
|
import CaretUp from '@/assets/images/caret-up.svg';
|
||||||
|
|
||||||
const AdminUsersPage = () => {
|
const AdminUsersPage = () => {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import AdminHeader from '../../components/admin/AdminHeader';
|
import AdminHeader from '@/components/admin/AdminHeader';
|
||||||
import QuarterlyWindows from './configuration/QuarterlyWindows';
|
import QuarterlyWindows from '@/pages/Admin/configuration/QuarterlyWindows';
|
||||||
import IsicHsCodes from './configuration/IsicHsCodes';
|
import IsicHsCodes from '@/pages/Admin/configuration/IsicHsCodes';
|
||||||
import UnitMaster from './configuration/UnitMaster';
|
import UnitMaster from '@/pages/Admin/configuration/UnitMaster';
|
||||||
import AdminUsers from './configuration/AdminUsers';
|
import AdminUsers from '@/pages/Admin/configuration/AdminUsers';
|
||||||
import CompanyProfile from './configuration/CompanyProfile';
|
import CompanyProfile from '@/pages/Admin/configuration/CompanyProfile';
|
||||||
import CaretUp from '../../assets/images/caret-up.svg';
|
import CaretUp from '@/assets/images/caret-up.svg';
|
||||||
|
|
||||||
const Configuration = () => {
|
const Configuration = () => {
|
||||||
const tabs = ['Quarterly Windows', 'HS Codes', 'Unit Master', 'Admin Users', 'Company Profile'];
|
const tabs = ['Quarterly Windows', 'HS Codes', 'Unit Master', 'Admin Users', 'Company Profile'];
|
||||||
|
|||||||
@ -1,16 +1,16 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Link, useNavigate, useParams } from 'react-router-dom';
|
import { Link, useNavigate, useParams } from 'react-router-dom';
|
||||||
import AdminHeader from '../../components/admin/AdminHeader';
|
import AdminHeader from '@/components/admin/AdminHeader';
|
||||||
import CaretUp from '../../assets/images/caret-up.svg';
|
import CaretUp from '@/assets/images/caret-up.svg';
|
||||||
import EstablishmentIcon from '../../assets/images/establishment.svg';
|
import EstablishmentIcon from '@/assets/images/establishment.svg';
|
||||||
import EstablishmentIdIcon from '../../assets/images/establishmentid.svg';
|
import EstablishmentIdIcon from '@/assets/images/establishmentid.svg';
|
||||||
import EmailIcon from '../../assets/images/emailid.svg';
|
import EmailIcon from '@/assets/images/emailid.svg';
|
||||||
import EmiratesIcon from '../../assets/images/emirates.svg';
|
import EmiratesIcon from '@/assets/images/emirates.svg';
|
||||||
import TotalEmployeesIcon from '../../assets/images/totalemployess.svg';
|
import TotalEmployeesIcon from '@/assets/images/totalemployess.svg';
|
||||||
import MaleEmployeesIcon from '../../assets/images/maleemployes.svg';
|
import MaleEmployeesIcon from '@/assets/images/maleemployes.svg';
|
||||||
import FemaleEmployeesIcon from '../../assets/images/femaleemployess.svg';
|
import FemaleEmployeesIcon from '@/assets/images/femaleemployess.svg';
|
||||||
import UaeIcon from '../../assets/images/uae.svg';
|
import UaeIcon from '@/assets/images/uae.svg';
|
||||||
import NonUaeIcon from '../../assets/images/nonuae.svg';
|
import NonUaeIcon from '@/assets/images/nonuae.svg';
|
||||||
|
|
||||||
const establishmentDetails = [
|
const establishmentDetails = [
|
||||||
{ label: 'Establishment Name', value: 'ABC Manufacturing LLC' },
|
{ label: 'Establishment Name', value: 'ABC Manufacturing LLC' },
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Link, useNavigate } from 'react-router-dom';
|
import { Link, useNavigate } from 'react-router-dom';
|
||||||
import AdminHeader from '../../components/admin/AdminHeader';
|
import AdminHeader from '@/components/admin/AdminHeader';
|
||||||
import Table from '../../components/common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import SearchIcon from '../../assets/images/material-symbols_search-rounded.svg';
|
import { SelectField } from '@/components/common/FormControls';
|
||||||
import DownloadIcon from '../../assets/images/downloadsimple.svg';
|
import { getSubmissions } from '@/services/admin/submission';
|
||||||
import CaretUp from '../../assets/images/caret-up.svg';
|
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
|
||||||
import { SelectField } from '../../components/common/FormControls';
|
import DownloadIcon from '@/assets/images/downloadsimple.svg';
|
||||||
import { getSubmissions } from '../../services/admin/submission.js';
|
import CaretUp from '@/assets/images/caret-up.svg';
|
||||||
|
|
||||||
const STATUS_VARIANTS = {
|
const STATUS_VARIANTS = {
|
||||||
Approved: { background: '#F3FAF4', text: '#2F663C', border: '#F3FAF4' },
|
Approved: { background: '#F3FAF4', text: '#2F663C', border: '#F3FAF4' },
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Table from '../../../components/common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import SearchIcon from '../../../assets/images/material-symbols_search-rounded.svg';
|
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
|
||||||
import ExportIcon from '../../../assets/images/downloadsimple.svg';
|
import ExportIcon from '@/assets/images/downloadsimple.svg';
|
||||||
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
|
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
|
||||||
import PencilActive from '../../../assets/images/pencilsimple.svg';
|
import PencilActive from '@/assets/images/pencilsimple.svg';
|
||||||
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
|
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
|
||||||
import TrashActive from '../../../assets/images/trash - active.svg';
|
import TrashActive from '@/assets/images/trash - active.svg';
|
||||||
import TrashInactive from '../../../assets/images/trash - inactive.svg';
|
import TrashInactive from '@/assets/images/trash - inactive.svg';
|
||||||
import AdminUserIcon from '../../../assets/images/usergear.svg';
|
import AdminUserIcon from '@/assets/images/usergear.svg';
|
||||||
import ActiveUserIcon from '../../../assets/images/active-user.svg';
|
import ActiveUserIcon from '@/assets/images/active-user.svg';
|
||||||
import InactiveUserIcon from '../../../assets/images/inactive-user.svg';
|
import InactiveUserIcon from '@/assets/images/inactive-user.svg';
|
||||||
import ResetPasswordIcon from '../../../assets/images/hugeicons_reset-password.svg';
|
import ResetPasswordIcon from '@/assets/images/hugeicons_reset-password.svg';
|
||||||
import ResetPasswordInactiveIcon from '../../../assets/images/hugeicons_reset-password-inactive.svg';
|
import ResetPasswordInactiveIcon from '@/assets/images/hugeicons_reset-password-inactive.svg';
|
||||||
|
|
||||||
const SummaryCard = ({ label, count, icon, iconBg = '#FDF7EB' }) => (
|
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)]">
|
<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)]">
|
||||||
|
|||||||
@ -1,25 +1,25 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Table from '../../../components/common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import Loader from '../../../components/common/Loader';
|
import Loader from '@/components/common/Loader';
|
||||||
import { TextField, SelectField, PhoneField } from '../../../components/common/FormControls';
|
import { TextField, SelectField, PhoneField } from '@/components/common/FormControls';
|
||||||
import { fetchEmirates, fetchCityTowns } from '../../../services/masters/masterService';
|
import { fetchEmirates, fetchCityTowns } from '@/services/masters/masterService';
|
||||||
import {
|
import {
|
||||||
createEstablishment,
|
createEstablishment,
|
||||||
fetchEstablishments,
|
fetchEstablishments,
|
||||||
fetchEstablishmentDetail,
|
fetchEstablishmentDetail,
|
||||||
updateEstablishment,
|
updateEstablishment,
|
||||||
deleteEstablishment,
|
deleteEstablishment,
|
||||||
} from '../../../services/establishments/establishmentService';
|
} from '@/services/establishments/establishmentService';
|
||||||
import SearchIcon from '../../../assets/images/material-symbols_search-rounded.svg';
|
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
|
||||||
import DownloadIcon from '../../../assets/images/downloadsimple.svg';
|
import DownloadIcon from '@/assets/images/downloadsimple.svg';
|
||||||
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
|
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
|
||||||
import PencilActive from '../../../assets/images/pencilsimple.svg';
|
import PencilActive from '@/assets/images/pencilsimple.svg';
|
||||||
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
|
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
|
||||||
import TrashActive from '../../../assets/images/trash - active.svg';
|
import TrashActive from '@/assets/images/trash - active.svg';
|
||||||
import TrashInactive from '../../../assets/images/trash - inactive.svg';
|
import TrashInactive from '@/assets/images/trash - inactive.svg';
|
||||||
import ResetPasswordActive from '../../../assets/images/hugeicons_reset-password.svg';
|
import ResetPasswordActive from '@/assets/images/hugeicons_reset-password.svg';
|
||||||
import ResetPasswordInactive from '../../../assets/images/hugeicons_reset-password-inactive.svg';
|
import ResetPasswordInactive from '@/assets/images/hugeicons_reset-password-inactive.svg';
|
||||||
import DeleteIcon from '../../../assets/images/delete.svg';
|
import DeleteIcon from '@/assets/images/delete.svg';
|
||||||
|
|
||||||
const PASSWORD_POLICY = {
|
const PASSWORD_POLICY = {
|
||||||
minLength: 12,
|
minLength: 12,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { SelectField, TextField } from '../../../components/common/FormControls';
|
import { SelectField, TextField } from '@/components/common/FormControls';
|
||||||
|
|
||||||
const initialTemplate = {
|
const initialTemplate = {
|
||||||
subject: 'IPI Survey Submission Reminder - {{quarter}}',
|
subject: 'IPI Survey Submission Reminder - {{quarter}}',
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Table from '../../../components/common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import { TextField, SelectField } from '../../../components/common/FormControls';
|
import { TextField, SelectField } from '@/components/common/FormControls';
|
||||||
import SearchIcon from '../../../assets/images/material-symbols_search-rounded.svg';
|
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
|
||||||
import ExportIcon from '../../../assets/images/downloadsimple.svg';
|
import ExportIcon from '@/assets/images/downloadsimple.svg';
|
||||||
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
|
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
|
||||||
import PencilActive from '../../../assets/images/pencilsimple.svg';
|
import PencilActive from '@/assets/images/pencilsimple.svg';
|
||||||
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
|
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
|
||||||
import TrashActive from '../../../assets/images/trash - active.svg';
|
import TrashActive from '@/assets/images/trash - active.svg';
|
||||||
import TrashInactive from '../../../assets/images/trash - inactive.svg';
|
import TrashInactive from '@/assets/images/trash - inactive.svg';
|
||||||
|
|
||||||
const establishmentsSeed = [
|
const establishmentsSeed = [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,15 +1,15 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Table from '../../../components/common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import DownloadIcon from '../../../assets/images/downloadsimple.svg';
|
import DownloadIcon from '@/assets/images/downloadsimple.svg';
|
||||||
import UploadImportIcon from '../../../assets/images/upload-import.svg';
|
import UploadImportIcon from '@/assets/images/upload-import.svg';
|
||||||
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
|
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
|
||||||
import PencilActive from '../../../assets/images/pencilsimple.svg';
|
import PencilActive from '@/assets/images/pencilsimple.svg';
|
||||||
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
|
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
|
||||||
import TrashActive from '../../../assets/images/trash - active.svg';
|
import TrashActive from '@/assets/images/trash - active.svg';
|
||||||
import TrashInactive from '../../../assets/images/trash - inactive.svg';
|
import TrashInactive from '@/assets/images/trash - inactive.svg';
|
||||||
import DeleteIcon from '../../../assets/images/delete.svg';
|
import DeleteIcon from '@/assets/images/delete.svg';
|
||||||
import StatusBadge from '../../../components/common/StatusBadge';
|
import StatusBadge from '@/components/common/StatusBadge';
|
||||||
import { TextField, SelectField } from '../../../components/common/FormControls';
|
import { TextField, SelectField } from '@/components/common/FormControls';
|
||||||
|
|
||||||
const createEmptyCodeForm = () => ({
|
const createEmptyCodeForm = () => ({
|
||||||
code: '',
|
code: '',
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Table from '../../../components/common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import DownloadIcon from '../../../assets/images/downloadsimple.svg';
|
import { TextField, SelectField, DateField } from '@/components/common/FormControls';
|
||||||
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
|
import StatusBadge from '@/components/common/StatusBadge';
|
||||||
import PencilActive from '../../../assets/images/pencilsimple.svg';
|
import DownloadIcon from '@/assets/images/downloadsimple.svg';
|
||||||
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
|
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
|
||||||
import TrashActive from '../../../assets/images/trash - active.svg';
|
import PencilActive from '@/assets/images/pencilsimple.svg';
|
||||||
import TrashInactive from '../../../assets/images/trash - inactive.svg';
|
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
|
||||||
import DeleteIcon from '../../../assets/images/delete.svg';
|
import TrashActive from '@/assets/images/trash - active.svg';
|
||||||
import CaretDownActive from '../../../assets/images/caretdown-active.svg';
|
import TrashInactive from '@/assets/images/trash - inactive.svg';
|
||||||
import SearchIcon from '../../../assets/images/material-symbols_search-rounded.svg';
|
import DeleteIcon from '@/assets/images/delete.svg';
|
||||||
import CaretDown from '../../../assets/images/caretdown-black.svg';
|
import CaretDownActive from '@/assets/images/caretdown-active.svg';
|
||||||
import { TextField, SelectField, DateField } from '../../../components/common/FormControls';
|
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
|
||||||
import StatusBadge from '../../../components/common/StatusBadge';
|
import CaretDown from '@/assets/images/caretdown-black.svg';
|
||||||
|
|
||||||
const createEmptyQuarterForm = () => ({
|
const createEmptyQuarterForm = () => ({
|
||||||
establishment: '',
|
establishment: '',
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { TextField } from '../../../components/common/FormControls';
|
import { TextField } from '@/components/common/FormControls';
|
||||||
|
|
||||||
const SubmissionDeadlines = () => {
|
const SubmissionDeadlines = () => {
|
||||||
const [form, setForm] = React.useState({
|
const [form, setForm] = React.useState({
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Table from '../../../components/common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import DownloadIcon from '../../../assets/images/downloadsimple.svg';
|
import DownloadIcon from '@/assets/images/downloadsimple.svg';
|
||||||
import AddIcon from '../../../assets/images/ic_baseline-plus.svg';
|
import AddIcon from '@/assets/images/ic_baseline-plus.svg';
|
||||||
import PencilActive from '../../../assets/images/pencilsimple.svg';
|
import PencilActive from '@/assets/images/pencilsimple.svg';
|
||||||
import PencilInactive from '../../../assets/images/pencilsimple-inactive.svg';
|
import PencilInactive from '@/assets/images/pencilsimple-inactive.svg';
|
||||||
import TrashActive from '../../../assets/images/trash - active.svg';
|
import TrashActive from '@/assets/images/trash - active.svg';
|
||||||
import TrashInactive from '../../../assets/images/trash - inactive.svg';
|
import TrashInactive from '@/assets/images/trash - inactive.svg';
|
||||||
import DeleteIcon from '../../../assets/images/delete.svg';
|
import DeleteIcon from '@/assets/images/delete.svg';
|
||||||
import StatusBadge from '../../../components/common/StatusBadge';
|
import StatusBadge from '@/components/common/StatusBadge';
|
||||||
import { TextField, SelectField } from '../../../components/common/FormControls';
|
import { TextField, SelectField } from '@/components/common/FormControls';
|
||||||
import CaretDownIcon from '../../../assets/images/caretdown-active.svg';
|
import CaretDownIcon from '@/assets/images/caretdown-active.svg';
|
||||||
import RectangleIcon from '../../../assets/images/rectangle.svg';
|
import RectangleIcon from '@/assets/images/rectangle.svg';
|
||||||
import CheckboxIcon from '../../../assets/images/checkbox.svg';
|
import CheckboxIcon from '@/assets/images/checkbox.svg';
|
||||||
|
|
||||||
const createEmptyUnitForm = () => ({
|
const createEmptyUnitForm = () => ({
|
||||||
unitName: '',
|
unitName: '',
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React from "react";
|
import React from 'react';
|
||||||
import Logo from "../../assets/images/fcsclogo.svg";
|
import { useNavigate, useLocation } from 'react-router-dom';
|
||||||
import { useNavigate, useLocation } from "react-router-dom";
|
import Logo from '@/assets/images/fcsclogo.svg';
|
||||||
import apiClient from "../../services/api/apiClient.js";
|
import apiClient from '@/services/api/apiClient';
|
||||||
|
|
||||||
const ChangePassword = () => {
|
const ChangePassword = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { WelcomeSection } from '../../components/dashboard/WelcomeSection';
|
import { WelcomeSection } from '@/components/dashboard/WelcomeSection';
|
||||||
import { SurveyStatus } from '../../components/dashboard/SurveyStatus';
|
import { SurveyStatus } from '@/components/dashboard/SurveyStatus';
|
||||||
import { SubmissionHistory } from '../../components/dashboard/SubmissionHistory';
|
import { SubmissionHistory } from '@/components/dashboard/SubmissionHistory';
|
||||||
import { fetchEstablishmentDashboard } from '../../services/establishments/establishmentService.js';
|
import { fetchEstablishmentDashboard } from '@/services/establishments/establishmentService.js';
|
||||||
|
|
||||||
const Dashboard = () => {
|
const Dashboard = () => {
|
||||||
const [dashboardData, setDashboardData] = React.useState(null);
|
const [dashboardData, setDashboardData] = React.useState(null);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Logo from '../../assets/images/fcsclogo.svg';
|
|
||||||
import { useNavigate } from 'react-router-dom';
|
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 ForgotPassword = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import Table from '../../components/common/Table';
|
import Table from '@/components/common/Table';
|
||||||
import HeaderBar from '../../components/layout/HeaderBar';
|
import HeaderBar from '@/components/layout/HeaderBar';
|
||||||
import { fetchSubmissionHistory } from '../../services/submissions/submissionService.js';
|
import { fetchSubmissionHistory } from '@/services/submissions/submissionService.js';
|
||||||
import SearchIcon from '../../assets/images/material-symbols_search-rounded.svg';
|
import SearchIcon from '@/assets/images/material-symbols_search-rounded.svg';
|
||||||
import CaretDown from '../../assets/images/caretdown.svg';
|
import CaretDown from '@/assets/images/caretdown.svg';
|
||||||
|
|
||||||
const Badge = ({ variant = 'default', children }) => {
|
const Badge = ({ variant = 'default', children }) => {
|
||||||
const styles = {
|
const styles = {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Logo from '../../assets/images/fcsclogo.svg';
|
|
||||||
import { useNavigate } from 'react-router-dom';
|
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 Login = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from 'react';
|
||||||
import Logo from "../assets/images/fcsclogo.svg";
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { useNavigate } from "react-router-dom";
|
import Logo from '@/assets/images/fcsclogo.svg';
|
||||||
import apiClient from "../services/api/apiClient.js";
|
import apiClient from '@/services/api/apiClient';
|
||||||
|
|
||||||
const PublicContactForm = () => {
|
const PublicContactForm = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useLocation, useNavigate } from 'react-router-dom';
|
import { useLocation, useNavigate } from 'react-router-dom';
|
||||||
import { submitSurvey, fetchSubmissionDetail } from '../../services/submissions/submissionService.js';
|
import { submitSurvey, fetchSubmissionDetail } from '@/services/submissions/submissionService';
|
||||||
import { fetchEstablishmentDetail } from '../../services/establishments/establishmentService.js';
|
import { fetchEstablishmentDetail } from '@/services/establishments/establishmentService';
|
||||||
import EstablishmentInfo from '../../components/survey/EstablishmentInfo/EstablishmentInfo';
|
import EstablishmentInfo from '@/components/survey/EstablishmentInfo/EstablishmentInfo';
|
||||||
import HeaderBar from '../../components/layout/HeaderBar';
|
import HeaderBar from '@/components/layout/HeaderBar';
|
||||||
import ProductData from '../../components/survey/ProductData/ProductData';
|
import ProductData from '@/components/survey/ProductData/ProductData';
|
||||||
import ReviewSubmit from '../../components/survey/ReviewSubmit/ReviewSubmit';
|
import ReviewSubmit from '@/components/survey/ReviewSubmit/ReviewSubmit';
|
||||||
import CheckCircleActive from '../../assets/images/circleframe.svg';
|
import CheckCircleActive from '@/assets/images/circleframe.svg';
|
||||||
|
|
||||||
const createEmptyProduct = (id) => ({
|
const createEmptyProduct = (id) => ({
|
||||||
id,
|
id,
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Routes, Route } from 'react-router-dom';
|
import { Routes, Route } from 'react-router-dom';
|
||||||
import Dashboard from '../pages/Dashboard/Dashboard';
|
import Dashboard from '@/pages/Dashboard/Dashboard';
|
||||||
import Survey from '../pages/Survey/Survey';
|
import Survey from '@/pages/Survey/Survey';
|
||||||
import History from '../pages/History/History';
|
import History from '@/pages/History/History';
|
||||||
import Configuration from '../pages/Admin/Configuration';
|
import Configuration from '@/pages/Admin/Configuration';
|
||||||
import AdminDashboard from '../pages/Admin/AdminDashboard';
|
import AdminDashboard from '@/pages/Admin/AdminDashboard';
|
||||||
|
|
||||||
const AppRoutes = () => {
|
const AppRoutes = () => {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import apiClient from '../api/apiClient.js';
|
import apiClient from '@/services/api/apiClient';
|
||||||
|
|
||||||
/** Fetch all submissions for the listing page */
|
/** Fetch all submissions for the listing page */
|
||||||
export const getSubmissions = async () => {
|
export const getSubmissions = async () => {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import apiClient from './apiClient.js';
|
import apiClient from '@/services/api/apiClient';
|
||||||
|
|
||||||
export const getRequest = (url, config = {}) => apiClient.get(url, config);
|
export const getRequest = (url, config = {}) => apiClient.get(url, config);
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import apiClient from '../api/apiClient.js';
|
import apiClient from '@/services/api/apiClient';
|
||||||
|
|
||||||
export const login = async ({ email, password }) => {
|
export const login = async ({ email, password }) => {
|
||||||
const response = await apiClient.post('/auth/login', { email, password }, { skipAuth: true });
|
const response = await apiClient.post('/auth/login', { email, password }, { skipAuth: true });
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { getRequest, postRequest, putRequest, deleteRequest } from '../api/CommonService.js';
|
import { getRequest, postRequest, putRequest, deleteRequest } from '@/services/api/CommonService';
|
||||||
import resolveEstablishmentId from '../utils/establishment.js';
|
import resolveEstablishmentId from '@/services/utils/establishment';
|
||||||
|
|
||||||
const dashboardEndpoint = '/establishment_dashboard';
|
const dashboardEndpoint = '/establishment_dashboard';
|
||||||
const establishmentsEndpoint = '/establishments';
|
const establishmentsEndpoint = '/establishments';
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { getRequest } from '../api/CommonService.js';
|
import { getRequest } from '@/services/api/CommonService';
|
||||||
|
|
||||||
const endpoints = {
|
const endpoints = {
|
||||||
variationReasons: '/variation_reasons',
|
variationReasons: '/variation_reasons',
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { getRequest, postRequest } from '../api/CommonService.js';
|
import { getRequest, postRequest } from '@/services/api/CommonService';
|
||||||
import resolveEstablishmentId from '../utils/establishment.js';
|
import resolveEstablishmentId from '@/services/utils/establishment';
|
||||||
|
|
||||||
const endpoint = '/submissions';
|
const endpoint = '/submissions';
|
||||||
|
|
||||||
|
|||||||
@ -2,11 +2,11 @@ export {
|
|||||||
submitSurvey,
|
submitSurvey,
|
||||||
fetchSubmissionHistory,
|
fetchSubmissionHistory,
|
||||||
fetchSubmissionDetail,
|
fetchSubmissionDetail,
|
||||||
} from '../submissions/submissionService.js';
|
} from '@/services/submissions/submissionService';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
fetchEstablishmentDashboard,
|
fetchEstablishmentDashboard,
|
||||||
fetchEstablishmentDetail,
|
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';
|
||||||
|
|||||||
@ -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) => {
|
export const resolveEstablishmentId = (inputId) => {
|
||||||
if (typeof inputId === 'number' && Number.isFinite(inputId)) {
|
if (typeof inputId === 'number' && Number.isFinite(inputId)) {
|
||||||
return inputId;
|
return inputId;
|
||||||
|
|||||||
25
ipi-survey-platform/tsconfig.json
Normal file
25
ipi-survey-platform/tsconfig.json
Normal 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"]
|
||||||
|
}
|
||||||
@ -1,7 +1,19 @@
|
|||||||
import { defineConfig } from 'vite'
|
import { defineConfig } from 'vite';
|
||||||
import react from '@vitejs/plugin-react'
|
import react from '@vitejs/plugin-react';
|
||||||
|
import path from 'path';
|
||||||
|
|
||||||
// https://vite.dev/config/
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [react()],
|
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',
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user