aq-fe-framework 0.1.156 → 0.1.157
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-JLT4BL7I.mjs → chunk-ZO7PLULO.mjs} +4 -4
- package/dist/{css.module-4ICLUKPO.module.css → components/index.css} +16 -29
- package/dist/components/index.mjs +2 -2
- package/dist/modules-features/index.css +100 -0
- package/dist/modules-features/index.mjs +5 -5
- package/package.json +1 -1
- package/dist/api/apiFactory.ts +0 -46
- package/dist/api/baseAxios.ts +0 -22
- package/dist/app/admin/(core)/core12196/page.tsx +0 -13
- package/dist/app/admin/(core)/core16209/page.tsx +0 -13
- package/dist/app/admin/(core)/core18256/page.tsx +0 -12
- package/dist/app/admin/(core)/core26965/page.tsx +0 -13
- package/dist/app/admin/(core)/core27311/page.tsx +0 -13
- package/dist/app/admin/(core)/core38677/page.tsx +0 -13
- package/dist/app/admin/(core)/core40207/page.tsx +0 -13
- package/dist/app/admin/(core)/core60524/page.tsx +0 -11
- package/dist/app/admin/(core)/core64229/page.tsx +0 -12
- package/dist/app/admin/(core)/core71678/page.tsx +0 -11
- package/dist/app/admin/(core)/core76318/page.tsx +0 -13
- package/dist/app/admin/(core)/core83092/page.tsx +0 -13
- package/dist/app/admin/[...slug]/page.tsx +0 -7
- package/dist/app/admin/error.tsx +0 -42
- package/dist/app/admin/layout.tsx +0 -21
- package/dist/app/admin/test/page.tsx +0 -44
- package/dist/app/auth/login/page.tsx +0 -14
- package/dist/app/globals.css +0 -59
- package/dist/app/layout.tsx +0 -39
- package/dist/app/page.tsx +0 -18
- package/dist/components/Aceternity/BoxesBackground/MyBoxes.tsx +0 -66
- package/dist/components/Aceternity/BoxesBackground/MyBoxesBackground.tsx +0 -31
- package/dist/components/ActionIcons/ActionIcon/MyActionIcon.tsx +0 -47
- package/dist/components/ActionIcons/ActionIconCRUD/MyActionIconDelete.tsx +0 -81
- package/dist/components/ActionIcons/ActionIconCRUD/MyActionIconUpdate.tsx +0 -68
- package/dist/components/ActionIcons/ActionIconCheck/MyActionIconCheck.tsx +0 -50
- package/dist/components/ActionIcons/ActionIconDownloadPDF/MyActionIconDownloadPDF.tsx +0 -13
- package/dist/components/ActionIcons/ActionIconModal/MyActionIconModal.tsx +0 -113
- package/dist/components/ActionIcons/ActionIconUpload/MyActionIconUpload.tsx +0 -19
- package/dist/components/ActionIcons/ActionIconViewPdf/MyActionIconViewPDF.tsx +0 -63
- package/dist/components/ActionIcons/SwitchTheme/MySwitchTheme.tsx +0 -36
- package/dist/components/AppSpotlight/MyAppSpotlight.tsx +0 -112
- package/dist/components/Buttons/Anchor/MyAnchorViewPDF.tsx +0 -46
- package/dist/components/Buttons/Button/MyButton.tsx +0 -90
- package/dist/components/Buttons/ButtonCRUD/AQButtonCreateByImportFile.tsx +0 -81
- package/dist/components/Buttons/ButtonCRUD/AQButtonExportData.tsx +0 -75
- package/dist/components/Buttons/ButtonCRUD/MyButtonCreate.tsx +0 -68
- package/dist/components/Buttons/ButtonImport/MyButtonImport.tsx +0 -29
- package/dist/components/Buttons/ButtonImport/SelectFieldModal.tsx +0 -100
- package/dist/components/Buttons/ButtonImport/SelectFileModal.tsx +0 -81
- package/dist/components/Buttons/ButtonImport/useS_ButtonImport.ts +0 -196
- package/dist/components/Buttons/ButtonModal/AQSelectTableByOpenModal.tsx +0 -71
- package/dist/components/Buttons/ButtonModal/MyButtonModal.tsx +0 -117
- package/dist/components/Buttons/ButtonPrintPDF/MyButtonPrintPDF.tsx +0 -37
- package/dist/components/Buttons/ButtonPrintPDFTable/MyButtonPrintTablePDF.tsx +0 -174
- package/dist/components/Buttons/ButtonRouterBack/MyButtonRouterBack.tsx +0 -29
- package/dist/components/Buttons/ButtonViewPDF/MyButtonViewPDF.tsx +0 -121
- package/dist/components/Calendar/MyCalendar.tsx +0 -118
- package/dist/components/CenterFull/MyCenterFull.tsx +0 -10
- package/dist/components/Checkbox/MyCheckbox.tsx +0 -9
- package/dist/components/Combobox/Select/MySelect.tsx +0 -12
- package/dist/components/DataDisplay/Card/AQCard.tsx +0 -49
- package/dist/components/DataDisplay/CardInformation/MyCardInformation.tsx +0 -77
- package/dist/components/DataDisplay/DataTable/MyDataTable.tsx +0 -184
- package/dist/components/DataDisplay/IconText/MyIconText.tsx +0 -17
- package/dist/components/DataDisplay/KeyLabel/MyKeyLabel.tsx +0 -15
- package/dist/components/DataDisplay/NumberFormatter/MyNumberFormatter.tsx +0 -9
- package/dist/components/DataDisplay/StatCard/AQStatCard1.tsx +0 -68
- package/dist/components/FaviconSetter/FaviconSetter.tsx +0 -33
- package/dist/components/Inputs/DateInput/MyDateInput.tsx +0 -11
- package/dist/components/Inputs/Fieldset/MyFieldset.tsx +0 -32
- package/dist/components/Inputs/FileInput/MyFileInput.tsx +0 -12
- package/dist/components/Inputs/NumberInput/MyNumberInput.tsx +0 -12
- package/dist/components/Inputs/TextArea/MyTextArea.tsx +0 -11
- package/dist/components/Inputs/TextEditor/MyTextEditor.tsx +0 -191
- package/dist/components/Inputs/TextInput/MyTextInput.tsx +0 -30
- package/dist/components/Layouts/BasicAppShell/BasicAppShell.tsx +0 -357
- package/dist/components/Layouts/BasicAppShell/css.module.css +0 -62
- package/dist/components/Layouts/BasicAppShell/useS_BasicAppShell.ts +0 -64
- package/dist/components/Layouts/Container/MyContainer.tsx +0 -16
- package/dist/components/Layouts/FlexColumn/MyFlexColumn.tsx +0 -14
- package/dist/components/Layouts/FlexEnd/MyFlexEnd.tsx +0 -14
- package/dist/components/Layouts/FlexRow/MyFlexRow.tsx +0 -14
- package/dist/components/Layouts/HeaderMegaMenu/HeaderMegaMenu.tsx +0 -147
- package/dist/components/Layouts/HeaderMegaMenu/HeaderMegaMenuStore.ts +0 -19
- package/dist/components/Layouts/HeaderMegaMenu/css.module.css +0 -50
- package/dist/components/Layouts/HtmlWrapper/MyHtmlWrapper.tsx +0 -29
- package/dist/components/Layouts/PageContent/MyPageContent.tsx +0 -67
- package/dist/components/Layouts/Tab/MyTab.tsx +0 -33
- package/dist/components/Loaders/MyCardioLoader.tsx +0 -12
- package/dist/components/RESTAPIComponents/DataTableSelect/MyDataTableSelect.tsx +0 -61
- package/dist/components/RESTAPIComponents/SelectAPIGet/MySelectAPIGet.tsx +0 -37
- package/dist/components/ScheduleX/MyScheduleX.tsx +0 -58
- package/dist/components/Skeletons/SkeletonTable/MySkeletonTable.tsx +0 -9
- package/dist/components/index.ts +0 -62
- package/dist/constants/array/daysOfWeek.ts +0 -9
- package/dist/constants/enum/ENUM_EMAILCONFIG.ts +0 -6
- package/dist/constants/enum/global.ts +0 -26
- package/dist/constants/object/color.ts +0 -5
- package/dist/constants/object/documentTypes.ts +0 -8
- package/dist/css.module-P45UW6UZ.module.css +0 -4
- package/dist/data/menuData.ts +0 -31
- package/dist/hooks/custom-hooks/useC_MutationAction.tsx +0 -36
- package/dist/hooks/index.ts +0 -2
- package/dist/hooks/query/AQ/useQ_AQ_GetAQModule.ts +0 -14
- package/dist/interfaces/EmailConfig.ts +0 -10
- package/dist/interfaces/IAQModule.ts +0 -21
- package/dist/interfaces/base.ts +0 -9
- package/dist/interfaces/global-interface/IAQSSO.ts +0 -15
- package/dist/interfaces/global-interface/IAQSyncData.ts +0 -9
- package/dist/interfaces/global-interface/IAcademicYear.ts +0 -12
- package/dist/interfaces/global-interface/IChangePassWord.ts +0 -8
- package/dist/interfaces/global-interface/IComplaintProccess.ts +0 -9
- package/dist/interfaces/global-interface/ICreateAccount.ts +0 -24
- package/dist/interfaces/global-interface/IDocument.ts +0 -25
- package/dist/interfaces/global-interface/IDocumentAttribute.ts +0 -12
- package/dist/interfaces/global-interface/IEvent.ts +0 -30
- package/dist/interfaces/global-interface/IEventComplaint.ts +0 -20
- package/dist/interfaces/global-interface/IEventFillter.ts +0 -14
- package/dist/interfaces/global-interface/IFile.ts +0 -8
- package/dist/interfaces/global-interface/IImportStudentPaticipation.ts +0 -8
- package/dist/interfaces/global-interface/IPagePermission.ts +0 -12
- package/dist/interfaces/global-interface/IRolePermission.ts +0 -7
- package/dist/interfaces/global-interface/ISRMUserinfo.ts +0 -35
- package/dist/interfaces/global-interface/IScientificProfileProjectUser.ts +0 -15
- package/dist/interfaces/global-interface/IScientificProfileResearchGroup.ts +0 -15
- package/dist/interfaces/global-interface/IScientificProfileResearchGroupUser.ts +0 -14
- package/dist/interfaces/global-interface/IScientificProfileResearchProject.ts +0 -21
- package/dist/interfaces/global-interface/ISignIn.ts +0 -7
- package/dist/interfaces/global-interface/ISystemCatalogAcademicYear.ts +0 -15
- package/dist/interfaces/global-interface/ISystemCatalogDomainCategory.ts +0 -11
- package/dist/interfaces/global-interface/ISystemCatalogProjectLevelCategory.ts +0 -11
- package/dist/interfaces/global-interface/ISystemCatalogProjectTypeCategory.ts +0 -11
- package/dist/interfaces/global-interface/ISystemCatalogRoleActivity.ts +0 -11
- package/dist/interfaces/global-interface/ISystemCatalogTaskCategory.ts +0 -11
- package/dist/interfaces/global-interface/ISystemManagementAcademicHistory.ts +0 -31
- package/dist/interfaces/global-interface/ISystemManagementProfessionalWorkHistory.ts +0 -14
- package/dist/interfaces/global-interface/ISystemManagementPublishedScientificWork.ts +0 -14
- package/dist/interfaces/global-interface/ISystemManagementRoleGroup.ts +0 -12
- package/dist/interfaces/global-interface/ISystemManagementRoleGroupMenuPermission.ts +0 -18
- package/dist/interfaces/global-interface/ISystemManagementScientificResearchProject.ts +0 -16
- package/dist/interfaces/global-interface/ISystemManagementUserMenuPermission.ts +0 -18
- package/dist/interfaces/global-interface/IUpdateAccount.ts +0 -15
- package/dist/interfaces/global-interface/IUser.ts +0 -21
- package/dist/interfaces/global-interface/IUserPermission.ts +0 -7
- package/dist/lib/utils.ts +0 -6
- package/dist/modules-features/admin/core/MainDashboard/BarChart_CourseStatus.tsx +0 -87
- package/dist/modules-features/admin/core/MainDashboard/BarChart_ExamStatus.tsx +0 -65
- package/dist/modules-features/admin/core/MainDashboard/BarChart_RevenueByAcademicYear.tsx +0 -82
- package/dist/modules-features/admin/core/MainDashboard/BarChart_StudentStatusIn30Days.tsx +0 -67
- package/dist/modules-features/admin/core/MainDashboard/HBarChart_CourseDropOutPercentage.tsx +0 -77
- package/dist/modules-features/admin/core/MainDashboard/HBarChart_CourseProgressPercentage.tsx +0 -77
- package/dist/modules-features/admin/core/MainDashboard/LineChart_RevenueIn12Months.tsx +0 -78
- package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalRevenueByDiscountIn3Months.tsx +0 -69
- package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalRevenueByVoucherIn3Months.tsx +0 -69
- package/dist/modules-features/admin/core/MainDashboard/LineChart_TotalStudentIn12Months.tsx +0 -64
- package/dist/modules-features/admin/core/MainDashboard/ViewDiscountStat.tsx +0 -311
- package/dist/modules-features/admin/core/MainDashboard/ViewVoucherStat.tsx +0 -311
- package/dist/modules-features/admin/core/core12196/F_core12196.tsx +0 -20
- package/dist/modules-features/admin/core/core12196/F_core12196_Create.tsx +0 -101
- package/dist/modules-features/admin/core/core12196/F_core12196_Delete.tsx +0 -19
- package/dist/modules-features/admin/core/core12196/F_core12196_Read.tsx +0 -165
- package/dist/modules-features/admin/core/core12196/F_core12196_Update.tsx +0 -112
- package/dist/modules-features/admin/core/core16209/F_core16209.tsx +0 -108
- package/dist/modules-features/admin/core/core16209/F_core16209_Create.tsx +0 -112
- package/dist/modules-features/admin/core/core16209/F_core16209_Delete.tsx +0 -17
- package/dist/modules-features/admin/core/core16209/F_core16209_Update.tsx +0 -114
- package/dist/modules-features/admin/core/core18256/F_core18256.tsx +0 -29
- package/dist/modules-features/admin/core/core18256/F_core18256_Create.tsx +0 -34
- package/dist/modules-features/admin/core/core18256/F_core18256_Delete.tsx +0 -14
- package/dist/modules-features/admin/core/core18256/F_core18256_Read.tsx +0 -59
- package/dist/modules-features/admin/core/core18256/F_core18256_Select.tsx +0 -40
- package/dist/modules-features/admin/core/core18256/F_core18256_Update.tsx +0 -22
- package/dist/modules-features/admin/core/core26965/F_core26965.tsx +0 -17
- package/dist/modules-features/admin/core/core26965/F_core26965_Create.tsx +0 -106
- package/dist/modules-features/admin/core/core26965/F_core26965_Delete.tsx +0 -19
- package/dist/modules-features/admin/core/core26965/F_core26965_Read.tsx +0 -165
- package/dist/modules-features/admin/core/core26965/F_core26965_Update.tsx +0 -112
- package/dist/modules-features/admin/core/core27311/F_core27311.tsx +0 -21
- package/dist/modules-features/admin/core/core27311/F_core27311_Create.tsx +0 -109
- package/dist/modules-features/admin/core/core27311/F_core27311_Delete.tsx +0 -19
- package/dist/modules-features/admin/core/core27311/F_core27311_Read.tsx +0 -165
- package/dist/modules-features/admin/core/core27311/F_core27311_Update.tsx +0 -113
- package/dist/modules-features/admin/core/core35923/F_core35923.tsx +0 -46
- package/dist/modules-features/admin/core/core38677/F_core38677.tsx +0 -28
- package/dist/modules-features/admin/core/core38677/F_core38677_ReadUser.tsx +0 -79
- package/dist/modules-features/admin/core/core38677/F_core38677_Save.tsx +0 -52
- package/dist/modules-features/admin/core/core38677/F_core38677_ViewMenuPermissions.tsx +0 -264
- package/dist/modules-features/admin/core/core40207/F_core40207.tsx +0 -9
- package/dist/modules-features/admin/core/core40207/F_core40207_Create.tsx +0 -81
- package/dist/modules-features/admin/core/core40207/F_core40207_Delete.tsx +0 -17
- package/dist/modules-features/admin/core/core40207/F_core40207_Read.tsx +0 -98
- package/dist/modules-features/admin/core/core40207/F_core40207_Update.tsx +0 -83
- package/dist/modules-features/admin/core/core47643/F_core47643.tsx +0 -10
- package/dist/modules-features/admin/core/core47643/F_core47643_Delete.tsx +0 -13
- package/dist/modules-features/admin/core/core47643/F_core47643_Form.tsx +0 -34
- package/dist/modules-features/admin/core/core47643/F_core47643_Read.tsx +0 -57
- package/dist/modules-features/admin/core/core60524/F_core60524.tsx +0 -13
- package/dist/modules-features/admin/core/core60524/F_core60524_Form.tsx +0 -111
- package/dist/modules-features/admin/core/core60524/F_core60524_Save.tsx +0 -56
- package/dist/modules-features/admin/core/core60524/useS_core60524.ts +0 -16
- package/dist/modules-features/admin/core/core64229/F_core64229.tsx +0 -7
- package/dist/modules-features/admin/core/core64229/F_core64229_Delete.tsx +0 -21
- package/dist/modules-features/admin/core/core64229/F_core64229_Form.tsx +0 -95
- package/dist/modules-features/admin/core/core64229/F_core64229_Read.tsx +0 -67
- package/dist/modules-features/admin/core/core71678/F_core71678.tsx +0 -8
- package/dist/modules-features/admin/core/core71678/F_core71678_ChangePermission.tsx +0 -117
- package/dist/modules-features/admin/core/core71678/F_core71678_Create.tsx +0 -61
- package/dist/modules-features/admin/core/core71678/F_core71678_Delete.tsx +0 -16
- package/dist/modules-features/admin/core/core71678/F_core71678_Read.tsx +0 -92
- package/dist/modules-features/admin/core/core71678/F_core71678_Update.tsx +0 -49
- package/dist/modules-features/admin/core/core76318/F_core76318.tsx +0 -9
- package/dist/modules-features/admin/core/core76318/F_core76318_Create.tsx +0 -89
- package/dist/modules-features/admin/core/core76318/F_core76318_Delete.tsx +0 -17
- package/dist/modules-features/admin/core/core76318/F_core76318_Read.tsx +0 -104
- package/dist/modules-features/admin/core/core76318/F_core76318_Update.tsx +0 -89
- package/dist/modules-features/admin/core/core83092/F_core83092.tsx +0 -27
- package/dist/modules-features/admin/core/core83092/F_core83092_ReadUser.tsx +0 -85
- package/dist/modules-features/admin/core/core83092/F_core83092_Save.tsx +0 -52
- package/dist/modules-features/admin/core/core83092/F_core83092_ViewMenuPermissions.tsx +0 -263
- package/dist/modules-features/admin/core/core83092/useS_core83092.tsx +0 -70
- package/dist/modules-features/authenticate/F_authenticate_Login/F_authenticate_Login.tsx +0 -154
- package/dist/modules-features/authenticate/F_authenticate_Login/css.module.css +0 -4
- package/dist/modules-features/authenticate/F_authenticate_Logout.tsx +0 -22
- package/dist/modules-features/authenticate/F_authenticate_SplashPage.tsx +0 -21
- package/dist/modules-features/authenticate/useS_authenticate.ts +0 -23
- package/dist/modules-features/index.ts +0 -79
- package/dist/providers/MyMantineProvider.tsx +0 -140
- package/dist/providers/MyReactQueryProvider.tsx +0 -24
- package/dist/providers/Provider.tsx +0 -13
- package/dist/providers/mantine.module.css +0 -21
- package/dist/stores/CreateGenericStore.ts +0 -23
- package/dist/stores/index.ts +0 -1
- package/dist/types/types.ts +0 -16
- package/dist/utils/index.ts +0 -9
- package/dist/utils/utils_converter.ts +0 -39
- package/dist/utils/utils_currency.ts +0 -5
- package/dist/utils/utils_date.ts +0 -34
- package/dist/utils/utils_excel.ts +0 -128
- package/dist/utils/utils_file.ts +0 -61
- package/dist/utils/utils_notification.ts +0 -46
- package/dist/utils/utils_pdf.ts +0 -21
- package/dist/utils/utils_time.ts +0 -15
- package/dist/utils/utils_validateForm.ts +0 -9
@@ -1,14 +0,0 @@
|
|
1
|
-
'use client'
|
2
|
-
|
3
|
-
import { F_Authenticate_Login } from "@/modules-features/Authenticate/F_Authenticate_Login/F_Authenticate_Login"
|
4
|
-
|
5
|
-
export default function Page() {
|
6
|
-
return (
|
7
|
-
<F_Authenticate_Login
|
8
|
-
loginInfo={{
|
9
|
-
username: "adminstm",
|
10
|
-
password: "123456"
|
11
|
-
}}
|
12
|
-
/>
|
13
|
-
)
|
14
|
-
}
|
package/dist/app/globals.css
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
@tailwind base;
|
2
|
-
@tailwind components;
|
3
|
-
@tailwind utilities;
|
4
|
-
|
5
|
-
/* body {
|
6
|
-
font-family: 'Tahoma', sans-serif;
|
7
|
-
} */
|
8
|
-
ul {
|
9
|
-
list-style: disc;
|
10
|
-
list-style-position: outside;
|
11
|
-
}
|
12
|
-
|
13
|
-
ol {
|
14
|
-
list-style: decimal;
|
15
|
-
list-style-position: outside;
|
16
|
-
}
|
17
|
-
|
18
|
-
.m_d6493fad :where(img) {
|
19
|
-
max-width: unset !important;
|
20
|
-
margin-bottom: unset !important;
|
21
|
-
}
|
22
|
-
|
23
|
-
/* .m_b23fa0ef:where([data-with-table-border]) {
|
24
|
-
border: none !important;
|
25
|
-
} */
|
26
|
-
|
27
|
-
.MRT_TableHeadCell-module_content-wrapper-nowrap__-4aIg {
|
28
|
-
white-space: normal !important;
|
29
|
-
}
|
30
|
-
.m_4e7aa4fd:where([data-with-row-border]) {
|
31
|
-
border-bottom: calc(0.0625rem * var(--mantine-scale)) solid var(--table-border-color) !important;
|
32
|
-
border-top: calc(0.0625rem * var(--mantine-scale)) solid var(--table-border-color) !important;
|
33
|
-
}
|
34
|
-
|
35
|
-
.MRT_TableBody-module_empty-row-td-content__Cc2XW {
|
36
|
-
max-width: unset !important; /* Hoặc max-width: initial !important; */
|
37
|
-
}
|
38
|
-
img,
|
39
|
-
svg,
|
40
|
-
video,
|
41
|
-
canvas,
|
42
|
-
audio,
|
43
|
-
iframe,
|
44
|
-
embed,
|
45
|
-
object {
|
46
|
-
display: inline; /* Hoặc giá trị khác mà bạn mong muốn */
|
47
|
-
vertical-align: auto; /* Hoặc giá trị khác mà bạn mong muốn */
|
48
|
-
}
|
49
|
-
|
50
|
-
.tabler-icon {
|
51
|
-
width: 20px;
|
52
|
-
height: 20px;
|
53
|
-
}
|
54
|
-
@media (max-width: 640px) {
|
55
|
-
:root {
|
56
|
-
/* Kích thước chữ cho màn hình nhỏ (mobile) */
|
57
|
-
font-size: 14px;
|
58
|
-
}
|
59
|
-
}
|
package/dist/app/layout.tsx
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
// Import styles of packages that you've installed.
|
2
|
-
// All packages except `@mantine/hooks` require styles imports
|
3
|
-
import '@mantine/charts/styles.css';
|
4
|
-
import '@mantine/core/styles.css';
|
5
|
-
import '@mantine/dates/styles.css'; //if using mantine date picker features
|
6
|
-
import '@mantine/notifications/styles.css';
|
7
|
-
import '@mantine/spotlight/styles.css';
|
8
|
-
import '@mantine/tiptap/styles.css';
|
9
|
-
import 'mantine-react-table/styles.css';
|
10
|
-
import "./globals.css";
|
11
|
-
|
12
|
-
import { FaviconSetter } from '@/components/FaviconSetter/FaviconSetter';
|
13
|
-
import Provider from '@/providers/Provider';
|
14
|
-
import { ColorSchemeScript } from '@mantine/core';
|
15
|
-
|
16
|
-
export const metadata = {
|
17
|
-
title: 'My Mantine app',
|
18
|
-
description: 'I have followed setup instructions carefully',
|
19
|
-
};
|
20
|
-
|
21
|
-
export default function RootLayout({
|
22
|
-
children,
|
23
|
-
}: {
|
24
|
-
children: React.ReactNode;
|
25
|
-
}) {
|
26
|
-
return (
|
27
|
-
<html lang="en" suppressHydrationWarning>
|
28
|
-
<head>
|
29
|
-
<ColorSchemeScript />
|
30
|
-
</head>
|
31
|
-
<body>
|
32
|
-
<Provider>
|
33
|
-
<FaviconSetter />
|
34
|
-
{children}
|
35
|
-
</Provider>
|
36
|
-
</body>
|
37
|
-
</html>
|
38
|
-
);
|
39
|
-
}
|
package/dist/app/page.tsx
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
"use client";
|
2
|
-
import { MyBoxesBackground } from "@/components";
|
3
|
-
import { useS_authenticate } from "@/modules-features/authenticate/useS_authenticate";
|
4
|
-
import { useRouter } from "next/navigation";
|
5
|
-
import { useEffect } from "react";
|
6
|
-
|
7
|
-
export default function Page() {
|
8
|
-
const router = useRouter();
|
9
|
-
const S_Authenticate = useS_authenticate();
|
10
|
-
useEffect(() => {
|
11
|
-
if (S_Authenticate.state.token == "") {
|
12
|
-
router.push("/test");
|
13
|
-
return;
|
14
|
-
}
|
15
|
-
router.push("/admin/core71678");
|
16
|
-
}, [S_Authenticate.state.token]);
|
17
|
-
return <MyBoxesBackground title="Hệ thống thông tin quản lí đào tạo ngắn hạn" />;
|
18
|
-
}
|
@@ -1,66 +0,0 @@
|
|
1
|
-
"use client";
|
2
|
-
import { cn } from "@/lib/utils";
|
3
|
-
import { motion } from "framer-motion";
|
4
|
-
import React from "react";
|
5
|
-
|
6
|
-
export const MyBoxesCore = ({ className, ...rest }: { className?: string }) => {
|
7
|
-
const rows = new Array(150).fill(1);
|
8
|
-
const cols = new Array(100).fill(1);
|
9
|
-
let colors = [
|
10
|
-
"--sky-300",
|
11
|
-
"--pink-300",
|
12
|
-
"--green-300",
|
13
|
-
"--yellow-300",
|
14
|
-
"--red-300",
|
15
|
-
"--purple-300",
|
16
|
-
"--blue-300",
|
17
|
-
"--indigo-300",
|
18
|
-
"--violet-300",
|
19
|
-
];
|
20
|
-
const getRandomColor = () => {
|
21
|
-
return colors[Math.floor(Math.random() * colors.length)];
|
22
|
-
};
|
23
|
-
|
24
|
-
return (
|
25
|
-
<div
|
26
|
-
style={{
|
27
|
-
transform: `translate(-40%,-60%) skewX(-48deg) skewY(14deg) scale(0.675) rotate(0deg) translateZ(0)`,
|
28
|
-
}}
|
29
|
-
className={cn(
|
30
|
-
"absolute left-1/4 p-4 -top-1/4 flex -translate-x-1/2 -translate-y-1/2 w-full h-full z-0 ",
|
31
|
-
className
|
32
|
-
)}
|
33
|
-
{...rest}>
|
34
|
-
{rows.map((_, i) => (
|
35
|
-
<motion.div key={`row` + i} className="w-16 h-8 border-l border-slate-700 relative">
|
36
|
-
{cols.map((_, j) => (
|
37
|
-
<motion.div
|
38
|
-
whileHover={{
|
39
|
-
backgroundColor: `var(${getRandomColor()})`,
|
40
|
-
transition: { duration: 0 },
|
41
|
-
}}
|
42
|
-
animate={{
|
43
|
-
transition: { duration: 2 },
|
44
|
-
}}
|
45
|
-
key={`col` + j}
|
46
|
-
className="w-16 h-8 border-r border-t border-slate-700 relative">
|
47
|
-
{j % 2 === 0 && i % 2 === 0 ? (
|
48
|
-
<svg
|
49
|
-
xmlns="http://www.w3.org/2000/svg"
|
50
|
-
fill="none"
|
51
|
-
viewBox="0 0 24 24"
|
52
|
-
strokeWidth="1.5"
|
53
|
-
stroke="currentColor"
|
54
|
-
className="absolute h-6 w-10 -top-[14px] -left-[22px] text-slate-700 stroke-[1px] pointer-events-none">
|
55
|
-
<path strokeLinecap="round" strokeLinejoin="round" d="M12 6v12m6-6H6" />
|
56
|
-
</svg>
|
57
|
-
) : null}
|
58
|
-
</motion.div>
|
59
|
-
))}
|
60
|
-
</motion.div>
|
61
|
-
))}
|
62
|
-
</div>
|
63
|
-
);
|
64
|
-
};
|
65
|
-
|
66
|
-
export const Boxes = React.memo(MyBoxesCore);
|
@@ -1,31 +0,0 @@
|
|
1
|
-
"use client";
|
2
|
-
|
3
|
-
import { MyCardioLoader } from "@/components/Loaders/MyCardioLoader";
|
4
|
-
import { cn } from "@/lib/utils";
|
5
|
-
import { Center, Space, Text } from "@mantine/core";
|
6
|
-
import { MyBoxesCore } from "./MyBoxes";
|
7
|
-
|
8
|
-
// Default values shown
|
9
|
-
|
10
|
-
export function MyBoxesBackground({ title, desc = "Được phát triển bởi công ty công nghệ Anh Quân." }: { title: string, desc?: string }) {
|
11
|
-
return (
|
12
|
-
<div className="h-[100vh] relative w-full overflow-hidden bg-slate-900 flex flex-col items-center justify-center rounded-lg">
|
13
|
-
<div className="absolute inset-0 w-full h-full bg-slate-900 z-20 [mask-image:radial-gradient(transparent,white)] pointer-events-none" />
|
14
|
-
<MyBoxesCore />
|
15
|
-
<Center className="z-20">
|
16
|
-
<MyCardioLoader />
|
17
|
-
</Center>
|
18
|
-
<Space my={7} />
|
19
|
-
<Center>
|
20
|
-
<Text className="z-20" fs="italic" fw={"bold"} c={"white"}>
|
21
|
-
Đang tải...
|
22
|
-
</Text>
|
23
|
-
</Center>
|
24
|
-
<Space my={7} />
|
25
|
-
<h1 className={cn("md:text-4xl text-xl text-white relative z-20")}>
|
26
|
-
{title}
|
27
|
-
</h1>
|
28
|
-
<p className="text-center mt-2 text-neutral-300 relative z-20">{desc}</p>
|
29
|
-
</div>
|
30
|
-
);
|
31
|
-
}
|
@@ -1,47 +0,0 @@
|
|
1
|
-
import { TYPES_CRUD } from "@/types/types";
|
2
|
-
import { ActionIcon, ActionIconProps } from "@mantine/core";
|
3
|
-
import { IconDeviceFloppy, IconEdit, IconPlus, IconTrash } from "@tabler/icons-react";
|
4
|
-
import { ReactNode } from "react";
|
5
|
-
|
6
|
-
interface IMyActionIcon extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "color" | "style">, ActionIconProps {
|
7
|
-
crudType?: TYPES_CRUD
|
8
|
-
children?: ReactNode;
|
9
|
-
}
|
10
|
-
|
11
|
-
export function MyActionIcon({ children, crudType = "default", ...rest }: IMyActionIcon) {
|
12
|
-
if (crudType == "default") {
|
13
|
-
return (
|
14
|
-
<ActionIcon color="indigo" {...rest}>
|
15
|
-
{children}
|
16
|
-
</ActionIcon>
|
17
|
-
);
|
18
|
-
}
|
19
|
-
if (crudType == "create") {
|
20
|
-
return (
|
21
|
-
<ActionIcon color="indigo" {...rest}>
|
22
|
-
<IconPlus />
|
23
|
-
</ActionIcon>
|
24
|
-
);
|
25
|
-
}
|
26
|
-
if (crudType == "delete") {
|
27
|
-
return (
|
28
|
-
<ActionIcon color="red" {...rest}>
|
29
|
-
<IconTrash />
|
30
|
-
</ActionIcon>
|
31
|
-
);
|
32
|
-
}
|
33
|
-
if (crudType == "update") {
|
34
|
-
return (
|
35
|
-
<ActionIcon color="yellow"{...rest}>
|
36
|
-
<IconEdit />
|
37
|
-
</ActionIcon>
|
38
|
-
);
|
39
|
-
}
|
40
|
-
if (crudType == "save") {
|
41
|
-
return (
|
42
|
-
<ActionIcon color="green" {...rest}>
|
43
|
-
<IconDeviceFloppy />
|
44
|
-
</ActionIcon>
|
45
|
-
);
|
46
|
-
}
|
47
|
-
}
|
@@ -1,81 +0,0 @@
|
|
1
|
-
import { MyButton } from "@/components/Buttons/Button/MyButton";
|
2
|
-
import { utils_notification_show } from "@/utils/utils_notification";
|
3
|
-
import { Group, Highlight } from "@mantine/core";
|
4
|
-
import { useDisclosure } from "@mantine/hooks";
|
5
|
-
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
6
|
-
import { ComponentProps, useState } from "react";
|
7
|
-
import { MyActionIconModal } from "../ActionIconModal/MyActionIconModal";
|
8
|
-
interface IActionIconDelete extends Omit<ComponentProps<typeof MyActionIconModal>, "disclosure"> {
|
9
|
-
onSubmit: () => void;
|
10
|
-
onSuccess?: () => void;
|
11
|
-
onError?: () => void;
|
12
|
-
contextData?: string;
|
13
|
-
loading?: boolean;
|
14
|
-
}
|
15
|
-
|
16
|
-
export function MyActionIconDelete({
|
17
|
-
onSubmit,
|
18
|
-
onSuccess,
|
19
|
-
onError,
|
20
|
-
contextData,
|
21
|
-
...rest
|
22
|
-
}: IActionIconDelete) {
|
23
|
-
const queryClient = useQueryClient();
|
24
|
-
const disc = useDisclosure();
|
25
|
-
const loadingState = useState<boolean>()
|
26
|
-
|
27
|
-
|
28
|
-
const mutation = useMutation({
|
29
|
-
mutationFn: async () => await onSubmit(),
|
30
|
-
onSuccess: () => {
|
31
|
-
if (onSuccess) {
|
32
|
-
onSuccess()
|
33
|
-
return
|
34
|
-
}
|
35
|
-
queryClient.invalidateQueries();
|
36
|
-
utils_notification_show({ crudType: "delete" });
|
37
|
-
disc[1].close();
|
38
|
-
},
|
39
|
-
onError: () => {
|
40
|
-
if (onError) {
|
41
|
-
onError()
|
42
|
-
return
|
43
|
-
}
|
44
|
-
},
|
45
|
-
});
|
46
|
-
|
47
|
-
function handleCLick() {
|
48
|
-
loadingState[1](true)
|
49
|
-
mutation.mutate();
|
50
|
-
}
|
51
|
-
return (
|
52
|
-
<MyActionIconModal
|
53
|
-
disclosure={disc}
|
54
|
-
crudType="delete"
|
55
|
-
{...rest}
|
56
|
-
>
|
57
|
-
<Highlight
|
58
|
-
highlight={contextData || []}
|
59
|
-
color="red.6"
|
60
|
-
highlightStyles={{
|
61
|
-
fontWeight: 700,
|
62
|
-
WebkitBackgroundClip: 'text',
|
63
|
-
WebkitTextFillColor: 'transparent',
|
64
|
-
}}
|
65
|
-
>
|
66
|
-
{`Bạn sắp xóa dữ liệu ${contextData || ""}. Hành động này không thể hoàn tác. Bạn có chắc chắn muốn tiếp tục?`}
|
67
|
-
</Highlight>
|
68
|
-
<Group grow>
|
69
|
-
<MyButton
|
70
|
-
crudType="delete"
|
71
|
-
onClick={handleCLick}
|
72
|
-
loading={loadingState[0]}
|
73
|
-
/>
|
74
|
-
<MyButton
|
75
|
-
crudType="cancel"
|
76
|
-
onClick={disc[1].close}
|
77
|
-
/>
|
78
|
-
</Group>
|
79
|
-
</MyActionIconModal>
|
80
|
-
);
|
81
|
-
}
|
@@ -1,68 +0,0 @@
|
|
1
|
-
import { MyButton } from "@/components/Buttons/Button/MyButton"
|
2
|
-
import { MyFlexColumn } from "@/components/Layouts/FlexColumn/MyFlexColumn"
|
3
|
-
import { utils_notification_show } from "@/utils/utils_notification"
|
4
|
-
import { UseFormReturnType } from "@mantine/form"
|
5
|
-
import { useDisclosure } from "@mantine/hooks"
|
6
|
-
import { useMutation, useQueryClient } from "@tanstack/react-query"
|
7
|
-
import { ComponentProps, useEffect } from "react"
|
8
|
-
import { MyActionIconModal } from "../ActionIconModal/MyActionIconModal"
|
9
|
-
|
10
|
-
interface IActionIconUpdate<T> extends Omit<ComponentProps<typeof MyActionIconModal>, "form" | "disclosure" | "onSubmit"> {
|
11
|
-
resetFormWhenclose?: boolean
|
12
|
-
onSubmit: (values: T) => void
|
13
|
-
onSuccess?: () => void; // Custom callback for success handling
|
14
|
-
onError?: () => void; // Custom callback for error handling
|
15
|
-
form: UseFormReturnType<T>;
|
16
|
-
disclosure?: ReturnType<typeof useDisclosure>;
|
17
|
-
}
|
18
|
-
|
19
|
-
export function MyActionIconUpdate<T>({
|
20
|
-
resetFormWhenclose,
|
21
|
-
form,
|
22
|
-
onSubmit,
|
23
|
-
onSuccess,
|
24
|
-
onError,
|
25
|
-
children,
|
26
|
-
...rest
|
27
|
-
}: IActionIconUpdate<T>) {
|
28
|
-
const disc = useDisclosure()
|
29
|
-
const queryClient = useQueryClient()
|
30
|
-
|
31
|
-
const mutation = useMutation({
|
32
|
-
mutationFn: async (values: T) => {
|
33
|
-
await onSubmit(values);
|
34
|
-
},
|
35
|
-
onSuccess: () => {
|
36
|
-
if (onSuccess) {
|
37
|
-
onSuccess()
|
38
|
-
}
|
39
|
-
queryClient.invalidateQueries()
|
40
|
-
utils_notification_show({ crudType: "update" });
|
41
|
-
disc[1].close();
|
42
|
-
|
43
|
-
},
|
44
|
-
onError: () => {
|
45
|
-
if (onError) onError();
|
46
|
-
},
|
47
|
-
})
|
48
|
-
useEffect(() => {
|
49
|
-
if (!resetFormWhenclose) return
|
50
|
-
if (disc[0] == true) return
|
51
|
-
form.reset()
|
52
|
-
}, [disc[0]])
|
53
|
-
return (
|
54
|
-
<MyActionIconModal disclosure={disc} crudType="update" {...rest}>
|
55
|
-
<form onSubmit={form.onSubmit((values) => {
|
56
|
-
mutation.mutate(values);
|
57
|
-
})}>
|
58
|
-
<MyFlexColumn>
|
59
|
-
{children}
|
60
|
-
<MyButton
|
61
|
-
type="submit"
|
62
|
-
crudType="save"
|
63
|
-
/>
|
64
|
-
</MyFlexColumn>
|
65
|
-
</form>
|
66
|
-
</MyActionIconModal>
|
67
|
-
)
|
68
|
-
}
|
@@ -1,50 +0,0 @@
|
|
1
|
-
"use client";
|
2
|
-
import { MyTextInput } from "@/components/Inputs/TextInput/MyTextInput";
|
3
|
-
import { MyFlexColumn } from "@/components/Layouts/FlexColumn/MyFlexColumn";
|
4
|
-
import { ActionIcon, ActionIconProps, Button, Checkbox, Modal, Switch, Text, Tooltip } from "@mantine/core";
|
5
|
-
import { useDisclosure } from "@mantine/hooks";
|
6
|
-
import { IconChecklist } from "@tabler/icons-react";
|
7
|
-
import { useState } from "react";
|
8
|
-
|
9
|
-
|
10
|
-
interface IActionIconCheck extends ActionIconProps {
|
11
|
-
modalSize?: string; comment?: string
|
12
|
-
}
|
13
|
-
|
14
|
-
export function MyActionIconCheck({ modalSize = "50%", comment = "", ...rest }: IActionIconCheck) {
|
15
|
-
const disc = useDisclosure(false);
|
16
|
-
const fullScreen = useState(false);
|
17
|
-
const hSize = useState("50vh");
|
18
|
-
return (
|
19
|
-
<>
|
20
|
-
<Tooltip label="Xem tài liệu trực tiếp" >
|
21
|
-
<ActionIcon color="cyan" onClick={disc[1].open} {...rest}>
|
22
|
-
<IconChecklist size={24} color="blue" />
|
23
|
-
</ActionIcon>
|
24
|
-
</Tooltip>
|
25
|
-
|
26
|
-
<Modal
|
27
|
-
fullScreen={fullScreen[0]}
|
28
|
-
opened={disc[0]}
|
29
|
-
onClose={disc[1].close}
|
30
|
-
size={modalSize}
|
31
|
-
title={
|
32
|
-
<Text>Kiểm tra hồ sơ đã đăng ký</Text>
|
33
|
-
|
34
|
-
}>
|
35
|
-
<Switch
|
36
|
-
defaultChecked
|
37
|
-
label="Đạt yêu cầu"
|
38
|
-
/>
|
39
|
-
<MyFlexColumn>
|
40
|
-
<MyTextInput label="Nhận xét" />
|
41
|
-
<Checkbox label="Gửi mail thông báo" />
|
42
|
-
<Button>Cập nhập</Button>
|
43
|
-
</MyFlexColumn>
|
44
|
-
|
45
|
-
</Modal>
|
46
|
-
|
47
|
-
|
48
|
-
</>
|
49
|
-
);
|
50
|
-
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { utils_pdf_download } from "@/utils/utils_pdf";
|
2
|
-
import { ActionIcon, Tooltip } from "@mantine/core";
|
3
|
-
import { IconDownload } from "@tabler/icons-react";
|
4
|
-
|
5
|
-
export function MyActionIconDownloadPDF({ pdfLink = "https://datafiles.chinhphu.vn/cpp/files/vbpq/2021/07/17-bgd.signed.pdf" }: { pdfLink: string }) {
|
6
|
-
return (
|
7
|
-
<Tooltip label="Nhấp để tải xuống">
|
8
|
-
<ActionIcon onClick={async () => await utils_pdf_download(pdfLink)} color="red">
|
9
|
-
<IconDownload />
|
10
|
-
</ActionIcon>
|
11
|
-
</Tooltip>
|
12
|
-
);
|
13
|
-
}
|
@@ -1,113 +0,0 @@
|
|
1
|
-
import { MyFlexColumn } from "@/components/Layouts/FlexColumn/MyFlexColumn";
|
2
|
-
import { TYPES_CRUD, TYPES_MANTINE_SIZE } from "@/types/types";
|
3
|
-
import { ActionIcon, ActionIconProps, Modal } from "@mantine/core";
|
4
|
-
import { useDisclosure } from "@mantine/hooks";
|
5
|
-
import { IconEdit, IconPlus, IconTrash } from "@tabler/icons-react";
|
6
|
-
import { ReactNode } from "react";
|
7
|
-
|
8
|
-
interface IMyActionIconModal extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "color" | "style">, ActionIconProps {
|
9
|
-
title?: string;
|
10
|
-
children?: ReactNode;
|
11
|
-
crudType?: TYPES_CRUD;
|
12
|
-
modalSize?: TYPES_MANTINE_SIZE;
|
13
|
-
disclosure: ReturnType<typeof useDisclosure>;
|
14
|
-
fullScreen?: boolean;
|
15
|
-
icon?: ReactNode;
|
16
|
-
}
|
17
|
-
|
18
|
-
export function MyActionIconModal({
|
19
|
-
fullScreen = false,
|
20
|
-
crudType = "default",
|
21
|
-
disclosure,
|
22
|
-
modalSize,
|
23
|
-
title,
|
24
|
-
children,
|
25
|
-
icon,
|
26
|
-
...rest
|
27
|
-
}: IMyActionIconModal) {
|
28
|
-
if (crudType == "default") {
|
29
|
-
return (
|
30
|
-
<>
|
31
|
-
<ActionIcon onClick={disclosure?.[1].open} color="indigo" {...rest}>
|
32
|
-
{icon}
|
33
|
-
</ActionIcon>
|
34
|
-
<Modal
|
35
|
-
fullScreen={fullScreen}
|
36
|
-
size={modalSize}
|
37
|
-
title={title}
|
38
|
-
opened={disclosure?.[0]}
|
39
|
-
onClose={disclosure[1].close}>
|
40
|
-
<MyFlexColumn>{children}</MyFlexColumn>
|
41
|
-
</Modal>
|
42
|
-
</>
|
43
|
-
);
|
44
|
-
}
|
45
|
-
if (crudType == "create") {
|
46
|
-
return (
|
47
|
-
<>
|
48
|
-
<ActionIcon onClick={disclosure?.[1].open} {...rest}>
|
49
|
-
{icon ? icon : <IconPlus />}
|
50
|
-
</ActionIcon>
|
51
|
-
<Modal
|
52
|
-
fullScreen={fullScreen}
|
53
|
-
size={modalSize}
|
54
|
-
title={title ? title : "Tạo dữ liệu mới"}
|
55
|
-
opened={disclosure?.[0]}
|
56
|
-
onClose={disclosure[1].close}>
|
57
|
-
<MyFlexColumn>{children}</MyFlexColumn>
|
58
|
-
</Modal>
|
59
|
-
</>
|
60
|
-
);
|
61
|
-
}
|
62
|
-
if (crudType == "update") {
|
63
|
-
return (
|
64
|
-
<>
|
65
|
-
<ActionIcon onClick={disclosure?.[1].open} color="yellow" {...rest}>
|
66
|
-
{icon ? icon : <IconEdit />}
|
67
|
-
</ActionIcon>
|
68
|
-
<Modal
|
69
|
-
fullScreen={fullScreen}
|
70
|
-
size={modalSize}
|
71
|
-
title={title ? title : "Sửa dữ liệu"}
|
72
|
-
opened={disclosure?.[0]}
|
73
|
-
onClose={disclosure[1].close}>
|
74
|
-
<MyFlexColumn>{children}</MyFlexColumn>
|
75
|
-
</Modal>
|
76
|
-
</>
|
77
|
-
);
|
78
|
-
}
|
79
|
-
if (crudType == "delete") {
|
80
|
-
return (
|
81
|
-
<>
|
82
|
-
<ActionIcon onClick={disclosure?.[1].open} color="red" {...rest}>
|
83
|
-
{icon ? icon : <IconTrash />}
|
84
|
-
</ActionIcon>
|
85
|
-
<Modal
|
86
|
-
fullScreen={fullScreen}
|
87
|
-
size={modalSize}
|
88
|
-
title={title ? title : "Xóa dữ liệu"}
|
89
|
-
opened={disclosure?.[0]}
|
90
|
-
onClose={disclosure[1].close}>
|
91
|
-
<MyFlexColumn>{children}</MyFlexColumn>
|
92
|
-
</Modal>
|
93
|
-
</>
|
94
|
-
);
|
95
|
-
}
|
96
|
-
if (crudType == "check") {
|
97
|
-
return (
|
98
|
-
<>
|
99
|
-
<ActionIcon onClick={disclosure?.[1].open} color="green" {...rest}>
|
100
|
-
{icon ? icon : <IconTrash />}
|
101
|
-
</ActionIcon>
|
102
|
-
<Modal
|
103
|
-
fullScreen={fullScreen}
|
104
|
-
size={modalSize}
|
105
|
-
title={title ? title : "Kiểm tra"}
|
106
|
-
opened={disclosure?.[0]}
|
107
|
-
onClose={disclosure[1].close}>
|
108
|
-
<MyFlexColumn>{children}</MyFlexColumn>
|
109
|
-
</Modal>
|
110
|
-
</>
|
111
|
-
);
|
112
|
-
}
|
113
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { ActionIcon } from "@mantine/core";
|
2
|
-
import { Dropzone, MIME_TYPES } from "@mantine/dropzone";
|
3
|
-
import { IconCloudUpload } from "@tabler/icons-react";
|
4
|
-
import { useRef } from "react";
|
5
|
-
|
6
|
-
export function MyActionIconUpload() {
|
7
|
-
const openRef = useRef<() => void>(null);
|
8
|
-
return (
|
9
|
-
<Dropzone
|
10
|
-
openRef={openRef}
|
11
|
-
onDrop={() => { }}
|
12
|
-
radius="md"
|
13
|
-
|
14
|
-
accept={[MIME_TYPES.pdf]}
|
15
|
-
>
|
16
|
-
<ActionIcon><IconCloudUpload /></ActionIcon>
|
17
|
-
</Dropzone>
|
18
|
-
)
|
19
|
-
}
|