Commit 480f6aa8 authored by janithgamage1.ed's avatar janithgamage1.ed

fix: update

Desc : update project
parent 826cba1c
import { MouseEvent, useMemo, useState } from 'react';
import { MouseEvent, useEffect, useMemo, useState } from 'react';
// material-ui
import {
......@@ -34,9 +34,15 @@ import { DeleteTwoTone, EditTwoTone, EyeTwoTone, PlusOutlined } from '@ant-desig
//types
import { PopupTransition } from 'components/@extended/Transitions';
import status from 'data/status';
import AddEditCurriculum from 'sections/parameters/curriculum-management/AddEditCurriculum';
import AlertCurriculumDelete from 'sections/parameters/curriculum-management/AlertCurriculumDelete';
import { ReactTableProps, curriculumProps, dataProps } from './types/types';
import { useDispatch, useSelector } from 'store';
import { fetchCurriculums, toInitialState } from 'store/reducers/curriculum';
import { openSnackbar } from 'store/reducers/snackbar';
import { Curriculums } from 'types/curriculum';
import { ReactTableProps, curriculumProps } from './types/types';
import curriculumLevels from 'data/curriculumLevels';
// ==============================|| REACT TABLE ||============================== //
......@@ -122,9 +128,14 @@ function ReactTable({ columns, data, handleAddEdit }: ReactTableProps) {
// ==============================|| List ||============================== //
const List = () => {
const theme = useTheme();
const dispatch = useDispatch();
const { curriculums, error, success, isLoading } = useSelector(state => state.curriculum);
// table
const data: dataProps[] = []
// const data: dataProps[] = []
// table
const [data, setData] = useState<Curriculums[]>([])
const columns = useMemo(
() =>
......@@ -150,23 +161,76 @@ const List = () => {
{
Header: 'Curriculum Code',
accessor: 'curriculumCode'
},
},
{
Header: 'Curriculum LVL',
accessor: 'curriculumLevel'
},
accessor: 'curriculumLevel',
Cell: ({ row }: { row: Row }) => {
if (row.values.curriculumLevel === undefined || row.values.curriculumLevel === null || row.values.curriculumLevel === '') {
return <>-</>
}
if (typeof row.values.curriculumLevel === 'string') {
return <>{row.values.curriculumLevel}</>;
}
if (typeof row.values.curriculumLevel === 'number') {
return <>{curriculumLevels.find(curriculumLevel => curriculumLevel.id === row.values.curriculumLevel)?.description || "-"}</>;
}
// Handle any other data types if necessary
return <>-</>;
}
},
{
Header: 'Curriculum Name',
accessor: 'curriculumTitle'
},
accessor: 'curriculumTitle',
Cell: ({ row }: { row: Row }) => {
if (row.values.curriculumTitle === undefined || row.values.curriculumTitle === null || row.values.curriculumTitle === '') {
return <>-</>
}
if (typeof row.values.curriculumTitle === 'string') {
return <>{row.values.curriculumTitle}</>;
}
if (typeof row.values.curriculumTitle === 'number') {
return <>{row.values.curriculumTitle || "-"}</>;
}
// Handle any other data types if necessary
return <>-</>;
}
},
{
Header: 'Status',
accessor: 'status'
},
accessor: 'status',
className: 'cell-center',
Cell: ({ row }: { row: Row }) => {
if (row.values.status === undefined || row.values.status === null || row.values.status === '') {
return <>-</>
}
if (typeof row.values.status === 'string') {
return <>{row.values.status}</>;
}
if (typeof row.values.status === 'number') {
return <>{status.find(status => status.id === row.values.status)?.description || "-"}</>;
}
// Handle any other data types if necessary
return <>-</>;
}
},
{
Header: 'Created By',
accessor: 'createdBy'
},
accessor: 'createdBy',
Cell: ({ row }: { row: Row }) => {
if (row.values.createdBy === undefined || row.values.createdBy === null || row.values.createdBy === '') {
return <>-</>
}
if (typeof row.values.createdBy === 'string') {
return <>{row.values.createdBy}</>;
}
if (typeof row.values.createdBy === 'number') {
return <>{row.values.createdBy}</>;
}
// Handle any other data types if necessary
return <>-</>;
}
},
{
id: "actions",
Header: 'Actions',
......@@ -235,12 +299,65 @@ const List = () => {
//alert model
const [openAlert, setOpenAlert] = useState(false);
const [curriculumId, setCurriculumId] = useState<number | string | undefined>(undefined)
const [curriculumId, setCurriculumId] = useState<number | string | undefined>(undefined)
const handleAlertClose = () => {
setOpenAlert(!openAlert);
};
/**
* API Config
* Tutorial API
*/
useEffect(() => {
dispatch(fetchCurriculums());
}, [dispatch]);
useEffect(() => {
setData(curriculums);
}, [curriculums])
// handel error
useEffect(() => {
if (error != null) {
dispatch(
openSnackbar({
open: true,
//@ts-ignore
message: error ? error.Message : "Something went wrong ...",
variant: 'alert',
alert: {
color: 'error'
},
close: true
})
);
dispatch(toInitialState())
}
}, [error])
// handel success
useEffect(() => {
if (success != null) {
dispatch(
openSnackbar({
open: true,
message: success,
variant: 'alert',
alert: {
color: 'success'
},
close: true
})
);
dispatch(toInitialState())
}
}, [success])
if (isLoading) {
return <div>Loading...</div>;
}
return (
<>
<MainCard content={false}>
......
import { Column } from 'react-table';
import { Curriculums } from 'types/curriculum';
export interface dataProps {
_id: number | string | undefined;
......@@ -17,7 +18,7 @@ export interface dataProps {
export interface ReactTableProps {
columns: Column[]
data: dataProps[]
data: Curriculums[]
handleAddEdit: () => void
}
......
import { Column } from 'react-table';
import { Tutorials } from 'types/tutorial';
export interface dataProps {
_id: number | string | undefined;
......@@ -16,7 +17,7 @@ export interface dataProps {
export interface ReactTableProps {
columns: Column[]
data: dataProps[]
data: Tutorials[]
handleAddEdit: () => void
}
......
......@@ -7,6 +7,7 @@ import storage from 'redux-persist/lib/storage';
import calendar from './calendar';
import cartReducer from './cart';
import chat from './chat';
import curriculum from './curriculum';
import ingredient from './ingredient';
import invoice from './invoice';
import kanban from './kanban';
......@@ -16,6 +17,8 @@ import nutrition from './nutrition';
import productReducer from './product';
import snackbar from './snackbar';
import subscription from './subscription';
import tutorial from './tutorial';
// ==============================|| COMBINE REDUCERS ||============================== //
......@@ -39,7 +42,9 @@ const reducers = combineReducers({
nutrition,
ingredient,
subscription,
marksCalculator
marksCalculator,
tutorial,
curriculum
});
export default reducers;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment