allaw-ui 3.3.3 → 3.3.5
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/components/atoms/filters/SingleFilter.d.ts +0 -1
- package/dist/components/atoms/filters/SingleFilter.js +44 -26
- package/dist/components/atoms/filters/{SingleFilter.css → SingleFilter.module.css} +2 -20
- package/dist/components/atoms/filters/SingleFilter.stories.d.ts +1 -1
- package/dist/components/atoms/filters/SingleFilter.stories.js +9 -10
- package/dist/components/molecules/proCard/ProCard.css +1 -0
- package/package.json +1 -1
|
@@ -20,19 +20,39 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
}
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
|
-
import "./SingleFilter.css";
|
|
23
|
+
import styles from "./SingleFilter.module.css";
|
|
24
24
|
import { FilterButtonPrimary, PrimaryButton } from "../buttons";
|
|
25
25
|
import { TinyInfo } from "../typography";
|
|
26
|
-
import React, { useState, useEffect } from "react";
|
|
26
|
+
import React, { useState, useEffect, useRef } from "react";
|
|
27
27
|
var SingleFilter = function (_a) {
|
|
28
28
|
var _b = _a.showNumIndic, showNumIndic = _b === void 0 ? false : _b, _c = _a.required, required = _c === void 0 ? true : _c, defaultSelectedValue = _a.defaultSelectedValue, filterData = _a.filterData, setFilter = _a.setFilter, _d = _a.showBackdrop, showBackdrop = _d === void 0 ? false : _d, children = _a.children, props = __rest(_a, ["showNumIndic", "required", "defaultSelectedValue", "filterData", "setFilter", "showBackdrop", "children"]);
|
|
29
29
|
var _e = useState(false), isOpen = _e[0], setIsOpen = _e[1];
|
|
30
30
|
var _f = useState(defaultSelectedValue || ""), selectedValue = _f[0], setSelectedValue = _f[1];
|
|
31
|
+
var filterRef = useRef(null);
|
|
31
32
|
useEffect(function () {
|
|
32
33
|
if (selectedValue) {
|
|
33
34
|
setFilter(selectedValue);
|
|
34
35
|
}
|
|
35
36
|
}, [selectedValue, setFilter]);
|
|
37
|
+
useEffect(function () {
|
|
38
|
+
var handleClickOutside = function (event) {
|
|
39
|
+
if (filterRef.current &&
|
|
40
|
+
event.target instanceof Node &&
|
|
41
|
+
!filterRef.current.contains(event.target)) {
|
|
42
|
+
setIsOpen(false);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
if (isOpen) {
|
|
46
|
+
var timeoutId_1 = setTimeout(function () {
|
|
47
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
48
|
+
}, 0);
|
|
49
|
+
return function () {
|
|
50
|
+
clearTimeout(timeoutId_1);
|
|
51
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}, [isOpen]);
|
|
36
56
|
var handleClose = function () {
|
|
37
57
|
setIsOpen(false);
|
|
38
58
|
};
|
|
@@ -41,41 +61,39 @@ var SingleFilter = function (_a) {
|
|
|
41
61
|
};
|
|
42
62
|
var Item = function (_a) {
|
|
43
63
|
var name = _a.name, value = _a.value;
|
|
44
|
-
return (React.createElement("button", { className:
|
|
64
|
+
return (React.createElement("button", { className: styles.item, onClick: function () {
|
|
45
65
|
setSelectedValue(value);
|
|
46
66
|
handleClose();
|
|
47
67
|
} },
|
|
48
|
-
React.createElement("div", { className:
|
|
49
|
-
React.createElement("div", { className: selectedValue === value ?
|
|
68
|
+
React.createElement("div", { className: styles.round },
|
|
69
|
+
React.createElement("div", { className: selectedValue === value ? styles.selected : styles.notSelected })),
|
|
50
70
|
React.createElement("span", null, name)));
|
|
51
71
|
};
|
|
52
72
|
var SmallItem = function (_a) {
|
|
53
73
|
var name = _a.name, value = _a.value;
|
|
54
|
-
return (React.createElement("button", { className:
|
|
74
|
+
return (React.createElement("button", { className: styles.smallItem, onClick: function () {
|
|
55
75
|
setSelectedValue(value);
|
|
56
76
|
} },
|
|
57
|
-
React.createElement("div", { className:
|
|
58
|
-
React.createElement("div", { className: selectedValue === value ?
|
|
77
|
+
React.createElement("div", { className: styles.round },
|
|
78
|
+
React.createElement("div", { className: selectedValue === value ? styles.selected : styles.notSelected })),
|
|
59
79
|
React.createElement("span", null, name)));
|
|
60
80
|
};
|
|
61
|
-
return (React.createElement(
|
|
62
|
-
React.createElement(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
81
|
+
return (React.createElement("div", __assign({ className: styles.baseFilter, ref: filterRef }, props),
|
|
82
|
+
React.createElement(FilterButtonPrimary, { onClick: handleButtonTap },
|
|
83
|
+
children,
|
|
84
|
+
React.createElement("p", { style: { color: "#25BEEB", fontWeight: "600" } }, showNumIndic && "(".concat(selectedValue.length, ")"))),
|
|
85
|
+
isOpen && (React.createElement("div", { className: styles.options }, filterData &&
|
|
86
|
+
filterData.length > 0 &&
|
|
87
|
+
filterData.map(function (item, idx) { return (React.createElement(Item, { name: item.name, value: item.value, key: idx })); }))),
|
|
88
|
+
React.createElement("div", { className: styles.optionsSmall, style: { bottom: isOpen ? "0" : "-100%" } },
|
|
89
|
+
React.createElement("div", { className: styles.row },
|
|
90
|
+
React.createElement("div", { style: { minWidth: "20px" } }),
|
|
91
|
+
React.createElement(TinyInfo, { text: children, variant: "bold14", color: "noir" }),
|
|
92
|
+
React.createElement("button", { className: styles.closeButton, onClick: handleClose },
|
|
93
|
+
React.createElement("i", { className: "allaw-icon-close" }))),
|
|
94
|
+
React.createElement("div", { className: styles.choices }, filterData &&
|
|
67
95
|
filterData.length > 0 &&
|
|
68
|
-
filterData.map(function (item, idx) { return (React.createElement(
|
|
69
|
-
React.createElement(
|
|
70
|
-
React.createElement("div", { className: "row" },
|
|
71
|
-
React.createElement("div", { style: { minWidth: "20px" } }),
|
|
72
|
-
React.createElement(TinyInfo, { text: children, variant: "bold14", color: "noir" }),
|
|
73
|
-
React.createElement("button", { className: "closeButton", onClick: handleClose },
|
|
74
|
-
React.createElement("i", { className: "allaw-icon-close" }))),
|
|
75
|
-
React.createElement("div", { className: "choices" }, filterData &&
|
|
76
|
-
filterData.length > 0 &&
|
|
77
|
-
filterData.map(function (item, idx) { return (React.createElement(SmallItem, { name: item.name, value: item.value, key: idx })); })),
|
|
78
|
-
React.createElement(PrimaryButton, { label: "Voir les r\u00E9sultats", onClick: handleClose }))),
|
|
79
|
-
isOpen && React.createElement("div", { className: "backdrop", onClick: handleClose })));
|
|
96
|
+
filterData.map(function (item, idx) { return (React.createElement(SmallItem, { name: item.name, value: item.value, key: idx })); })),
|
|
97
|
+
React.createElement(PrimaryButton, { label: "Voir les r\u00E9sultats", onClick: handleClose }))));
|
|
80
98
|
};
|
|
81
99
|
export default SingleFilter;
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
.backdrop {
|
|
2
|
-
position: fixed;
|
|
3
|
-
top: 0;
|
|
4
|
-
left: 0;
|
|
5
|
-
height: 100vh;
|
|
6
|
-
width: 100vw;
|
|
7
|
-
z-index: 4500;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
1
|
.baseFilter {
|
|
11
2
|
position: relative;
|
|
12
3
|
width: fit-content;
|
|
13
|
-
/* z-index: 4501; */
|
|
14
4
|
}
|
|
15
5
|
|
|
16
6
|
.smallOpenFilter {
|
|
@@ -27,7 +17,7 @@
|
|
|
27
17
|
border-radius: 4px;
|
|
28
18
|
background-color: #ffffff;
|
|
29
19
|
box-shadow: rgba(9, 30, 66, 0.15) 0px 8px 12px 0px;
|
|
30
|
-
z-index:
|
|
20
|
+
z-index: 10;
|
|
31
21
|
padding: 0.4rem 0rem;
|
|
32
22
|
}
|
|
33
23
|
|
|
@@ -162,15 +152,7 @@
|
|
|
162
152
|
}
|
|
163
153
|
|
|
164
154
|
.optionsSmall {
|
|
165
|
-
z-index:
|
|
155
|
+
z-index: 10;
|
|
166
156
|
display: flex;
|
|
167
157
|
}
|
|
168
|
-
|
|
169
|
-
.backdrop {
|
|
170
|
-
background: linear-gradient(
|
|
171
|
-
180deg,
|
|
172
|
-
rgba(26, 50, 56, 0) 0%,
|
|
173
|
-
rgba(2, 9, 11, 0.45) 100%
|
|
174
|
-
);
|
|
175
|
-
}
|
|
176
158
|
}
|
|
@@ -9,24 +9,23 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import React from
|
|
13
|
-
import SingleFilter from
|
|
14
|
-
import './SingleFilter'; // Assurez-vous que le chemin est correct
|
|
12
|
+
import React from "react";
|
|
13
|
+
import SingleFilter from "./SingleFilter"; // Ajustez le chemin selon votre structure de projet
|
|
15
14
|
export default {
|
|
16
|
-
title:
|
|
15
|
+
title: "Components/Atoms/Filters/SingleFilter",
|
|
17
16
|
component: SingleFilter,
|
|
18
17
|
};
|
|
19
18
|
var Template = function (args) { return React.createElement(SingleFilter, __assign({}, args)); };
|
|
20
19
|
export var Default = Template.bind({});
|
|
21
20
|
Default.args = {
|
|
22
|
-
defaultSelectedValue:
|
|
21
|
+
defaultSelectedValue: "Option 1",
|
|
23
22
|
filterData: [
|
|
24
|
-
{ value:
|
|
25
|
-
{ value:
|
|
26
|
-
{ value:
|
|
23
|
+
{ value: "option1", name: "Option 1" },
|
|
24
|
+
{ value: "option2", name: "Option 2" },
|
|
25
|
+
{ value: "option3", name: "Option 3" },
|
|
27
26
|
],
|
|
28
|
-
setFilter: function (selectedValue) { return console.log(
|
|
29
|
-
children:
|
|
27
|
+
setFilter: function (selectedValue) { return console.log("Selected value:", selectedValue); },
|
|
28
|
+
children: "Filter",
|
|
30
29
|
required: true,
|
|
31
30
|
showNumIndic: true,
|
|
32
31
|
showBackdrop: true,
|