-
+
diff --git a/src/components/Status/Status.component.tsx b/src/components/Status/Status.component.tsx
index 9aced59..b929baa 100644
--- a/src/components/Status/Status.component.tsx
+++ b/src/components/Status/Status.component.tsx
@@ -1,5 +1,13 @@
import { DOCUMENT_STATUS, REQUEST_STATUS } from '@/constants/status';
-import { IBorrowRequest, IDocument, IFolder, ILocker, IRoom, IUser } from '@/types/item';
+import {
+ IBorrowRequest,
+ IDocument,
+ IFolder,
+ IImportRequest,
+ ILocker,
+ IRoom,
+ IUser,
+} from '@/types/item';
import clsx from 'clsx';
import { FC, HTMLAttributes } from 'react';
@@ -9,7 +17,7 @@ interface IStatusBorrowProps {
}
interface IStatusDocumentProps {
- item: IDocument;
+ item: IDocument | IImportRequest;
type: 'document';
}
diff --git a/src/config/admin_create_template.tsx b/src/config/admin_create_template.tsx
deleted file mode 100644
index 785cac8..0000000
--- a/src/config/admin_create_template.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import { GetDepartmentsResponse } from '@/types/response';
-import axiosClient from '@/utils/axiosClient';
-import { useQuery } from 'react-query';
-
-const ADMIN_CREATE_TEMPLATE = {
- employees: {
- left: [
- {
- title: 'General information',
- fields: [
- {
- type: 'text',
- label: 'Username',
- placeholder: 'Enter username',
- required: true,
- },
- {
- type: 'group',
- fields: [
- {
- type: 'text',
- label: 'First name',
- placeholder: 'A',
- required: true,
- },
- {
- type: 'text',
- label: 'Last name',
- placeholder: 'Nguyen vane',
- required: true,
- },
- ],
- },
- {
- type: 'select',
- label: 'Department',
- placeholder: 'Select department',
- required: true,
- data: async () => {
- const { data } = await axiosClient.get
('/departments');
- return data.data.map((department) => ({
- label: department.name,
- value: department.id,
- }));
- },
- },
- ],
- },
- ],
- },
- rooms: {
- left: [],
- right: [],
- },
-};
-
-export type TemplateKey = keyof typeof ADMIN_CREATE_TEMPLATE;
-
-export default ADMIN_CREATE_TEMPLATE;
diff --git a/src/constants/routes.ts b/src/constants/routes.ts
index faea0ab..5f44248 100644
--- a/src/constants/routes.ts
+++ b/src/constants/routes.ts
@@ -13,8 +13,11 @@ export const AUTH_ROUTES = {
REQUEST: '/requests/:requestId',
NEW_REQUEST: '/requests/create',
RETURNS: '/returns',
- IMPORT: '/import',
- DRIVE: '/digital',
+ NEW_IMPORT: '/import/create',
+ DIGITAL: '/digital',
+ DRIVE: '/digital/drive',
+ DRIVE_SHARED: '/digital/shared',
+ DRIVE_TRASH: '/digital/trash',
EMPLOYEES: '/employees',
EMPLOYEES_MANAGE: '/employees/manage',
EMPLOYEE: '/employees/manage/:empId',
@@ -28,12 +31,18 @@ export const AUTH_ROUTES = {
STAFF: '/staffs/manage/:staffId',
NEW_STAFF: '/staffs/create',
DEPARTMENTS: '/departments',
- DEPARTMENT: '/departments/:departmentId',
+ DEPARTMENTS_MANAGE: '/departments/manage',
+ DEPARTMENT: '/departments/manage/:departmentId',
NEW_DEPARTMENT: '/departments/create',
+ IMPORT_ID: '/import/manage/:importId',
+ IMPORT_MANAGE: '/import/manage',
+ IMPORT: '/import',
+ PROFILE: '/profile',
};
export const UNAUTH_ROUTES = {
AUTH: '/auth',
+ CALLBACK: '/reset',
};
export type AUTH_ROUTES_KEY = keyof typeof AUTH_ROUTES;
diff --git a/src/constants/status.ts b/src/constants/status.ts
index 6a75499..b867d0b 100644
--- a/src/constants/status.ts
+++ b/src/constants/status.ts
@@ -7,6 +7,7 @@ export const REQUEST_STATUS = {
Returned: { status: 'Returned', color: 'bg-primary' },
Lost: { status: 'Lost', color: 'bg-black' },
NotProcessable: { status: 'NotProcessable', color: 'bg-black' },
+ Overdue: { status: 'Overdue', color: 'bg-red-500' },
};
export type REQUEST_STATUS_KEY = keyof typeof REQUEST_STATUS;
@@ -28,6 +29,30 @@ export const DOCUMENT_STATUS = {
status: 'Lost',
color: 'bg-black',
},
+ Pending: {
+ status: 'Pending',
+ color: 'bg-yellow-500',
+ },
+ Rejected: {
+ status: 'Rejected',
+ color: 'bg-red-500',
+ },
+ Approved: {
+ status: 'Approved',
+ color: 'bg-green-500',
+ },
+ Assigned: {
+ status: 'Assigned',
+ color: 'bg-blue-500',
+ },
+ CheckedIn: {
+ status: 'CheckedIn',
+ color: 'bg-primary',
+ },
+ Overdue: {
+ status: 'Overdue',
+ color: 'bg-red-500',
+ },
};
-export type DOCUMENT_STATUS_KEY = keyof typeof DOCUMENT_STATUS;
\ No newline at end of file
+export type DOCUMENT_STATUS_KEY = keyof typeof DOCUMENT_STATUS;
diff --git a/src/containers/ImportDocumentContainer/ImportDocumentContainer.tsx b/src/containers/ImportDocumentContainer/ImportDocumentContainer.tsx
index e03dee4..ee6a636 100644
--- a/src/containers/ImportDocumentContainer/ImportDocumentContainer.tsx
+++ b/src/containers/ImportDocumentContainer/ImportDocumentContainer.tsx
@@ -18,8 +18,8 @@ import { AxiosError, AxiosResponse } from 'axios';
import useEmptyContainers from '@/hooks/useEmptyContainers';
import useDocumentTypes from '@/hooks/useDocumentTypes';
import TextareaWithLabel from '@/components/InputWithLabel/TextareaWithLabel.component';
-import FileInput from '@/components/FileInput/FileInput.component';
-import ImagePreviewer from '@/components/ImagePreviewer/ImagePreviewer.component';
+// import FileInput from '@/components/FileInput/FileInput.component';
+// import ImagePreviewer from '@/components/ImagePreviewer/ImagePreviewer.component';
import { getUser } from '@/utils/services/getUser';
const RequiredValues = {
@@ -62,19 +62,38 @@ const ImportDocumentContainer = () => {
});
const { availableFolders, availableLockers, containerRefetch } = useEmptyContainers({
- roomId: user?.department.roomId || '',
+ roomId: user?.roomId || '',
});
const { documentTypes, typesRefetch } = useDocumentTypes();
const [openScan, setOpenScan] = useState(false);
- const [data, setData] = useState([]);
+ // const [data, setData] = useState([]);
const onSubmit = async (
values: FormValues,
{ setSubmitting, setFieldError }: FormikHelpers
) => {
try {
+ // const formData = new FormData();
+ // formData.set('Name', values.title);
+ // formData.set('Path', '/');
+ // formData.set('isDirectory', 'true');
+ // await axiosClient.post('/entries', formData, {
+ // headers: { 'Content-Type': 'multipart/form-data' },
+ // });
+ // await Promise.all(
+ // values.files.map((file) => {
+ // const fileData = new FormData();
+ // fileData.set('Name', file.name);
+ // fileData.set('Path', `/${values.title}`);
+ // fileData.set('File', file);
+ // fileData.set('isDirectory', 'false');
+ // return axiosClient.post('/entries', fileData, {
+ // headers: { 'Content-Type': 'multipart/form-data' },
+ // });
+ // })
+ // );
mutation.mutate(
{
title: values.title,
@@ -127,7 +146,7 @@ const ImportDocumentContainer = () => {
if (!user) {
setFieldError('id', 'User not found');
setFieldValue('name', '', false);
- } else setFieldValue('name', `${user.data.firstName} ${user.data.lastName}`, false);
+ } else setFieldValue('name', `${user.data.firstName} ${user.data.lastName}`, true);
};
useEffect(() => {
@@ -294,7 +313,7 @@ const ImportDocumentContainer = () => {
label='Submit'
type='submit'
className='bg-primary mt-5 rounded-lg'
- disabled={isSubmitting || isValid}
+ disabled={isSubmitting || !isValid}
/>
@@ -329,7 +348,7 @@ const ImportDocumentContainer = () => {
/>