@groupeactual/ui-kit 1.6.7-beta.0 → 1.7.0-beta.0
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/cjs/index.js +9 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/index.d.ts +9 -56
- package/dist/es/index.js +107 -0
- package/dist/es/index.js.map +1 -0
- package/dist/es/{types → src}/components/Form/AutoCompleteMulti/AutoCompleteMulti.d.ts +1 -1
- package/dist/{cjs/types → es/src}/components/Form/AutoCompleteSingle/AutoCompleteSingle.d.ts +1 -1
- package/dist/{cjs/types → es/src}/components/Form/Select/Select.d.ts +4 -2
- package/dist/{cjs/types → es/src}/components/IconButton/IconButton.d.ts +1 -1
- package/dist/es/{types → src}/components/Modal/Dialog/Dialog.d.ts +1 -1
- package/dist/es/{types → src}/components/Modal/Drawer/Drawer.d.ts +1 -1
- package/dist/es/src/components/UploadDocument/FileUploaderSingle.d.ts +30 -0
- package/dist/{cjs/types → es/src}/helpers/dataGetValue.d.ts +1 -1
- package/dist/{cjs/types → es/src}/hooks/useGooleDrivePicker.d.ts +2 -2
- package/dist/es/src/index.d.ts +4 -0
- package/package.json +18 -23
- package/src/DesignSystemProvider.tsx +2 -1
- package/src/components/Accordion/Accordion.tsx +1 -1
- package/src/components/BannerNotification/BannerNotification.tsx +1 -1
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +2 -2
- package/src/components/Chip/Chip.tsx +1 -1
- package/src/components/Datatable/Datatable.tsx +4 -3
- package/src/components/Datatable/DatatableCellRender.tsx +2 -2
- package/src/components/EmbbededNotification/EmbeddedNotification.tsx +2 -2
- package/src/components/Form/AutoCompleteMulti/AutoCompleteMulti.tsx +22 -12
- package/src/components/Form/AutoCompleteSingle/AutoCompleteSingle.tsx +22 -10
- package/src/components/Form/Checkbox/Checkbox.tsx +2 -2
- package/src/components/Form/CheckboxGroup/CheckboxGroup.tsx +1 -1
- package/src/components/Form/DatePicker/DatePicker.tsx +1 -1
- package/src/components/Form/MultiSelect/MultiSelect.tsx +10 -7
- package/src/components/Form/RadioGroup/RadioGroup.tsx +2 -2
- package/src/components/Form/Select/Select.tsx +15 -6
- package/src/components/Form/TextField/TextField.tsx +1 -1
- package/src/components/IconButton/IconButton.tsx +3 -3
- package/src/components/MenuItem/MenuItem.tsx +2 -2
- package/src/components/Modal/Dialog/Dialog.tsx +7 -4
- package/src/components/Modal/Drawer/Drawer.tsx +2 -2
- package/src/components/Navigation/Stepper/Step.tsx +3 -2
- package/src/components/NotistackAdapter/NotistackAdapter.tsx +1 -1
- package/src/components/Pagination/Pagination.tsx +7 -11
- package/src/components/Snackbar/Snackbar.tsx +1 -1
- package/src/components/UploadDocument/FileUploaderSingle.tsx +49 -77
- package/src/helpers/GooglePickerWrapper.tsx +1 -1
- package/src/helpers/dataGetValue.ts +1 -1
- package/src/hooks/useGooleDrivePicker.ts +2 -2
- package/src/index.ts +3 -5
- package/dist/cjs/types/components/Form/AutoCompleteMulti/AutoCompleteMulti.d.ts +0 -18
- package/dist/cjs/types/components/Modal/Dialog/Dialog.d.ts +0 -4
- package/dist/cjs/types/components/Modal/Drawer/Drawer.d.ts +0 -4
- package/dist/cjs/types/components/UploadDocument/FileUploaderSingle.d.ts +0 -78
- package/dist/cjs/types/index.d.ts +0 -2
- package/dist/es/index.mjs +0 -106
- package/dist/es/index.mjs.map +0 -1
- package/dist/es/types/DesignSystemProvider.d.ts +0 -13
- package/dist/es/types/components/Accordion/Accordion.d.ts +0 -15
- package/dist/es/types/components/Accordion/index.d.ts +0 -1
- package/dist/es/types/components/BannerNotification/BannerNotification.d.ts +0 -11
- package/dist/es/types/components/BannerNotification/index.d.ts +0 -1
- package/dist/es/types/components/Breadcrumbs/Breadcrumbs.d.ts +0 -15
- package/dist/es/types/components/Breadcrumbs/index.d.ts +0 -1
- package/dist/es/types/components/Button/Button.d.ts +0 -11
- package/dist/es/types/components/Button/index.d.ts +0 -1
- package/dist/es/types/components/Chip/Chip.d.ts +0 -19
- package/dist/es/types/components/Chip/index.d.ts +0 -1
- package/dist/es/types/components/Datatable/Datatable.d.ts +0 -4
- package/dist/es/types/components/Datatable/DatatableCellRender.d.ts +0 -4
- package/dist/es/types/components/Datatable/datatable.interface.d.ts +0 -53
- package/dist/es/types/components/Datatable/index.d.ts +0 -1
- package/dist/es/types/components/Datatable/use-pagination-props.hook.d.ts +0 -3
- package/dist/es/types/components/EmbbededNotification/EmbeddedNotification.d.ts +0 -13
- package/dist/es/types/components/EmbbededNotification/index.d.ts +0 -1
- package/dist/es/types/components/Form/AutoCompleteMulti/index.d.ts +0 -1
- package/dist/es/types/components/Form/AutoCompleteSingle/AutoCompleteSingle.d.ts +0 -19
- package/dist/es/types/components/Form/AutoCompleteSingle/index.d.ts +0 -1
- package/dist/es/types/components/Form/Checkbox/Checkbox.d.ts +0 -17
- package/dist/es/types/components/Form/Checkbox/index.d.ts +0 -1
- package/dist/es/types/components/Form/CheckboxGroup/CheckboxGroup.d.ts +0 -20
- package/dist/es/types/components/Form/CheckboxGroup/index.d.ts +0 -1
- package/dist/es/types/components/Form/DatePicker/DatePicker.d.ts +0 -15
- package/dist/es/types/components/Form/DatePicker/index.d.ts +0 -1
- package/dist/es/types/components/Form/MultiSelect/MultiSelect.d.ts +0 -23
- package/dist/es/types/components/Form/MultiSelect/index.d.ts +0 -1
- package/dist/es/types/components/Form/RadioGroup/RadioGroup.d.ts +0 -21
- package/dist/es/types/components/Form/RadioGroup/index.d.ts +0 -1
- package/dist/es/types/components/Form/Select/Select.d.ts +0 -22
- package/dist/es/types/components/Form/Select/index.d.ts +0 -1
- package/dist/es/types/components/Form/Switch/Switch.d.ts +0 -13
- package/dist/es/types/components/Form/Switch/index.d.ts +0 -1
- package/dist/es/types/components/Form/TextField/TextField.d.ts +0 -21
- package/dist/es/types/components/Form/TextField/index.d.ts +0 -1
- package/dist/es/types/components/IconButton/IconButton.d.ts +0 -19
- package/dist/es/types/components/IconButton/index.d.ts +0 -1
- package/dist/es/types/components/IconProvider/IconProvider.d.ts +0 -22
- package/dist/es/types/components/IconProvider/index.d.ts +0 -1
- package/dist/es/types/components/Link/Link.d.ts +0 -11
- package/dist/es/types/components/Link/index.d.ts +0 -1
- package/dist/es/types/components/MenuItem/MenuItem.d.ts +0 -13
- package/dist/es/types/components/MenuItem/index.d.ts +0 -1
- package/dist/es/types/components/Modal/Dialog/index.d.ts +0 -1
- package/dist/es/types/components/Modal/Drawer/index.d.ts +0 -1
- package/dist/es/types/components/Modal/modal.interface.d.ts +0 -24
- package/dist/es/types/components/Navigation/Stepper/Step.d.ts +0 -7
- package/dist/es/types/components/Navigation/Stepper/Stepper.d.ts +0 -11
- package/dist/es/types/components/Navigation/Stepper/index.d.ts +0 -1
- package/dist/es/types/components/Navigation/Stepper/stepper.helper.d.ts +0 -2
- package/dist/es/types/components/Navigation/Stepper/stepper.interface.d.ts +0 -12
- package/dist/es/types/components/NotistackAdapter/NotistackAdapter.d.ts +0 -4
- package/dist/es/types/components/NotistackAdapter/index.d.ts +0 -1
- package/dist/es/types/components/Pagination/Pagination.d.ts +0 -16
- package/dist/es/types/components/Pagination/index.d.ts +0 -1
- package/dist/es/types/components/Pagination/pagination.helper.d.ts +0 -1
- package/dist/es/types/components/Snackbar/Snackbar.d.ts +0 -11
- package/dist/es/types/components/Snackbar/index.d.ts +0 -1
- package/dist/es/types/components/Text/Text.d.ts +0 -11
- package/dist/es/types/components/Text/index.d.ts +0 -1
- package/dist/es/types/components/Tooltip/Tooltip.d.ts +0 -13
- package/dist/es/types/components/Tooltip/index.d.ts +0 -1
- package/dist/es/types/components/Tooltip/tooltip.interface.d.ts +0 -1
- package/dist/es/types/components/UploadDocument/FileUploaderSingle.d.ts +0 -78
- package/dist/es/types/components/UploadDocument/index.d.ts +0 -1
- package/dist/es/types/components/index.d.ts +0 -31
- package/dist/es/types/helpers/GooglePickerWrapper.d.ts +0 -13
- package/dist/es/types/helpers/dataGetValue.d.ts +0 -2
- package/dist/es/types/hooks/useGooleDrivePicker.d.ts +0 -4
- package/dist/es/types/index.d.ts +0 -2
- package/dist/es/types/types/googleDrive.d.ts +0 -133
- /package/dist/{cjs/types → es/src}/DesignSystemProvider.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Accordion/Accordion.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Accordion/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/BannerNotification/BannerNotification.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/BannerNotification/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Breadcrumbs/Breadcrumbs.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Breadcrumbs/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Button/Button.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Button/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Chip/Chip.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Chip/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Datatable/Datatable.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Datatable/DatatableCellRender.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Datatable/datatable.interface.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Datatable/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Datatable/use-pagination-props.hook.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/EmbbededNotification/EmbeddedNotification.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/EmbbededNotification/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/AutoCompleteMulti/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/AutoCompleteSingle/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/Checkbox/Checkbox.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/Checkbox/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/CheckboxGroup/CheckboxGroup.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/CheckboxGroup/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/DatePicker/DatePicker.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/DatePicker/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/MultiSelect/MultiSelect.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/MultiSelect/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/RadioGroup/RadioGroup.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/RadioGroup/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/Select/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/Switch/Switch.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/Switch/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/TextField/TextField.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Form/TextField/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/IconButton/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/IconProvider/IconProvider.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/IconProvider/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Link/Link.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Link/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/MenuItem/MenuItem.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/MenuItem/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Modal/Dialog/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Modal/Drawer/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Modal/modal.interface.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/Step.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/Stepper.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/stepper.helper.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Navigation/Stepper/stepper.interface.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/NotistackAdapter/NotistackAdapter.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/NotistackAdapter/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Pagination/Pagination.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Pagination/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Pagination/pagination.helper.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Snackbar/Snackbar.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Snackbar/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Text/Text.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Text/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Tooltip/Tooltip.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Tooltip/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/Tooltip/tooltip.interface.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/UploadDocument/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/components/index.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/helpers/GooglePickerWrapper.d.ts +0 -0
- /package/dist/{cjs/types → es/src}/types/googleDrive.d.ts +0 -0
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
useTheme,
|
|
12
12
|
} from '@mui/material';
|
|
13
13
|
|
|
14
|
-
import IconProvider from '
|
|
15
|
-
import Tooltip from '
|
|
16
|
-
import { Placement } from '
|
|
14
|
+
import IconProvider from '@/components/IconProvider';
|
|
15
|
+
import Tooltip from '@/components/Tooltip';
|
|
16
|
+
import { Placement } from '@/components/Tooltip/tooltip.interface';
|
|
17
17
|
|
|
18
18
|
interface Props extends IconButtonProps {
|
|
19
19
|
icon: IconDefinition;
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
useTheme,
|
|
11
11
|
} from '@mui/material';
|
|
12
12
|
|
|
13
|
-
import IconProvider from '
|
|
14
|
-
import Text from '
|
|
13
|
+
import IconProvider from '@/components/IconProvider';
|
|
14
|
+
import Text from '@/components/Text';
|
|
15
15
|
|
|
16
16
|
interface Props extends MenuItemProps {
|
|
17
17
|
testId: string;
|
|
@@ -10,10 +10,13 @@ import {
|
|
|
10
10
|
} from '@mui/material';
|
|
11
11
|
import { OverridableTypeMap } from '@mui/material/OverridableComponent';
|
|
12
12
|
|
|
13
|
-
import IconButton from '
|
|
14
|
-
import IconProvider from '
|
|
15
|
-
import
|
|
16
|
-
|
|
13
|
+
import IconButton from '@/components/IconButton';
|
|
14
|
+
import IconProvider from '@/components/IconProvider';
|
|
15
|
+
import {
|
|
16
|
+
DialogTitleProps,
|
|
17
|
+
ModalProps,
|
|
18
|
+
} from '@/components/Modal/modal.interface';
|
|
19
|
+
import Text from '@/components/Text';
|
|
17
20
|
|
|
18
21
|
const BootstrapDialog = styled(DialogMUI)(() => ({
|
|
19
22
|
'& .MuiDialogContent-root': {
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
Drawer as DrawerMUI,
|
|
10
10
|
} from '@mui/material';
|
|
11
11
|
|
|
12
|
-
import IconButton from '
|
|
13
|
-
import { ModalProps } from '
|
|
12
|
+
import IconButton from '@/components/IconButton';
|
|
13
|
+
import { ModalProps } from '@/components/Modal/modal.interface';
|
|
14
14
|
|
|
15
15
|
const Drawer = ({
|
|
16
16
|
title,
|
|
@@ -4,8 +4,9 @@ import { faCheck } from '@fortawesome/pro-regular-svg-icons';
|
|
|
4
4
|
import { faCheckCircle, faDotCircle } from '@fortawesome/pro-solid-svg-icons';
|
|
5
5
|
import { Box, Stack, useTheme } from '@mui/material';
|
|
6
6
|
|
|
7
|
-
import IconProvider from '
|
|
8
|
-
import Text from '
|
|
7
|
+
import IconProvider from '@/components/IconProvider';
|
|
8
|
+
import Text from '@/components/Text';
|
|
9
|
+
|
|
9
10
|
import { stepperItemsToPercent } from './stepper.helper';
|
|
10
11
|
import { Step } from './stepper.interface';
|
|
11
12
|
|
|
@@ -2,7 +2,7 @@ import React, { forwardRef } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import { CustomContentProps, SnackbarContent } from 'notistack';
|
|
4
4
|
|
|
5
|
-
import Snackbar from '
|
|
5
|
+
import Snackbar from '@/components/Snackbar';
|
|
6
6
|
|
|
7
7
|
const NotistackAdapter = forwardRef<HTMLDivElement, CustomContentProps>(
|
|
8
8
|
({ message, variant }, ref) => {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { ChangeEvent, useEffect, useMemo, useState } from 'react';
|
|
2
2
|
|
|
3
|
+
import { faCaretDown } from '@fortawesome/pro-solid-svg-icons';
|
|
3
4
|
import { PaginationStyle } from '@groupeactual/design-tokens';
|
|
4
5
|
import {
|
|
5
6
|
Box,
|
|
@@ -9,8 +10,9 @@ import {
|
|
|
9
10
|
useTheme,
|
|
10
11
|
} from '@mui/material';
|
|
11
12
|
|
|
12
|
-
import Select from '
|
|
13
|
-
import Text from '
|
|
13
|
+
import Select from '@/components/Form/Select';
|
|
14
|
+
import Text from '@/components/Text';
|
|
15
|
+
|
|
14
16
|
import { getTotalPages } from './pagination.helper';
|
|
15
17
|
|
|
16
18
|
interface Props {
|
|
@@ -86,7 +88,7 @@ const Pagination = ({
|
|
|
86
88
|
}}
|
|
87
89
|
>
|
|
88
90
|
<Box display="flex" alignItems="center">
|
|
89
|
-
<Text variant="
|
|
91
|
+
<Text variant="body1Bold">
|
|
90
92
|
{totalRows} {totalString}
|
|
91
93
|
</Text>
|
|
92
94
|
<Divider
|
|
@@ -99,20 +101,14 @@ const Pagination = ({
|
|
|
99
101
|
}}
|
|
100
102
|
/>
|
|
101
103
|
<Select
|
|
102
|
-
label=""
|
|
103
104
|
className="dac-select-label"
|
|
104
105
|
labelId="select-label"
|
|
105
106
|
value={internalLimit}
|
|
106
107
|
onChange={handleChangeLimit}
|
|
107
108
|
options={limitsPerPage}
|
|
108
109
|
getRenderValue={(value) => value.toString()}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
backgroundColor: 'white',
|
|
112
|
-
'&.MuiInputBase-root': {
|
|
113
|
-
height: '32px !important',
|
|
114
|
-
},
|
|
115
|
-
}}
|
|
110
|
+
popupIcon={faCaretDown}
|
|
111
|
+
width={60}
|
|
116
112
|
/>
|
|
117
113
|
<Text variant="body1" pl="8px">
|
|
118
114
|
{totalPerPageString}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import { SnackbarStyle } from '@groupeactual/design-tokens';
|
|
10
10
|
import { Alert, AlertProps, styled, useTheme } from '@mui/material';
|
|
11
11
|
|
|
12
|
-
import IconProvider from '
|
|
12
|
+
import IconProvider from '@/components/IconProvider';
|
|
13
13
|
|
|
14
14
|
interface Props extends Omit<AlertProps, 'severity' | 'text'> {
|
|
15
15
|
text: string | React.ReactNode;
|
|
@@ -21,13 +21,13 @@ import {
|
|
|
21
21
|
import { Box, IconButton } from '@mui/material';
|
|
22
22
|
import Menu from '@mui/material/Menu';
|
|
23
23
|
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
import
|
|
29
|
-
import
|
|
30
|
-
import
|
|
24
|
+
import Button from '@/components/Button';
|
|
25
|
+
import IconProvider from '@/components/IconProvider';
|
|
26
|
+
import MenuItem from '@/components/MenuItem';
|
|
27
|
+
import Text from '@/components/Text';
|
|
28
|
+
import Tooltip from '@/components/Tooltip';
|
|
29
|
+
import GooglePickerWrapper from '@/helpers/GooglePickerWrapper';
|
|
30
|
+
import { dataGetValue } from '@/helpers/dataGetValue';
|
|
31
31
|
|
|
32
32
|
export interface Props {
|
|
33
33
|
setFile: (file: File | null) => void;
|
|
@@ -39,12 +39,13 @@ export interface Props {
|
|
|
39
39
|
fileUrl?: string | null;
|
|
40
40
|
fileName?: string | null;
|
|
41
41
|
accept?: string[];
|
|
42
|
-
acceptText?:
|
|
42
|
+
acceptText?: string;
|
|
43
43
|
disabledInput?: boolean;
|
|
44
44
|
title?: string;
|
|
45
45
|
children?: JSX.Element | null;
|
|
46
46
|
titleAddButton?: string;
|
|
47
|
-
|
|
47
|
+
subText?: string;
|
|
48
|
+
maxSize?: string;
|
|
48
49
|
removeExistingFile?: () => void;
|
|
49
50
|
onTouched?: () => void;
|
|
50
51
|
onFileDataChange?: (
|
|
@@ -58,52 +59,6 @@ export interface Props {
|
|
|
58
59
|
) => void;
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
/**
|
|
62
|
-
* A single file uploader component that supports file selection from local storage or Google Drive.
|
|
63
|
-
*
|
|
64
|
-
* @param {string[]} accept - Array of accepted file types, will display acceptText message
|
|
65
|
-
* but not verify size or type of your file.
|
|
66
|
-
*
|
|
67
|
-
* Example:
|
|
68
|
-
* ```js
|
|
69
|
-
* accept={[
|
|
70
|
-
'application/pdf',
|
|
71
|
-
'image/png',
|
|
72
|
-
'image/jpeg',
|
|
73
|
-
'image/jpg',
|
|
74
|
-
]}
|
|
75
|
-
* ```
|
|
76
|
-
* @param {Object} acceptText - Object containing text for accepted file format, max size, and additional subtext.
|
|
77
|
-
*
|
|
78
|
-
* Example:
|
|
79
|
-
* ```js
|
|
80
|
-
* acceptText={{
|
|
81
|
-
maxSize: '10 Mo',
|
|
82
|
-
subText: 'Sélectionnez un fichier',
|
|
83
|
-
}}
|
|
84
|
-
* ```
|
|
85
|
-
*
|
|
86
|
-
* @param {Function} validateFile - Function to validate the file size and type.
|
|
87
|
-
*
|
|
88
|
-
* Example:
|
|
89
|
-
* ```js
|
|
90
|
-
* validateFile={(size, type) => {
|
|
91
|
-
* if (size > 10 * 1024 * 1024) {
|
|
92
|
-
* setCustomFileError('Le fichier doit être inférieur à 10 Mo');
|
|
93
|
-
* return true;
|
|
94
|
-
* }
|
|
95
|
-
* if (!['application/pdf', 'image/png', 'image/jpeg', 'image/jpg'].includes(type)) {
|
|
96
|
-
* setCustomFileError('Le fichier doit être au format PDF, PNG, JPEG ou JPG');
|
|
97
|
-
* return true;
|
|
98
|
-
* }
|
|
99
|
-
* return false;
|
|
100
|
-
* }}
|
|
101
|
-
* ```
|
|
102
|
-
*
|
|
103
|
-
* @param {Function} onFileDataChange - Callback function to handle file data changes and give you all informations you need
|
|
104
|
-
* to handle google drive file.
|
|
105
|
-
*/
|
|
106
|
-
|
|
107
62
|
const FileUploaderSingle = ({
|
|
108
63
|
enableGoogleDrive = false,
|
|
109
64
|
googleAuthClientId,
|
|
@@ -111,19 +66,21 @@ const FileUploaderSingle = ({
|
|
|
111
66
|
error = false,
|
|
112
67
|
helperText = '',
|
|
113
68
|
accept = [],
|
|
114
|
-
acceptText =
|
|
69
|
+
acceptText = '',
|
|
115
70
|
title = '',
|
|
71
|
+
subText = '',
|
|
72
|
+
maxSize = 'Max. 10mo',
|
|
116
73
|
disabledInput = false,
|
|
117
74
|
children = null,
|
|
118
75
|
fileUrl = null,
|
|
119
76
|
fileName = null,
|
|
120
77
|
titleAddButton,
|
|
121
|
-
validateFile,
|
|
122
78
|
setFile,
|
|
123
79
|
removeExistingFile,
|
|
124
80
|
onTouched,
|
|
125
81
|
onFileDataChange,
|
|
126
82
|
}: Props) => {
|
|
83
|
+
const [customFileError, setCustomFileError] = useState<string | null>();
|
|
127
84
|
const [currentFile, setCurrentFile] = useState<File | null>(null);
|
|
128
85
|
const [fileData, setFileData] = useState<{
|
|
129
86
|
name: string;
|
|
@@ -144,6 +101,23 @@ const FileUploaderSingle = ({
|
|
|
144
101
|
setAnchorEl(null);
|
|
145
102
|
};
|
|
146
103
|
|
|
104
|
+
const validateFile = (size, type) => {
|
|
105
|
+
// if (size > 10 * 1024 * 1024) {
|
|
106
|
+
// setCustomFileError('Le fichier doit être inférieur à 10 Mo');
|
|
107
|
+
// setIsDroppingFile(false);
|
|
108
|
+
// return true;
|
|
109
|
+
// }
|
|
110
|
+
if (!accept.includes(type)) {
|
|
111
|
+
setCustomFileError(
|
|
112
|
+
`Le fichier doit être au format ${acceptText || extractExtensions(accept).join(', ')}`,
|
|
113
|
+
);
|
|
114
|
+
setIsDroppingFile(false);
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return false;
|
|
119
|
+
};
|
|
120
|
+
|
|
147
121
|
const handleFileChange = useCallback(
|
|
148
122
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
149
123
|
(data?: any, token: string | null = null, fakeClick?: boolean) => {
|
|
@@ -158,8 +132,7 @@ const FileUploaderSingle = ({
|
|
|
158
132
|
) {
|
|
159
133
|
const file = fileInputRef.current.files[0];
|
|
160
134
|
setCurrentFile(fileInputRef.current.files[0]);
|
|
161
|
-
if (validateFile
|
|
162
|
-
setIsDroppingFile(false);
|
|
135
|
+
if (validateFile(file.size, file.type)) {
|
|
163
136
|
return;
|
|
164
137
|
}
|
|
165
138
|
onFileDataChange?.({
|
|
@@ -167,6 +140,7 @@ const FileUploaderSingle = ({
|
|
|
167
140
|
size: Math.round(file.size / 1024),
|
|
168
141
|
type: file.type,
|
|
169
142
|
});
|
|
143
|
+
setCustomFileError(null);
|
|
170
144
|
setFileData({
|
|
171
145
|
name: file.name,
|
|
172
146
|
size: Math.round(file.size / 1024),
|
|
@@ -183,18 +157,17 @@ const FileUploaderSingle = ({
|
|
|
183
157
|
driveFileId: data.docs[0].id,
|
|
184
158
|
driveAccessToken: token,
|
|
185
159
|
};
|
|
186
|
-
if (
|
|
187
|
-
validateFile &&
|
|
188
|
-
validateFile(data.docs[0].sizeBytes, data.docs[0].mimeType)
|
|
189
|
-
) {
|
|
160
|
+
if (validateFile(data.docs[0].sizeBytes, data.docs[0].mimeType)) {
|
|
190
161
|
return;
|
|
191
162
|
}
|
|
192
163
|
onFileDataChange?.(fileData);
|
|
193
164
|
setIsDroppingFile(false);
|
|
165
|
+
setCustomFileError(null);
|
|
194
166
|
setFileData(fileData);
|
|
195
167
|
}
|
|
196
168
|
},
|
|
197
169
|
[
|
|
170
|
+
setCustomFileError,
|
|
198
171
|
setIsDroppingFile,
|
|
199
172
|
setCurrentFile,
|
|
200
173
|
setFileData,
|
|
@@ -215,6 +188,7 @@ const FileUploaderSingle = ({
|
|
|
215
188
|
URL.revokeObjectURL(URL.createObjectURL(currentFile));
|
|
216
189
|
setCurrentFile(null);
|
|
217
190
|
}
|
|
191
|
+
setCustomFileError(null);
|
|
218
192
|
setFileData(null);
|
|
219
193
|
setIsDroppingFile(false);
|
|
220
194
|
setFile(null);
|
|
@@ -226,7 +200,7 @@ const FileUploaderSingle = ({
|
|
|
226
200
|
|
|
227
201
|
const dashedColor = useMemo(() => {
|
|
228
202
|
if (isDroppingFile) return '%23004F88';
|
|
229
|
-
if (error) return '%23b80025';
|
|
203
|
+
if (error || customFileError) return '%23b80025';
|
|
230
204
|
return '%23CBCBCB';
|
|
231
205
|
}, [isDroppingFile, error]);
|
|
232
206
|
|
|
@@ -238,9 +212,9 @@ const FileUploaderSingle = ({
|
|
|
238
212
|
|
|
239
213
|
const titleColor = useMemo(() => {
|
|
240
214
|
if (fileData?.name) return 'greyDark';
|
|
241
|
-
if (error) return 'redError';
|
|
215
|
+
if (error || customFileError) return 'redError';
|
|
242
216
|
return 'greyXDark';
|
|
243
|
-
}, [fileData?.name, error]);
|
|
217
|
+
}, [fileData?.name, error, customFileError]);
|
|
244
218
|
|
|
245
219
|
const inputCss = useMemo(
|
|
246
220
|
() => ({
|
|
@@ -345,15 +319,12 @@ const FileUploaderSingle = ({
|
|
|
345
319
|
}}
|
|
346
320
|
>
|
|
347
321
|
Format{' '}
|
|
348
|
-
{
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
: extractExtensions(accept).join(', ')) + ' - '}
|
|
352
|
-
{(acceptText.maxSize && acceptText.maxSize) || 'Max 10 Mo'}
|
|
353
|
-
{acceptText.subText && (
|
|
322
|
+
{acceptText || extractExtensions(accept).join(', ') + ' - '}
|
|
323
|
+
{maxSize}
|
|
324
|
+
{subText && (
|
|
354
325
|
<>
|
|
355
326
|
<br />
|
|
356
|
-
{
|
|
327
|
+
{subText}
|
|
357
328
|
</>
|
|
358
329
|
)}
|
|
359
330
|
</Text>
|
|
@@ -450,14 +421,15 @@ const FileUploaderSingle = ({
|
|
|
450
421
|
</Box>
|
|
451
422
|
</Box>
|
|
452
423
|
</Tooltip>
|
|
453
|
-
|
|
424
|
+
|
|
425
|
+
{(error || customFileError || helperText) && (
|
|
454
426
|
<Box pl={1} pt={1}>
|
|
455
427
|
<Text
|
|
456
428
|
variant="caption"
|
|
457
|
-
color={(error && 'redError') || 'greyDark'}
|
|
429
|
+
color={((error || customFileError) && 'redError') || 'greyDark'}
|
|
458
430
|
data-testid="helperText"
|
|
459
431
|
>
|
|
460
|
-
{helperText}
|
|
432
|
+
{customFileError ? customFileError : helperText}
|
|
461
433
|
</Text>
|
|
462
434
|
</Box>
|
|
463
435
|
)}
|
|
@@ -467,7 +439,7 @@ const FileUploaderSingle = ({
|
|
|
467
439
|
sx={{
|
|
468
440
|
display: 'flex',
|
|
469
441
|
alignItems: 'center',
|
|
470
|
-
border: `1px solid ${(error && '
|
|
442
|
+
border: `1px solid ${((error || customFileError) && 'redError') || '#CBCBCB'}`,
|
|
471
443
|
borderRadius: '4px',
|
|
472
444
|
justifyContent: 'space-between',
|
|
473
445
|
maxHeight: '50px',
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
GoogleDrivePickerData,
|
|
5
5
|
GoogleDrivePickerOptions,
|
|
6
6
|
TokenResponse,
|
|
7
|
-
} from '
|
|
7
|
+
} from '@/types/googleDrive';
|
|
8
8
|
|
|
9
9
|
const useGoogleDrivePicker = (
|
|
10
10
|
callbackFunction: (result: GoogleDrivePickerData, token: string) => void,
|
|
@@ -103,6 +103,6 @@ const useGoogleDrivePicker = (
|
|
|
103
103
|
return [openPicker, token] as const;
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
export * from '
|
|
106
|
+
export * from '@/types/googleDrive';
|
|
107
107
|
|
|
108
108
|
export default useGoogleDrivePicker;
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export * from './components';
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
type DesignSystemContextValues
|
|
6
|
-
} from './DesignSystemProvider';
|
|
2
|
+
export { default as DesignSystemProvider } from './DesignSystemProvider';
|
|
3
|
+
export { DesignSystemContext } from './DesignSystemProvider';
|
|
4
|
+
export { type DesignSystemContextValues } from './DesignSystemProvider';
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type AutocompleteProps } from '@mui/material';
|
|
3
|
-
interface AutocompleteMultipleSelectProps<T> extends Omit<AutocompleteProps<T, true, true, false>, 'onChange' | 'value' | 'options' | 'renderInput' | 'error'> {
|
|
4
|
-
value: T[] | undefined;
|
|
5
|
-
label?: string;
|
|
6
|
-
helperText?: string;
|
|
7
|
-
placeholder?: string;
|
|
8
|
-
options: T[];
|
|
9
|
-
getOptionLabel: (option: T) => string;
|
|
10
|
-
getKeyValue: (option: T) => string;
|
|
11
|
-
onChange: (value: T[]) => void;
|
|
12
|
-
getOptionDisabled?: (option: T) => boolean;
|
|
13
|
-
color?: 'success';
|
|
14
|
-
width?: number | string;
|
|
15
|
-
error?: string;
|
|
16
|
-
}
|
|
17
|
-
declare const AutocompleteMultipleSelect: <T>({ value, label, placeholder, options, disabled, getOptionLabel, getKeyValue, onChange, getOptionDisabled, width, color, helperText, error, ...props }: AutocompleteMultipleSelectProps<T>) => React.JSX.Element;
|
|
18
|
-
export default AutocompleteMultipleSelect;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface Props {
|
|
3
|
-
setFile: (file: File | null) => void;
|
|
4
|
-
enableGoogleDrive: boolean;
|
|
5
|
-
googleAuthClientId?: string;
|
|
6
|
-
googleApiKey?: string;
|
|
7
|
-
error?: boolean;
|
|
8
|
-
helperText?: string;
|
|
9
|
-
fileUrl?: string | null;
|
|
10
|
-
fileName?: string | null;
|
|
11
|
-
accept?: string[];
|
|
12
|
-
acceptText?: {
|
|
13
|
-
fileFormat?: string;
|
|
14
|
-
maxSize?: string;
|
|
15
|
-
subText?: string;
|
|
16
|
-
};
|
|
17
|
-
disabledInput?: boolean;
|
|
18
|
-
title?: string;
|
|
19
|
-
children?: JSX.Element | null;
|
|
20
|
-
titleAddButton?: string;
|
|
21
|
-
validateFile?: (size: number, type: string) => boolean;
|
|
22
|
-
removeExistingFile?: () => void;
|
|
23
|
-
onTouched?: () => void;
|
|
24
|
-
onFileDataChange?: (fileData: {
|
|
25
|
-
name: string;
|
|
26
|
-
size: number;
|
|
27
|
-
type?: string;
|
|
28
|
-
driveFileId?: string;
|
|
29
|
-
driveAccessToken?: string;
|
|
30
|
-
} | null) => void;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* A single file uploader component that supports file selection from local storage or Google Drive.
|
|
34
|
-
*
|
|
35
|
-
* @param {string[]} accept - Array of accepted file types, will display acceptText message
|
|
36
|
-
* but not verify size or type of your file.
|
|
37
|
-
*
|
|
38
|
-
* Example:
|
|
39
|
-
* ```js
|
|
40
|
-
* accept={[
|
|
41
|
-
'application/pdf',
|
|
42
|
-
'image/png',
|
|
43
|
-
'image/jpeg',
|
|
44
|
-
'image/jpg',
|
|
45
|
-
]}
|
|
46
|
-
* ```
|
|
47
|
-
* @param {Object} acceptText - Object containing text for accepted file format, max size, and additional subtext.
|
|
48
|
-
*
|
|
49
|
-
* Example:
|
|
50
|
-
* ```js
|
|
51
|
-
* acceptText={{
|
|
52
|
-
maxSize: '10 Mo',
|
|
53
|
-
subText: 'Sélectionnez un fichier',
|
|
54
|
-
}}
|
|
55
|
-
* ```
|
|
56
|
-
*
|
|
57
|
-
* @param {Function} validateFile - Function to validate the file size and type.
|
|
58
|
-
*
|
|
59
|
-
* Example:
|
|
60
|
-
* ```js
|
|
61
|
-
* validateFile={(size, type) => {
|
|
62
|
-
* if (size > 10 * 1024 * 1024) {
|
|
63
|
-
* setCustomFileError('Le fichier doit être inférieur à 10 Mo');
|
|
64
|
-
* return true;
|
|
65
|
-
* }
|
|
66
|
-
* if (!['application/pdf', 'image/png', 'image/jpeg', 'image/jpg'].includes(type)) {
|
|
67
|
-
* setCustomFileError('Le fichier doit être au format PDF, PNG, JPEG ou JPG');
|
|
68
|
-
* return true;
|
|
69
|
-
* }
|
|
70
|
-
* return false;
|
|
71
|
-
* }}
|
|
72
|
-
* ```
|
|
73
|
-
*
|
|
74
|
-
* @param {Function} onFileDataChange - Callback function to handle file data changes and give you all informations you need
|
|
75
|
-
* to handle google drive file.
|
|
76
|
-
*/
|
|
77
|
-
declare const FileUploaderSingle: ({ enableGoogleDrive, googleAuthClientId, googleApiKey, error, helperText, accept, acceptText, title, disabledInput, children, fileUrl, fileName, titleAddButton, validateFile, setFile, removeExistingFile, onTouched, onFileDataChange, }: Props) => React.JSX.Element;
|
|
78
|
-
export default FileUploaderSingle;
|