@coorpacademy/components 11.40.4-alpha.44 → 11.40.4-alpha.999.43
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/es/molecule/base-modal/index.d.ts +0 -1
- package/es/molecule/base-modal/index.d.ts.map +1 -1
- package/es/molecule/base-modal/index.js +0 -3
- package/es/molecule/base-modal/index.js.map +1 -1
- package/es/molecule/icon-picker-modal/index.d.ts.map +1 -1
- package/es/molecule/icon-picker-modal/index.js +10 -56
- package/es/molecule/icon-picker-modal/index.js.map +1 -1
- package/lib/molecule/base-modal/index.d.ts +0 -1
- package/lib/molecule/base-modal/index.d.ts.map +1 -1
- package/lib/molecule/base-modal/index.js +0 -3
- package/lib/molecule/base-modal/index.js.map +1 -1
- package/lib/molecule/icon-picker-modal/index.d.ts.map +1 -1
- package/lib/molecule/icon-picker-modal/index.js +9 -55
- package/lib/molecule/icon-picker-modal/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -51,7 +51,6 @@ declare namespace BaseModal {
|
|
|
51
51
|
}>>;
|
|
52
52
|
}> | null | undefined>>;
|
|
53
53
|
const onClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
54
|
-
const onScroll: PropTypes.Requireable<(...args: any[]) => any>;
|
|
55
54
|
const detectScrollbar: PropTypes.Requireable<boolean>;
|
|
56
55
|
const customStyle: PropTypes.Requireable<{
|
|
57
56
|
[x: string]: NonNullable<string | number | null | undefined> | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/base-modal/index.js"],"names":[],"mappings":";AAUA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/base-modal/index.js"],"names":[],"mappings":";AAUA,yEA4LC"}
|
|
@@ -19,7 +19,6 @@ const BaseModal = (props, context) => {
|
|
|
19
19
|
isOpen,
|
|
20
20
|
footer,
|
|
21
21
|
onClose,
|
|
22
|
-
onScroll,
|
|
23
22
|
detectScrollbar = false,
|
|
24
23
|
customStyle
|
|
25
24
|
} = props;
|
|
@@ -185,7 +184,6 @@ const BaseModal = (props, context) => {
|
|
|
185
184
|
}))), /*#__PURE__*/React.createElement("div", {
|
|
186
185
|
ref: bodyRef,
|
|
187
186
|
className: isScrollbarVisible ? style.body : style.bodyWithoutScrollbar,
|
|
188
|
-
onScroll: onScroll,
|
|
189
187
|
"data-testid": "modal-body"
|
|
190
188
|
}, children), /*#__PURE__*/React.createElement(Footer, null)));
|
|
191
189
|
};
|
|
@@ -219,7 +217,6 @@ BaseModal.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
219
217
|
})
|
|
220
218
|
})]),
|
|
221
219
|
onClose: PropTypes.func,
|
|
222
|
-
onScroll: PropTypes.func,
|
|
223
220
|
detectScrollbar: PropTypes.bool,
|
|
224
221
|
customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))
|
|
225
222
|
} : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","PropTypes","convert","Provider","Icon","ButtonLink","COLORS","style","BaseModal","props","context","title","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","isScrollbarVisible","setIsScrollbarVisible","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","debouncedCheckScrollbar","_debounce","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","_isEmpty","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get","createElement","className","footerCTAWrapper","button","type","onClick","_extends","backgroundColor","paddingLeft","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","e","stopPropagation","modalWrapper","modal","header","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","node","bool","oneOfType","func","boolean","objectOf","number"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={style.header}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle}>{title}</div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n onScroll={onScroll}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","PropTypes","convert","Provider","Icon","ButtonLink","COLORS","style","BaseModal","props","context","title","description","headerIcon","children","isOpen","footer","onClose","detectScrollbar","customStyle","skin","bodyRef","isScrollbarVisible","setIsScrollbarVisible","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","debouncedCheckScrollbar","_debounce","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","_isEmpty","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get","createElement","className","footerCTAWrapper","button","type","onClick","_extends","backgroundColor","paddingLeft","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","e","stopPropagation","modalWrapper","modal","header","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","node","bool","oneOfType","func","boolean","objectOf","number"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={style.header}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle}>{title}</div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/icon-picker-modal/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/icon-picker-modal/index.js"],"names":[],"mappings":";AAYA,+EAgHC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import _uniq from "lodash/fp/uniq";
|
|
2
2
|
import _size from "lodash/fp/size";
|
|
3
|
-
import _slice from "lodash/fp/slice";
|
|
4
3
|
import _values from "lodash/fp/values";
|
|
5
4
|
import _get from "lodash/fp/get";
|
|
6
5
|
import _pipe from "lodash/fp/pipe";
|
|
7
6
|
import _map from "lodash/fp/map";
|
|
8
7
|
import _entries from "lodash/fp/entries";
|
|
9
|
-
import React, { useMemo, useState, useCallback
|
|
8
|
+
import React, { useMemo, useState, useCallback } from 'react';
|
|
10
9
|
import PropTypes from 'prop-types';
|
|
11
10
|
import { fas } from '@fortawesome/pro-solid-svg-icons';
|
|
12
11
|
import BaseModal from '../base-modal';
|
|
@@ -16,7 +15,6 @@ import SearchForm from '../search-form';
|
|
|
16
15
|
import { COLORS } from '../../variables/colors';
|
|
17
16
|
import style from './style.css';
|
|
18
17
|
import useIconSearch from './use-icon-search';
|
|
19
|
-
const ICONS_PER_LOAD = 48;
|
|
20
18
|
const IconPickerModal = (props, context) => {
|
|
21
19
|
const {
|
|
22
20
|
isOpen,
|
|
@@ -28,12 +26,6 @@ const IconPickerModal = (props, context) => {
|
|
|
28
26
|
translate
|
|
29
27
|
} = context;
|
|
30
28
|
const [selectedIcon, setSelectedIcon] = useState(null);
|
|
31
|
-
const [displayedIcons, setDisplayedIcons] = useState([]);
|
|
32
|
-
const [currentIndex, setCurrentIndex] = useState(0);
|
|
33
|
-
|
|
34
|
-
// Référence pour maintenir la position de scroll
|
|
35
|
-
const scrollContainerRef = useRef(null);
|
|
36
|
-
const lastScrollPosition = useRef(0);
|
|
37
29
|
const allIcons = useMemo(() => _pipe(_values, _map(_get('iconName')), _uniq)(fas), []);
|
|
38
30
|
const {
|
|
39
31
|
searchValue,
|
|
@@ -47,59 +39,23 @@ const IconPickerModal = (props, context) => {
|
|
|
47
39
|
const handleClose = useCallback(() => {
|
|
48
40
|
onClose();
|
|
49
41
|
}, [onClose]);
|
|
50
|
-
const loadMoreIcons = useCallback(() => {
|
|
51
|
-
const nextIndex = currentIndex + ICONS_PER_LOAD;
|
|
52
|
-
const newIcons = _slice(currentIndex, nextIndex, searchResults);
|
|
53
|
-
setDisplayedIcons(prevIcons => [...prevIcons, ...newIcons]);
|
|
54
|
-
setCurrentIndex(nextIndex);
|
|
55
|
-
}, [currentIndex, searchResults]);
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
setDisplayedIcons(() => _slice(0, ICONS_PER_LOAD, searchResults));
|
|
58
|
-
setCurrentIndex(ICONS_PER_LOAD);
|
|
59
|
-
}, [searchResults]);
|
|
60
|
-
const handleScroll = useCallback(event => {
|
|
61
|
-
const {
|
|
62
|
-
scrollTop,
|
|
63
|
-
clientHeight,
|
|
64
|
-
scrollHeight
|
|
65
|
-
} = event.currentTarget;
|
|
66
|
-
// Sauvegarder la position de scroll
|
|
67
|
-
lastScrollPosition.current = scrollTop;
|
|
68
|
-
if (scrollHeight - scrollTop <= clientHeight + 1) {
|
|
69
|
-
loadMoreIcons();
|
|
70
|
-
}
|
|
71
|
-
}, [loadMoreIcons]);
|
|
72
|
-
|
|
73
|
-
// Effet pour restaurer la position de scroll après un re-render
|
|
74
|
-
useEffect(() => {
|
|
75
|
-
if (scrollContainerRef.current && lastScrollPosition.current > 0) {
|
|
76
|
-
scrollContainerRef.current.scrollTop = lastScrollPosition.current;
|
|
77
|
-
}
|
|
78
|
-
}, [selectedIcon]);
|
|
79
|
-
const handleIconClick = useCallback(iconName => {
|
|
80
|
-
// Option 1: Sélection immédiate (recommandée pour Redux)
|
|
81
|
-
// onConfirm(iconName);
|
|
82
|
-
// onClose();
|
|
83
|
-
|
|
84
|
-
// Option 2: Si vous voulez garder la sélection
|
|
85
|
-
setSelectedIcon(prevSelectedIcon => prevSelectedIcon === iconName ? null : iconName);
|
|
86
|
-
}, [setSelectedIcon]);
|
|
87
|
-
|
|
88
|
-
// Créer une fonction de clic pour chaque icône
|
|
89
|
-
const createIconClickHandler = useCallback(iconName => () => handleIconClick(iconName), [handleIconClick]);
|
|
90
42
|
const icons = useMemo(() => _pipe(_entries, _map(([index, iconName]) => {
|
|
43
|
+
function handleIconClick() {
|
|
44
|
+
console.log('in handleIconClick');
|
|
45
|
+
return setSelectedIcon(prevSelectedIcon => prevSelectedIcon === iconName ? null : iconName);
|
|
46
|
+
}
|
|
91
47
|
return /*#__PURE__*/React.createElement(SelectIcon, {
|
|
92
|
-
key: `icon-${
|
|
48
|
+
key: `icon-${index}`,
|
|
93
49
|
size: "responsive",
|
|
94
|
-
"data-name": `icon-${
|
|
50
|
+
"data-name": `icon-${index}`,
|
|
95
51
|
"aria-label": iconName,
|
|
96
52
|
faIcon: iconName,
|
|
97
|
-
onClick:
|
|
53
|
+
onClick: handleIconClick,
|
|
98
54
|
options: {
|
|
99
55
|
isSelected: selectedIcon === iconName
|
|
100
56
|
}
|
|
101
57
|
});
|
|
102
|
-
}))(
|
|
58
|
+
}))(allIcons), [allIcons, selectedIcon]);
|
|
103
59
|
const footer = useMemo(() => {
|
|
104
60
|
return {
|
|
105
61
|
cancelButton: {
|
|
@@ -125,13 +81,11 @@ const IconPickerModal = (props, context) => {
|
|
|
125
81
|
description: translate('icon_picker_description'),
|
|
126
82
|
isOpen: isOpen,
|
|
127
83
|
onClose: handleClose,
|
|
128
|
-
onScroll: handleScroll,
|
|
129
84
|
footer: footer,
|
|
130
85
|
headerIcon: {
|
|
131
86
|
name: 'arrows-rotate',
|
|
132
87
|
backgroundColor: '#D6E6FF'
|
|
133
|
-
}
|
|
134
|
-
scrollContainerRef: scrollContainerRef
|
|
88
|
+
}
|
|
135
89
|
}, /*#__PURE__*/React.createElement("div", {
|
|
136
90
|
className: style.iconPicker
|
|
137
91
|
}, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","useEffect","useRef","PropTypes","fas","BaseModal","SelectIcon","Provider","SearchForm","COLORS","style","useIconSearch","ICONS_PER_LOAD","IconPickerModal","props","context","isOpen","onCancel","onConfirm","onClose","translate","selectedIcon","setSelectedIcon","displayedIcons","setDisplayedIcons","currentIndex","setCurrentIndex","scrollContainerRef","lastScrollPosition","allIcons","_pipe","_values","_map","_get","_uniq","searchValue","searchResults","handleSearch","handleReset","handleCancel","handleClose","loadMoreIcons","nextIndex","newIcons","_slice","prevIcons","handleScroll","event","scrollTop","clientHeight","scrollHeight","currentTarget","current","handleIconClick","iconName","prevSelectedIcon","createIconClickHandler","icons","_entries","index","createElement","key","size","faIcon","onClick","options","isSelected","footer","cancelButton","label","confirmButton","disabled","color","cm_primary_blue","title","description","onScroll","headerIcon","name","backgroundColor","className","iconPicker","Fragment","searchWrapper","search","placeholder","value","onChange","onReset","dataTestId","_size","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","iconsListWrapper","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","bool","func"],"sources":["../../../src/molecule/icon-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {fas} from '@fortawesome/pro-solid-svg-icons';\nimport {entries, map, pipe, get, values, slice, size, uniq} from 'lodash/fp';\nimport BaseModal from '../base-modal';\nimport SelectIcon from '../../atom/select-icon';\nimport Provider from '../../atom/provider';\nimport SearchForm from '../search-form';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\nimport useIconSearch from './use-icon-search';\n\nconst ICONS_PER_LOAD = 48;\n\nconst IconPickerModal = (props, context) => {\n const {isOpen, onCancel, onConfirm, onClose} = props;\n const {translate} = context;\n\n const [selectedIcon, setSelectedIcon] = useState(null);\n const [displayedIcons, setDisplayedIcons] = useState([]);\n const [currentIndex, setCurrentIndex] = useState(0);\n\n // Référence pour maintenir la position de scroll\n const scrollContainerRef = useRef(null);\n const lastScrollPosition = useRef(0);\n\n const allIcons = useMemo(() => pipe(values, map(get('iconName')), uniq)(fas), []);\n const {searchValue, searchResults, handleSearch, handleReset} = useIconSearch(allIcons);\n\n const handleCancel = useCallback(() => {\n onCancel();\n }, [onCancel]);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const loadMoreIcons = useCallback(() => {\n const nextIndex = currentIndex + ICONS_PER_LOAD;\n const newIcons = slice(currentIndex, nextIndex, searchResults);\n setDisplayedIcons(prevIcons => [...prevIcons, ...newIcons]);\n setCurrentIndex(nextIndex);\n }, [currentIndex, searchResults]);\n\n useEffect(() => {\n setDisplayedIcons(() => slice(0, ICONS_PER_LOAD, searchResults));\n setCurrentIndex(ICONS_PER_LOAD);\n }, [searchResults]);\n\n const handleScroll = useCallback(\n event => {\n const {scrollTop, clientHeight, scrollHeight} = event.currentTarget;\n // Sauvegarder la position de scroll\n lastScrollPosition.current = scrollTop;\n\n if (scrollHeight - scrollTop <= clientHeight + 1) {\n loadMoreIcons();\n }\n },\n [loadMoreIcons]\n );\n\n // Effet pour restaurer la position de scroll après un re-render\n useEffect(() => {\n if (scrollContainerRef.current && lastScrollPosition.current > 0) {\n scrollContainerRef.current.scrollTop = lastScrollPosition.current;\n }\n }, [selectedIcon]);\n\n const handleIconClick = useCallback(\n iconName => {\n // Option 1: Sélection immédiate (recommandée pour Redux)\n // onConfirm(iconName);\n // onClose();\n\n // Option 2: Si vous voulez garder la sélection\n setSelectedIcon(prevSelectedIcon => (prevSelectedIcon === iconName ? null : iconName));\n },\n [setSelectedIcon]\n );\n\n // Créer une fonction de clic pour chaque icône\n const createIconClickHandler = useCallback(\n iconName => () => handleIconClick(iconName),\n [handleIconClick]\n );\n\n const icons = useMemo(\n () =>\n pipe(\n entries,\n map(([index, iconName]) => {\n return (\n <SelectIcon\n key={`icon-${iconName}`}\n size=\"responsive\"\n data-name={`icon-${iconName}`}\n aria-label={iconName}\n faIcon={iconName}\n onClick={createIconClickHandler(iconName)}\n options={{isSelected: selectedIcon === iconName}}\n />\n );\n })\n )(displayedIcons),\n [displayedIcons, selectedIcon, createIconClickHandler]\n );\n\n const footer = useMemo(() => {\n return {\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel')\n },\n confirmButton: {\n onConfirm: () => {\n onConfirm(selectedIcon);\n setSelectedIcon(null);\n onClose();\n },\n label: translate('confirm'),\n iconName: 'plus',\n disabled: selectedIcon === null,\n color: COLORS.cm_primary_blue\n }\n };\n }, [handleCancel, onConfirm, onClose, translate, selectedIcon]);\n\n if (!isOpen) return null;\n\n return (\n <BaseModal\n title={translate('icon_picker_title')}\n description={translate('icon_picker_description')}\n isOpen={isOpen}\n onClose={handleClose}\n onScroll={handleScroll}\n footer={footer}\n headerIcon={{\n name: 'arrows-rotate',\n backgroundColor: '#D6E6FF'\n }}\n scrollContainerRef={scrollContainerRef}\n >\n <div className={style.iconPicker}>\n {\n <>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleReset}\n dataTestId=\"search-input\"\n />\n </div>\n {searchValue && size(searchResults) === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.iconsListWrapper}>{icons}</div>\n )}\n </>\n }\n </div>\n </BaseModal>\n );\n};\n\nIconPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nIconPickerModal.propTypes = {\n isOpen: PropTypes.bool,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default IconPickerModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","PropTypes","fas","BaseModal","SelectIcon","Provider","SearchForm","COLORS","style","useIconSearch","IconPickerModal","props","context","isOpen","onCancel","onConfirm","onClose","translate","selectedIcon","setSelectedIcon","allIcons","_pipe","_values","_map","_get","_uniq","searchValue","searchResults","handleSearch","handleReset","handleCancel","handleClose","icons","_entries","index","iconName","handleIconClick","console","log","prevSelectedIcon","createElement","key","size","faIcon","onClick","options","isSelected","footer","cancelButton","label","confirmButton","disabled","color","cm_primary_blue","title","description","headerIcon","name","backgroundColor","className","iconPicker","Fragment","searchWrapper","search","placeholder","value","onChange","onReset","dataTestId","_size","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","iconsListWrapper","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","bool","func"],"sources":["../../../src/molecule/icon-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {fas} from '@fortawesome/pro-solid-svg-icons';\nimport {entries, map, pipe, get, values, size, uniq} from 'lodash/fp';\nimport BaseModal from '../base-modal';\nimport SelectIcon from '../../atom/select-icon';\nimport Provider from '../../atom/provider';\nimport SearchForm from '../search-form';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\nimport useIconSearch from './use-icon-search';\n\nconst IconPickerModal = (props, context) => {\n const {isOpen, onCancel, onConfirm, onClose} = props;\n const {translate} = context;\n\n const [selectedIcon, setSelectedIcon] = useState(null);\n\n const allIcons = useMemo(() => pipe(values, map(get('iconName')), uniq)(fas), []);\n const {searchValue, searchResults, handleSearch, handleReset} = useIconSearch(allIcons);\n\n const handleCancel = useCallback(() => {\n onCancel();\n }, [onCancel]);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const icons = useMemo(\n () =>\n pipe(\n entries,\n map(([index, iconName]) => {\n function handleIconClick() {\n console.log('in handleIconClick');\n return setSelectedIcon(prevSelectedIcon =>\n prevSelectedIcon === iconName ? null : iconName\n );\n }\n return (\n <SelectIcon\n key={`icon-${index}`}\n size=\"responsive\"\n data-name={`icon-${index}`}\n aria-label={iconName}\n faIcon={iconName}\n onClick={handleIconClick}\n options={{isSelected: selectedIcon === iconName}}\n />\n );\n })\n )(allIcons),\n [allIcons, selectedIcon]\n );\n\n const footer = useMemo(() => {\n return {\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel')\n },\n confirmButton: {\n onConfirm: () => {\n onConfirm(selectedIcon);\n setSelectedIcon(null);\n onClose();\n },\n label: translate('confirm'),\n iconName: 'plus',\n disabled: selectedIcon === null,\n color: COLORS.cm_primary_blue\n }\n };\n }, [handleCancel, onConfirm, onClose, translate, selectedIcon]);\n\n if (!isOpen) return null;\n\n return (\n <BaseModal\n title={translate('icon_picker_title')}\n description={translate('icon_picker_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'arrows-rotate',\n backgroundColor: '#D6E6FF'\n }}\n >\n <div className={style.iconPicker}>\n {\n <>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleReset}\n dataTestId=\"search-input\"\n />\n </div>\n {searchValue && size(searchResults) === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.iconsListWrapper}>{icons}</div>\n )}\n </>\n }\n </div>\n </BaseModal>\n );\n};\n\nIconPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nIconPickerModal.propTypes = {\n isOpen: PropTypes.bool,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default IconPickerModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -51,7 +51,6 @@ declare namespace BaseModal {
|
|
|
51
51
|
}>>;
|
|
52
52
|
}> | null | undefined>>;
|
|
53
53
|
const onClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
54
|
-
const onScroll: PropTypes.Requireable<(...args: any[]) => any>;
|
|
55
54
|
const detectScrollbar: PropTypes.Requireable<boolean>;
|
|
56
55
|
const customStyle: PropTypes.Requireable<{
|
|
57
56
|
[x: string]: NonNullable<string | number | null | undefined> | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/base-modal/index.js"],"names":[],"mappings":";AAUA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/base-modal/index.js"],"names":[],"mappings":";AAUA,yEA4LC"}
|
|
@@ -26,7 +26,6 @@ const BaseModal = (props, context) => {
|
|
|
26
26
|
isOpen,
|
|
27
27
|
footer,
|
|
28
28
|
onClose,
|
|
29
|
-
onScroll,
|
|
30
29
|
detectScrollbar = false,
|
|
31
30
|
customStyle
|
|
32
31
|
} = props;
|
|
@@ -192,7 +191,6 @@ const BaseModal = (props, context) => {
|
|
|
192
191
|
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
193
192
|
ref: bodyRef,
|
|
194
193
|
className: isScrollbarVisible ? _style.default.body : _style.default.bodyWithoutScrollbar,
|
|
195
|
-
onScroll: onScroll,
|
|
196
194
|
"data-testid": "modal-body"
|
|
197
195
|
}, children), /*#__PURE__*/_react.default.createElement(Footer, null)));
|
|
198
196
|
};
|
|
@@ -226,7 +224,6 @@ BaseModal.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
226
224
|
})
|
|
227
225
|
})]),
|
|
228
226
|
onClose: _propTypes.default.func,
|
|
229
|
-
onScroll: _propTypes.default.func,
|
|
230
227
|
detectScrollbar: _propTypes.default.bool,
|
|
231
228
|
customStyle: _propTypes.default.objectOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]))
|
|
232
229
|
} : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_cssColorFunction","_provider","_icon","_buttonLink","_colors","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","BaseModal","props","context","title","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","useRef","isScrollbarVisible","setIsScrollbarVisible","useState","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","useEffect","debouncedCheckScrollbar","_debounce2","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","useCallback","_isEmpty2","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get2","createElement","className","style","footerCTAWrapper","button","type","onClick","backgroundColor","paddingLeft","hoverBackgroundColor","convert","hoverColor","COLORS","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","stopPropagation","modalWrapper","modal","header","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","shape","node","bool","oneOfType","func","boolean","objectOf","number","_default","exports"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={style.header}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle}>{title}</div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n onScroll={onScroll}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_cssColorFunction","_provider","_icon","_buttonLink","_colors","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","BaseModal","props","context","title","description","headerIcon","children","isOpen","footer","onClose","detectScrollbar","customStyle","skin","bodyRef","useRef","isScrollbarVisible","setIsScrollbarVisible","useState","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","useEffect","debouncedCheckScrollbar","_debounce2","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","useCallback","_isEmpty2","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get2","createElement","className","style","footerCTAWrapper","button","type","onClick","backgroundColor","paddingLeft","hoverBackgroundColor","convert","hoverColor","COLORS","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","stopPropagation","modalWrapper","modal","header","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","shape","node","bool","oneOfType","func","boolean","objectOf","number","_default","exports"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={style.header}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle}>{title}</div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/icon-picker-modal/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/icon-picker-modal/index.js"],"names":[],"mappings":";AAYA,+EAgHC"}
|
|
@@ -4,7 +4,6 @@ exports.__esModule = true;
|
|
|
4
4
|
exports.default = void 0;
|
|
5
5
|
var _uniq2 = _interopRequireDefault(require("lodash/fp/uniq"));
|
|
6
6
|
var _size2 = _interopRequireDefault(require("lodash/fp/size"));
|
|
7
|
-
var _slice2 = _interopRequireDefault(require("lodash/fp/slice"));
|
|
8
7
|
var _values2 = _interopRequireDefault(require("lodash/fp/values"));
|
|
9
8
|
var _get2 = _interopRequireDefault(require("lodash/fp/get"));
|
|
10
9
|
var _pipe2 = _interopRequireDefault(require("lodash/fp/pipe"));
|
|
@@ -23,7 +22,6 @@ var _useIconSearch = _interopRequireDefault(require("./use-icon-search"));
|
|
|
23
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
24
23
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
24
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
26
|
-
const ICONS_PER_LOAD = 48;
|
|
27
25
|
const IconPickerModal = (props, context) => {
|
|
28
26
|
const {
|
|
29
27
|
isOpen,
|
|
@@ -35,12 +33,6 @@ const IconPickerModal = (props, context) => {
|
|
|
35
33
|
translate
|
|
36
34
|
} = context;
|
|
37
35
|
const [selectedIcon, setSelectedIcon] = (0, _react.useState)(null);
|
|
38
|
-
const [displayedIcons, setDisplayedIcons] = (0, _react.useState)([]);
|
|
39
|
-
const [currentIndex, setCurrentIndex] = (0, _react.useState)(0);
|
|
40
|
-
|
|
41
|
-
// Référence pour maintenir la position de scroll
|
|
42
|
-
const scrollContainerRef = (0, _react.useRef)(null);
|
|
43
|
-
const lastScrollPosition = (0, _react.useRef)(0);
|
|
44
36
|
const allIcons = (0, _react.useMemo)(() => (0, _pipe2.default)(_values2.default, (0, _map2.default)((0, _get2.default)('iconName')), _uniq2.default)(_proSolidSvgIcons.fas), []);
|
|
45
37
|
const {
|
|
46
38
|
searchValue,
|
|
@@ -54,59 +46,23 @@ const IconPickerModal = (props, context) => {
|
|
|
54
46
|
const handleClose = (0, _react.useCallback)(() => {
|
|
55
47
|
onClose();
|
|
56
48
|
}, [onClose]);
|
|
57
|
-
const loadMoreIcons = (0, _react.useCallback)(() => {
|
|
58
|
-
const nextIndex = currentIndex + ICONS_PER_LOAD;
|
|
59
|
-
const newIcons = (0, _slice2.default)(currentIndex, nextIndex, searchResults);
|
|
60
|
-
setDisplayedIcons(prevIcons => [...prevIcons, ...newIcons]);
|
|
61
|
-
setCurrentIndex(nextIndex);
|
|
62
|
-
}, [currentIndex, searchResults]);
|
|
63
|
-
(0, _react.useEffect)(() => {
|
|
64
|
-
setDisplayedIcons(() => (0, _slice2.default)(0, ICONS_PER_LOAD, searchResults));
|
|
65
|
-
setCurrentIndex(ICONS_PER_LOAD);
|
|
66
|
-
}, [searchResults]);
|
|
67
|
-
const handleScroll = (0, _react.useCallback)(event => {
|
|
68
|
-
const {
|
|
69
|
-
scrollTop,
|
|
70
|
-
clientHeight,
|
|
71
|
-
scrollHeight
|
|
72
|
-
} = event.currentTarget;
|
|
73
|
-
// Sauvegarder la position de scroll
|
|
74
|
-
lastScrollPosition.current = scrollTop;
|
|
75
|
-
if (scrollHeight - scrollTop <= clientHeight + 1) {
|
|
76
|
-
loadMoreIcons();
|
|
77
|
-
}
|
|
78
|
-
}, [loadMoreIcons]);
|
|
79
|
-
|
|
80
|
-
// Effet pour restaurer la position de scroll après un re-render
|
|
81
|
-
(0, _react.useEffect)(() => {
|
|
82
|
-
if (scrollContainerRef.current && lastScrollPosition.current > 0) {
|
|
83
|
-
scrollContainerRef.current.scrollTop = lastScrollPosition.current;
|
|
84
|
-
}
|
|
85
|
-
}, [selectedIcon]);
|
|
86
|
-
const handleIconClick = (0, _react.useCallback)(iconName => {
|
|
87
|
-
// Option 1: Sélection immédiate (recommandée pour Redux)
|
|
88
|
-
// onConfirm(iconName);
|
|
89
|
-
// onClose();
|
|
90
|
-
|
|
91
|
-
// Option 2: Si vous voulez garder la sélection
|
|
92
|
-
setSelectedIcon(prevSelectedIcon => prevSelectedIcon === iconName ? null : iconName);
|
|
93
|
-
}, [setSelectedIcon]);
|
|
94
|
-
|
|
95
|
-
// Créer une fonction de clic pour chaque icône
|
|
96
|
-
const createIconClickHandler = (0, _react.useCallback)(iconName => () => handleIconClick(iconName), [handleIconClick]);
|
|
97
49
|
const icons = (0, _react.useMemo)(() => (0, _pipe2.default)(_entries2.default, (0, _map2.default)(([index, iconName]) => {
|
|
50
|
+
function handleIconClick() {
|
|
51
|
+
console.log('in handleIconClick');
|
|
52
|
+
return setSelectedIcon(prevSelectedIcon => prevSelectedIcon === iconName ? null : iconName);
|
|
53
|
+
}
|
|
98
54
|
return /*#__PURE__*/_react.default.createElement(_selectIcon.default, {
|
|
99
|
-
key: `icon-${
|
|
55
|
+
key: `icon-${index}`,
|
|
100
56
|
size: "responsive",
|
|
101
|
-
"data-name": `icon-${
|
|
57
|
+
"data-name": `icon-${index}`,
|
|
102
58
|
"aria-label": iconName,
|
|
103
59
|
faIcon: iconName,
|
|
104
|
-
onClick:
|
|
60
|
+
onClick: handleIconClick,
|
|
105
61
|
options: {
|
|
106
62
|
isSelected: selectedIcon === iconName
|
|
107
63
|
}
|
|
108
64
|
});
|
|
109
|
-
}))(
|
|
65
|
+
}))(allIcons), [allIcons, selectedIcon]);
|
|
110
66
|
const footer = (0, _react.useMemo)(() => {
|
|
111
67
|
return {
|
|
112
68
|
cancelButton: {
|
|
@@ -132,13 +88,11 @@ const IconPickerModal = (props, context) => {
|
|
|
132
88
|
description: translate('icon_picker_description'),
|
|
133
89
|
isOpen: isOpen,
|
|
134
90
|
onClose: handleClose,
|
|
135
|
-
onScroll: handleScroll,
|
|
136
91
|
footer: footer,
|
|
137
92
|
headerIcon: {
|
|
138
93
|
name: 'arrows-rotate',
|
|
139
94
|
backgroundColor: '#D6E6FF'
|
|
140
|
-
}
|
|
141
|
-
scrollContainerRef: scrollContainerRef
|
|
95
|
+
}
|
|
142
96
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
143
97
|
className: _style.default.iconPicker
|
|
144
98
|
}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_proSolidSvgIcons","_baseModal","_selectIcon","_provider","_searchForm","_colors","_style","_useIconSearch","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ICONS_PER_LOAD","IconPickerModal","props","context","isOpen","onCancel","onConfirm","onClose","translate","selectedIcon","setSelectedIcon","useState","displayedIcons","setDisplayedIcons","currentIndex","setCurrentIndex","scrollContainerRef","useRef","lastScrollPosition","allIcons","useMemo","_pipe2","_values2","_map2","_get2","_uniq2","fas","searchValue","searchResults","handleSearch","handleReset","useIconSearch","handleCancel","useCallback","handleClose","loadMoreIcons","nextIndex","newIcons","_slice2","prevIcons","useEffect","handleScroll","event","scrollTop","clientHeight","scrollHeight","currentTarget","current","handleIconClick","iconName","prevSelectedIcon","createIconClickHandler","icons","_entries2","index","createElement","key","size","faIcon","onClick","options","isSelected","footer","cancelButton","label","confirmButton","disabled","color","COLORS","cm_primary_blue","title","description","onScroll","headerIcon","name","backgroundColor","className","style","iconPicker","Fragment","searchWrapper","search","placeholder","value","onChange","onReset","dataTestId","_size2","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","iconsListWrapper","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","bool","func","_default","exports"],"sources":["../../../src/molecule/icon-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {fas} from '@fortawesome/pro-solid-svg-icons';\nimport {entries, map, pipe, get, values, slice, size, uniq} from 'lodash/fp';\nimport BaseModal from '../base-modal';\nimport SelectIcon from '../../atom/select-icon';\nimport Provider from '../../atom/provider';\nimport SearchForm from '../search-form';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\nimport useIconSearch from './use-icon-search';\n\nconst ICONS_PER_LOAD = 48;\n\nconst IconPickerModal = (props, context) => {\n const {isOpen, onCancel, onConfirm, onClose} = props;\n const {translate} = context;\n\n const [selectedIcon, setSelectedIcon] = useState(null);\n const [displayedIcons, setDisplayedIcons] = useState([]);\n const [currentIndex, setCurrentIndex] = useState(0);\n\n // Référence pour maintenir la position de scroll\n const scrollContainerRef = useRef(null);\n const lastScrollPosition = useRef(0);\n\n const allIcons = useMemo(() => pipe(values, map(get('iconName')), uniq)(fas), []);\n const {searchValue, searchResults, handleSearch, handleReset} = useIconSearch(allIcons);\n\n const handleCancel = useCallback(() => {\n onCancel();\n }, [onCancel]);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const loadMoreIcons = useCallback(() => {\n const nextIndex = currentIndex + ICONS_PER_LOAD;\n const newIcons = slice(currentIndex, nextIndex, searchResults);\n setDisplayedIcons(prevIcons => [...prevIcons, ...newIcons]);\n setCurrentIndex(nextIndex);\n }, [currentIndex, searchResults]);\n\n useEffect(() => {\n setDisplayedIcons(() => slice(0, ICONS_PER_LOAD, searchResults));\n setCurrentIndex(ICONS_PER_LOAD);\n }, [searchResults]);\n\n const handleScroll = useCallback(\n event => {\n const {scrollTop, clientHeight, scrollHeight} = event.currentTarget;\n // Sauvegarder la position de scroll\n lastScrollPosition.current = scrollTop;\n\n if (scrollHeight - scrollTop <= clientHeight + 1) {\n loadMoreIcons();\n }\n },\n [loadMoreIcons]\n );\n\n // Effet pour restaurer la position de scroll après un re-render\n useEffect(() => {\n if (scrollContainerRef.current && lastScrollPosition.current > 0) {\n scrollContainerRef.current.scrollTop = lastScrollPosition.current;\n }\n }, [selectedIcon]);\n\n const handleIconClick = useCallback(\n iconName => {\n // Option 1: Sélection immédiate (recommandée pour Redux)\n // onConfirm(iconName);\n // onClose();\n\n // Option 2: Si vous voulez garder la sélection\n setSelectedIcon(prevSelectedIcon => (prevSelectedIcon === iconName ? null : iconName));\n },\n [setSelectedIcon]\n );\n\n // Créer une fonction de clic pour chaque icône\n const createIconClickHandler = useCallback(\n iconName => () => handleIconClick(iconName),\n [handleIconClick]\n );\n\n const icons = useMemo(\n () =>\n pipe(\n entries,\n map(([index, iconName]) => {\n return (\n <SelectIcon\n key={`icon-${iconName}`}\n size=\"responsive\"\n data-name={`icon-${iconName}`}\n aria-label={iconName}\n faIcon={iconName}\n onClick={createIconClickHandler(iconName)}\n options={{isSelected: selectedIcon === iconName}}\n />\n );\n })\n )(displayedIcons),\n [displayedIcons, selectedIcon, createIconClickHandler]\n );\n\n const footer = useMemo(() => {\n return {\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel')\n },\n confirmButton: {\n onConfirm: () => {\n onConfirm(selectedIcon);\n setSelectedIcon(null);\n onClose();\n },\n label: translate('confirm'),\n iconName: 'plus',\n disabled: selectedIcon === null,\n color: COLORS.cm_primary_blue\n }\n };\n }, [handleCancel, onConfirm, onClose, translate, selectedIcon]);\n\n if (!isOpen) return null;\n\n return (\n <BaseModal\n title={translate('icon_picker_title')}\n description={translate('icon_picker_description')}\n isOpen={isOpen}\n onClose={handleClose}\n onScroll={handleScroll}\n footer={footer}\n headerIcon={{\n name: 'arrows-rotate',\n backgroundColor: '#D6E6FF'\n }}\n scrollContainerRef={scrollContainerRef}\n >\n <div className={style.iconPicker}>\n {\n <>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleReset}\n dataTestId=\"search-input\"\n />\n </div>\n {searchValue && size(searchResults) === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.iconsListWrapper}>{icons}</div>\n )}\n </>\n }\n </div>\n </BaseModal>\n );\n};\n\nIconPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nIconPickerModal.propTypes = {\n isOpen: PropTypes.bool,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default IconPickerModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_proSolidSvgIcons","_baseModal","_selectIcon","_provider","_searchForm","_colors","_style","_useIconSearch","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","IconPickerModal","props","context","isOpen","onCancel","onConfirm","onClose","translate","selectedIcon","setSelectedIcon","useState","allIcons","useMemo","_pipe2","_values2","_map2","_get2","_uniq2","fas","searchValue","searchResults","handleSearch","handleReset","useIconSearch","handleCancel","useCallback","handleClose","icons","_entries2","index","iconName","handleIconClick","console","log","prevSelectedIcon","createElement","key","size","faIcon","onClick","options","isSelected","footer","cancelButton","label","confirmButton","disabled","color","COLORS","cm_primary_blue","title","description","headerIcon","name","backgroundColor","className","style","iconPicker","Fragment","searchWrapper","search","placeholder","value","onChange","onReset","dataTestId","_size2","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","iconsListWrapper","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","bool","func","_default","exports"],"sources":["../../../src/molecule/icon-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {fas} from '@fortawesome/pro-solid-svg-icons';\nimport {entries, map, pipe, get, values, size, uniq} from 'lodash/fp';\nimport BaseModal from '../base-modal';\nimport SelectIcon from '../../atom/select-icon';\nimport Provider from '../../atom/provider';\nimport SearchForm from '../search-form';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\nimport useIconSearch from './use-icon-search';\n\nconst IconPickerModal = (props, context) => {\n const {isOpen, onCancel, onConfirm, onClose} = props;\n const {translate} = context;\n\n const [selectedIcon, setSelectedIcon] = useState(null);\n\n const allIcons = useMemo(() => pipe(values, map(get('iconName')), uniq)(fas), []);\n const {searchValue, searchResults, handleSearch, handleReset} = useIconSearch(allIcons);\n\n const handleCancel = useCallback(() => {\n onCancel();\n }, [onCancel]);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const icons = useMemo(\n () =>\n pipe(\n entries,\n map(([index, iconName]) => {\n function handleIconClick() {\n console.log('in handleIconClick');\n return setSelectedIcon(prevSelectedIcon =>\n prevSelectedIcon === iconName ? null : iconName\n );\n }\n return (\n <SelectIcon\n key={`icon-${index}`}\n size=\"responsive\"\n data-name={`icon-${index}`}\n aria-label={iconName}\n faIcon={iconName}\n onClick={handleIconClick}\n options={{isSelected: selectedIcon === iconName}}\n />\n );\n })\n )(allIcons),\n [allIcons, selectedIcon]\n );\n\n const footer = useMemo(() => {\n return {\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel')\n },\n confirmButton: {\n onConfirm: () => {\n onConfirm(selectedIcon);\n setSelectedIcon(null);\n onClose();\n },\n label: translate('confirm'),\n iconName: 'plus',\n disabled: selectedIcon === null,\n color: COLORS.cm_primary_blue\n }\n };\n }, [handleCancel, onConfirm, onClose, translate, selectedIcon]);\n\n if (!isOpen) return null;\n\n return (\n <BaseModal\n title={translate('icon_picker_title')}\n description={translate('icon_picker_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'arrows-rotate',\n backgroundColor: '#D6E6FF'\n }}\n >\n <div className={style.iconPicker}>\n {\n <>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleReset}\n dataTestId=\"search-input\"\n />\n </div>\n {searchValue && size(searchResults) === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.iconsListWrapper}>{icons}</div>\n )}\n </>\n }\n </div>\n </BaseModal>\n );\n};\n\nIconPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nIconPickerModal.propTypes = {\n isOpen: PropTypes.bool,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default IconPickerModal;\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,WAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,SAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,WAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,cAAA,GAAAR,sBAAA,CAAAF,OAAA;AAA8C,SAAAW,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAlB,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAE9C,MAAMmB,eAAe,GAAGA,CAACC,KAAK,EAAEC,OAAO,KAAK;EAC1C,MAAM;IAACC,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAO,CAAC,GAAGL,KAAK;EACpD,MAAM;IAACM;EAAS,CAAC,GAAGL,OAAO;EAE3B,MAAM,CAACM,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAC,eAAQ,EAAC,IAAI,CAAC;EAEtD,MAAMC,QAAQ,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,MAAA,CAAA3B,OAAA,EAAA4B,QAAA,CAAA5B,OAAA,EAAa,IAAA6B,KAAA,CAAA7B,OAAA,EAAI,IAAA8B,KAAA,CAAA9B,OAAA,EAAI,UAAU,CAAC,CAAC,EAAA+B,MAAA,CAAA/B,OAAM,CAAC,CAACgC,qBAAG,CAAC,EAAE,EAAE,CAAC;EACjF,MAAM;IAACC,WAAW;IAAEC,aAAa;IAAEC,YAAY;IAAEC;EAAW,CAAC,GAAG,IAAAC,sBAAa,EAACZ,QAAQ,CAAC;EAEvF,MAAMa,YAAY,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACrCrB,QAAQ,CAAC,CAAC;EACZ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,MAAMsB,WAAW,GAAG,IAAAD,kBAAW,EAAC,MAAM;IACpCnB,OAAO,CAAC,CAAC;EACX,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAMqB,KAAK,GAAG,IAAAf,cAAO,EACnB,MACE,IAAAC,MAAA,CAAA3B,OAAA,EAAA0C,SAAA,CAAA1C,OAAA,EAEE,IAAA6B,KAAA,CAAA7B,OAAA,EAAI,CAAC,CAAC2C,KAAK,EAAEC,QAAQ,CAAC,KAAK;IACzB,SAASC,eAAeA,CAAA,EAAG;MACzBC,OAAO,CAACC,GAAG,CAAC,oBAAoB,CAAC;MACjC,OAAOxB,eAAe,CAACyB,gBAAgB,IACrCA,gBAAgB,KAAKJ,QAAQ,GAAG,IAAI,GAAGA,QACzC,CAAC;IACH;IACA,oBACE/D,MAAA,CAAAmB,OAAA,CAAAiD,aAAA,CAAC7D,WAAA,CAAAY,OAAU;MACTkD,GAAG,EAAE,QAAQP,KAAK,EAAG;MACrBQ,IAAI,EAAC,YAAY;MACjB,aAAW,QAAQR,KAAK,EAAG;MAC3B,cAAYC,QAAS;MACrBQ,MAAM,EAAER,QAAS;MACjBS,OAAO,EAAER,eAAgB;MACzBS,OAAO,EAAE;QAACC,UAAU,EAAEjC,YAAY,KAAKsB;MAAQ;IAAE,CAClD,CAAC;EAEN,CAAC,CACH,CAAC,CAACnB,QAAQ,CAAC,EACb,CAACA,QAAQ,EAAEH,YAAY,CACzB,CAAC;EAED,MAAMkC,MAAM,GAAG,IAAA9B,cAAO,EAAC,MAAM;IAC3B,OAAO;MACL+B,YAAY,EAAE;QACZvC,QAAQ,EAAEoB,YAAY;QACtBoB,KAAK,EAAErC,SAAS,CAAC,QAAQ;MAC3B,CAAC;MACDsC,aAAa,EAAE;QACbxC,SAAS,EAAEA,CAAA,KAAM;UACfA,SAAS,CAACG,YAAY,CAAC;UACvBC,eAAe,CAAC,IAAI,CAAC;UACrBH,OAAO,CAAC,CAAC;QACX,CAAC;QACDsC,KAAK,EAAErC,SAAS,CAAC,SAAS,CAAC;QAC3BuB,QAAQ,EAAE,MAAM;QAChBgB,QAAQ,EAAEtC,YAAY,KAAK,IAAI;QAC/BuC,KAAK,EAAEC,cAAM,CAACC;MAChB;IACF,CAAC;EACH,CAAC,EAAE,CAACzB,YAAY,EAAEnB,SAAS,EAAEC,OAAO,EAAEC,SAAS,EAAEC,YAAY,CAAC,CAAC;EAE/D,IAAI,CAACL,MAAM,EAAE,OAAO,IAAI;EAExB,oBACEpC,MAAA,CAAAmB,OAAA,CAAAiD,aAAA,CAAC9D,UAAA,CAAAa,OAAS;IACRgE,KAAK,EAAE3C,SAAS,CAAC,mBAAmB,CAAE;IACtC4C,WAAW,EAAE5C,SAAS,CAAC,yBAAyB,CAAE;IAClDJ,MAAM,EAAEA,MAAO;IACfG,OAAO,EAAEoB,WAAY;IACrBgB,MAAM,EAAEA,MAAO;IACfU,UAAU,EAAE;MACVC,IAAI,EAAE,eAAe;MACrBC,eAAe,EAAE;IACnB;EAAE,gBAEFvF,MAAA,CAAAmB,OAAA,CAAAiD,aAAA;IAAKoB,SAAS,EAAEC,cAAK,CAACC;EAAW,gBAE7B1F,MAAA,CAAAmB,OAAA,CAAAiD,aAAA,CAAApE,MAAA,CAAAmB,OAAA,CAAAwE,QAAA,qBACE3F,MAAA,CAAAmB,OAAA,CAAAiD,aAAA;IAAKoB,SAAS,EAAEC,cAAK,CAACG;EAAc,gBAClC5F,MAAA,CAAAmB,OAAA,CAAAiD,aAAA,CAAC3D,WAAA,CAAAU,OAAU;IACT0E,MAAM,EAAE;MACNC,WAAW,EAAEtD,SAAS,CAAC,qBAAqB,CAAC;MAC7CuD,KAAK,EAAE3C,WAAW;MAClB4C,QAAQ,EAAE1C;IACZ,CAAE;IACF2C,OAAO,EAAE1C,WAAY;IACrB2C,UAAU,EAAC;EAAc,CAC1B,CACE,CAAC,EACL9C,WAAW,IAAI,IAAA+C,MAAA,CAAAhF,OAAA,EAAKkC,aAAa,CAAC,KAAK,CAAC,gBACvCrD,MAAA,CAAAmB,OAAA,CAAAiD,aAAA;IAAKoB,SAAS,EAAEC,cAAK,CAACW;EAA2B,gBAC/CpG,MAAA,CAAAmB,OAAA,CAAAiD,aAAA;IAAKoB,SAAS,EAAEC,cAAK,CAACY;EAAuB,GAC1C7D,SAAS,CAAC,2BAA2B,EAAE;IAACY;EAAW,CAAC,CAClD,CAAC,eACNpD,MAAA,CAAAmB,OAAA,CAAAiD,aAAA;IAAKoB,SAAS,EAAEC,cAAK,CAACa;EAA6B,GAChD9D,SAAS,CAAC,iCAAiC,CACzC,CAAC,eACNxC,MAAA,CAAAmB,OAAA,CAAAiD,aAAA;IAAKoB,SAAS,EAAEC,cAAK,CAACc,4BAA6B;IAAC/B,OAAO,EAAEjB;EAAY,GACtEf,SAAS,CAAC,kCAAkC,CAC1C,CACF,CAAC,gBAENxC,MAAA,CAAAmB,OAAA,CAAAiD,aAAA;IAAKoB,SAAS,EAAEC,cAAK,CAACe;EAAiB,GAAE5C,KAAW,CAEtD,CAED,CACI,CAAC;AAEhB,CAAC;AAED3B,eAAe,CAACwE,YAAY,GAAG;EAC7BjE,SAAS,EAAEkE,iBAAQ,CAACC,iBAAiB,CAACnE;AACxC,CAAC;AAEDP,eAAe,CAAC2E,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EAC1B3E,MAAM,EAAE4E,kBAAS,CAACC,IAAI;EACtB5E,QAAQ,EAAE2E,kBAAS,CAACE,IAAI;EACxB5E,SAAS,EAAE0E,kBAAS,CAACE,IAAI;EACzB3E,OAAO,EAAEyE,kBAAS,CAACE;AACrB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjG,OAAA,GAEac,eAAe","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.40.4-alpha.
|
|
3
|
+
"version": "11.40.4-alpha.999.43+5e1d5f926",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -166,5 +166,5 @@
|
|
|
166
166
|
"last 2 versions",
|
|
167
167
|
"IE 11"
|
|
168
168
|
],
|
|
169
|
-
"gitHead": "
|
|
169
|
+
"gitHead": "5e1d5f9266dc58ae3a5f968ef68495f71e972166"
|
|
170
170
|
}
|