@popsure/dirty-swan 0.26.13 → 0.27.0-alpha.1
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/index.js +1048 -1336
- package/dist/index.js.map +1 -1
- package/dist/lib/components/modal/hooks/useOnClose.d.ts +1 -1
- package/dist/{mapStyle-a64f125f.js → mapStyle-1288a869.js} +2 -4
- package/dist/mapStyle-1288a869.js.map +1 -0
- package/package.json +2 -2
- package/src/lib/.DS_Store +0 -0
- package/src/lib/components/autocompleteAddress/index.tsx +42 -31
- package/src/lib/components/autocompleteAddress/util/index.ts +6 -2
- package/src/lib/components/modal/.DS_Store +0 -0
- package/src/lib/components/modal/hooks/useOnClose.ts +21 -18
- package/src/lib/components/modal/index.stories.mdx +3 -6
- package/src/lib/components/modal/regularModal/style.module.scss +8 -0
- package/dist/mapStyle-a64f125f.js.map +0 -1
|
@@ -2,6 +2,6 @@ import React from 'react';
|
|
|
2
2
|
declare const useOnClose: (onClose: () => void, isOpen: boolean, dismissable: boolean) => {
|
|
3
3
|
isClosing: boolean;
|
|
4
4
|
handleContainerClick: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
5
|
-
handleOnClose: () =>
|
|
5
|
+
handleOnClose: () => void;
|
|
6
6
|
};
|
|
7
7
|
export default useOnClose;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
var style = new google.maps.StyledMapType([
|
|
4
2
|
{
|
|
5
3
|
elementType: 'geometry',
|
|
@@ -185,5 +183,5 @@ var style = new google.maps.StyledMapType([
|
|
|
185
183
|
},
|
|
186
184
|
], { name: 'Styled Map' });
|
|
187
185
|
|
|
188
|
-
|
|
189
|
-
//# sourceMappingURL=mapStyle-
|
|
186
|
+
export { style };
|
|
187
|
+
//# sourceMappingURL=mapStyle-1288a869.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapStyle-1288a869.js","sources":["../src/lib/components/autocompleteAddress/mapStyle.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@popsure/dirty-swan",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.0-alpha.1",
|
|
4
4
|
"author": "Vincent Audoire <vincent@getpopsure.com>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"Readme.md"
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@popsure/public-models": "^0.0
|
|
23
|
+
"@popsure/public-models": "^1.0.0",
|
|
24
24
|
"classnames": "^2.3.1",
|
|
25
25
|
"dayjs": "^1.10.7",
|
|
26
26
|
"lodash.debounce": "^4.0.8",
|
|
Binary file
|
|
@@ -3,7 +3,11 @@ import classNames from 'classnames';
|
|
|
3
3
|
import debounce from 'lodash.debounce';
|
|
4
4
|
import isEqual from 'lodash.isequal';
|
|
5
5
|
import Input from '../input';
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
Address,
|
|
8
|
+
Alpha2CountryCode,
|
|
9
|
+
countryNameFromAlphaCode,
|
|
10
|
+
} from '@popsure/public-models';
|
|
7
11
|
|
|
8
12
|
import { geocoderAddressComponentToPartialAddress } from './util';
|
|
9
13
|
|
|
@@ -145,39 +149,46 @@ const AutoCompleteAddress = ({
|
|
|
145
149
|
}
|
|
146
150
|
};
|
|
147
151
|
|
|
148
|
-
const setPlaceFromAddress = useCallback(
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
+
const setPlaceFromAddress = useCallback(
|
|
153
|
+
(address: Partial<Address> | undefined) => {
|
|
154
|
+
if (!map.current) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
152
157
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
158
|
+
if (address) {
|
|
159
|
+
const service = new google.maps.places.PlacesService(map.current);
|
|
160
|
+
const query = `${address.street ?? ''} ${address.houseNumber ?? ''}, ${
|
|
161
|
+
address.city ?? ''
|
|
162
|
+
}, ${
|
|
163
|
+
address.country
|
|
164
|
+
? countryNameFromAlphaCode(address.country as Alpha2CountryCode)
|
|
165
|
+
: ''
|
|
166
|
+
}`;
|
|
167
|
+
setIsLoading(true);
|
|
168
|
+
service.findPlaceFromQuery(
|
|
169
|
+
{
|
|
170
|
+
fields: ['place_id'],
|
|
171
|
+
query,
|
|
172
|
+
},
|
|
173
|
+
(results) => {
|
|
174
|
+
const firstResult = results && results[0];
|
|
175
|
+
if (firstResult && firstResult.place_id) {
|
|
176
|
+
service.getDetails(
|
|
177
|
+
{ placeId: firstResult.place_id },
|
|
178
|
+
(newPlace) => {
|
|
179
|
+
onPlaceChanged(newPlace ?? undefined, false);
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
setIsLoading(false);
|
|
173
184
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
[]
|
|
189
|
+
);
|
|
179
190
|
|
|
180
|
-
const debouncedSetPlace = debounce(setPlaceFromAddress, 1000)
|
|
191
|
+
const debouncedSetPlace = debounce(setPlaceFromAddress, 1000);
|
|
181
192
|
|
|
182
193
|
const handleEnterAddressManually = () => {
|
|
183
194
|
setManualAddressEntry(true);
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Address,
|
|
3
|
+
Alpha2CountryCode,
|
|
4
|
+
countryNameFromAlphaCode,
|
|
5
|
+
} from '@popsure/public-models';
|
|
2
6
|
|
|
3
7
|
export const geocoderAddressComponentToPartialAddress = (
|
|
4
8
|
input: google.maps.GeocoderAddressComponent[]
|
|
@@ -52,4 +56,4 @@ export const geocoderAddressComponentToPartialAddress = (
|
|
|
52
56
|
export const inlineAddress = (address: Address) =>
|
|
53
57
|
`${address.street} ${address.houseNumber}, ${
|
|
54
58
|
address.city
|
|
55
|
-
}, ${countryNameFromAlphaCode(address.country)}`;
|
|
59
|
+
}, ${countryNameFromAlphaCode(address.country as Alpha2CountryCode)}`;
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
|
1
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
const useOnClose = (
|
|
4
4
|
onClose: () => void,
|
|
@@ -7,13 +7,32 @@ const useOnClose = (
|
|
|
7
7
|
) => {
|
|
8
8
|
const [isClosing, setIsClosing] = useState(false);
|
|
9
9
|
|
|
10
|
+
const handleOnClose = useCallback(() => {
|
|
11
|
+
setIsClosing(true);
|
|
12
|
+
setTimeout(() => {
|
|
13
|
+
onClose();
|
|
14
|
+
setIsClosing(false);
|
|
15
|
+
}, 300);
|
|
16
|
+
}, [setIsClosing, onClose]);
|
|
17
|
+
|
|
18
|
+
const handleEscKey = useCallback(
|
|
19
|
+
(e: KeyboardEvent) => {
|
|
20
|
+
if (e.code !== 'Escape') return;
|
|
21
|
+
if (!dismissable) return null;
|
|
22
|
+
if (!isOpen) return null;
|
|
23
|
+
|
|
24
|
+
handleOnClose();
|
|
25
|
+
},
|
|
26
|
+
[isOpen, dismissable, handleOnClose]
|
|
27
|
+
);
|
|
28
|
+
|
|
10
29
|
useEffect(() => {
|
|
11
30
|
window.addEventListener('keydown', handleEscKey);
|
|
12
31
|
|
|
13
32
|
return () => {
|
|
14
33
|
window.removeEventListener('keydown', handleEscKey);
|
|
15
34
|
};
|
|
16
|
-
}, []);
|
|
35
|
+
}, [handleEscKey]);
|
|
17
36
|
|
|
18
37
|
useEffect(() => {
|
|
19
38
|
document.body.style.overflow = isOpen ? 'hidden' : 'auto';
|
|
@@ -23,22 +42,6 @@ const useOnClose = (
|
|
|
23
42
|
};
|
|
24
43
|
}, [isOpen]);
|
|
25
44
|
|
|
26
|
-
const handleOnClose = () => {
|
|
27
|
-
if (!dismissable) return null;
|
|
28
|
-
|
|
29
|
-
setIsClosing(true);
|
|
30
|
-
setTimeout(() => {
|
|
31
|
-
onClose();
|
|
32
|
-
setIsClosing(false);
|
|
33
|
-
}, 300);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const handleEscKey = (e: KeyboardEvent) => {
|
|
37
|
-
if (e.code !== 'Escape') return;
|
|
38
|
-
|
|
39
|
-
handleOnClose();
|
|
40
|
-
};
|
|
41
|
-
|
|
42
45
|
const handleContainerClick = (
|
|
43
46
|
e: React.MouseEvent<HTMLDivElement, MouseEvent>
|
|
44
47
|
) => {
|
|
@@ -30,22 +30,19 @@ Modals are dialog overlays that prevent the user from interacting with the rest
|
|
|
30
30
|
|
|
31
31
|
export const RegularModalStory = () => {
|
|
32
32
|
const [display, setDisplay] = useState(false);
|
|
33
|
+
const toggleOpen = () => setDisplay(!display);
|
|
33
34
|
return (
|
|
34
35
|
<>
|
|
35
36
|
<button
|
|
36
37
|
className="p-btn--primary wmn2"
|
|
37
|
-
onClick={
|
|
38
|
-
setDisplay(!display);
|
|
39
|
-
}}
|
|
38
|
+
onClick={toggleOpen}
|
|
40
39
|
>
|
|
41
40
|
Regular modal
|
|
42
41
|
</button>
|
|
43
42
|
<RegularModal
|
|
44
43
|
title="Regular modal title"
|
|
45
44
|
isOpen={display}
|
|
46
|
-
onClose={
|
|
47
|
-
setDisplay(false);
|
|
48
|
-
}}
|
|
45
|
+
onClose={toggleOpen}
|
|
49
46
|
>
|
|
50
47
|
<div style={{ padding: '0 24px 24px 24px' }}>
|
|
51
48
|
<p className="p-p">
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
@keyframes fade-in {
|
|
2
2
|
0% {
|
|
3
3
|
background-color: rgba($color: #000000, $alpha: 0);
|
|
4
|
+
visibility: hidden;
|
|
4
5
|
}
|
|
5
6
|
100% {
|
|
6
7
|
background-color: rgba($color: #000000, $alpha: 0.3);
|
|
8
|
+
visibility: visible;
|
|
7
9
|
}
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
@keyframes fade-out {
|
|
11
13
|
from {
|
|
12
14
|
background-color: rgba($color: #000000, $alpha: 0.3);
|
|
15
|
+
visibility: visible;
|
|
13
16
|
}
|
|
14
17
|
to {
|
|
15
18
|
background-color: rgba($color: #000000, $alpha: 0);
|
|
19
|
+
visibility: hidden;
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
22
|
|
|
@@ -20,10 +24,12 @@
|
|
|
20
24
|
0% {
|
|
21
25
|
transform: translateY(24px) translateX(-50%);
|
|
22
26
|
opacity: 0;
|
|
27
|
+
visibility: hidden;
|
|
23
28
|
}
|
|
24
29
|
100% {
|
|
25
30
|
transform: translateY(0) translateX(-50%);
|
|
26
31
|
opacity: 1;
|
|
32
|
+
visibility: visible;
|
|
27
33
|
}
|
|
28
34
|
}
|
|
29
35
|
|
|
@@ -31,10 +37,12 @@
|
|
|
31
37
|
0% {
|
|
32
38
|
transform: translateY(0) translateX(-50%);
|
|
33
39
|
opacity: 1;
|
|
40
|
+
visibility: visible;
|
|
34
41
|
}
|
|
35
42
|
100% {
|
|
36
43
|
transform: translateY(24px) translateX(-50%);
|
|
37
44
|
opacity: 0;
|
|
45
|
+
visibility: hidden;
|
|
38
46
|
}
|
|
39
47
|
}
|
|
40
48
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapStyle-a64f125f.js","sources":["../src/lib/components/autocompleteAddress/mapStyle.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|