@redneckz/wildless-cms-uni-blocks 0.14.333 → 0.14.334
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/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +108 -50
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/bundle/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/bundle/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/bundle/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/bundle/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/bundle/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/bundle/icons/IconName.d.ts +4 -2
- package/bundle/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/bundle/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/cosmos-static/icons/MapMarkerClusterYellowIcon.svg +1 -0
- package/cosmos-static/icons/sprites.svg +1 -0
- package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +27 -18
- package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
- package/dist/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/dist/components/OfficesAtmsMap/OfficesMap.js +12 -9
- package/dist/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
- package/dist/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/dist/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/dist/components/OfficesAtmsMap/renderDescriptionBlock.js +9 -0
- package/dist/components/OfficesAtmsMap/renderDescriptionBlock.js.map +1 -0
- package/dist/components/OfficesAtmsMap/renderFiltrationForm.js +2 -1
- package/dist/components/OfficesAtmsMap/renderFiltrationForm.js.map +1 -1
- package/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js +35 -0
- package/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js.map +1 -0
- package/dist/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/dist/components/OfficesAtmsMap/useOffices.js +4 -2
- package/dist/components/OfficesAtmsMap/useOffices.js.map +1 -1
- package/dist/icons/IconName.d.ts +4 -2
- package/dist/icons/IconName.js +3 -1
- package/dist/icons/IconName.js.map +1 -1
- package/dist/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/dist/ui-kit/YandexMap/YandexMap.js +2 -2
- package/dist/ui-kit/YandexMap/YandexMap.js.map +1 -1
- package/dist/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/dist/ui-kit/YandexMap/renderClusterer.js +33 -14
- package/dist/ui-kit/YandexMap/renderClusterer.js.map +1 -1
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +27 -18
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/lib/components/OfficesAtmsMap/OfficesMap.js +12 -9
- package/lib/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
- package/lib/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/lib/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +2 -0
- package/lib/components/OfficesAtmsMap/renderDescriptionBlock.js +6 -0
- package/lib/components/OfficesAtmsMap/renderDescriptionBlock.js.map +1 -0
- package/lib/components/OfficesAtmsMap/renderFiltrationForm.js +2 -1
- package/lib/components/OfficesAtmsMap/renderFiltrationForm.js.map +1 -1
- package/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +6 -0
- package/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js +31 -0
- package/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js.map +1 -0
- package/lib/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/lib/components/OfficesAtmsMap/useOffices.js +4 -2
- package/lib/components/OfficesAtmsMap/useOffices.js.map +1 -1
- package/lib/icons/IconName.d.ts +4 -2
- package/lib/icons/IconName.js +3 -1
- package/lib/icons/IconName.js.map +1 -1
- package/lib/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/lib/ui-kit/YandexMap/YandexMap.js +2 -2
- package/lib/ui-kit/YandexMap/YandexMap.js.map +1 -1
- package/lib/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/lib/ui-kit/YandexMap/renderClusterer.js +32 -13
- package/lib/ui-kit/YandexMap/renderClusterer.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +108 -50
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/mobile/bundle/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/mobile/bundle/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/mobile/bundle/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/mobile/bundle/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/mobile/bundle/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/mobile/bundle/icons/IconName.d.ts +4 -2
- package/mobile/bundle/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/mobile/bundle/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +27 -18
- package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
- package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/mobile/dist/components/OfficesAtmsMap/OfficesMap.js +12 -9
- package/mobile/dist/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
- package/mobile/dist/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/mobile/dist/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/mobile/dist/components/OfficesAtmsMap/renderDescriptionBlock.js +9 -0
- package/mobile/dist/components/OfficesAtmsMap/renderDescriptionBlock.js.map +1 -0
- package/mobile/dist/components/OfficesAtmsMap/renderFiltrationForm.js +2 -1
- package/mobile/dist/components/OfficesAtmsMap/renderFiltrationForm.js.map +1 -1
- package/mobile/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/mobile/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js +35 -0
- package/mobile/dist/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js.map +1 -0
- package/mobile/dist/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/mobile/dist/components/OfficesAtmsMap/useOffices.js +4 -2
- package/mobile/dist/components/OfficesAtmsMap/useOffices.js.map +1 -1
- package/mobile/dist/icons/IconName.d.ts +4 -2
- package/mobile/dist/icons/IconName.js +3 -1
- package/mobile/dist/icons/IconName.js.map +1 -1
- package/mobile/dist/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/mobile/dist/ui-kit/YandexMap/YandexMap.js +2 -2
- package/mobile/dist/ui-kit/YandexMap/YandexMap.js.map +1 -1
- package/mobile/dist/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/mobile/dist/ui-kit/YandexMap/renderClusterer.js +33 -14
- package/mobile/dist/ui-kit/YandexMap/renderClusterer.js.map +1 -1
- package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +5 -2
- package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +27 -18
- package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
- package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapProps.d.ts +15 -0
- package/mobile/lib/components/OfficesAtmsMap/OfficesMap.js +12 -9
- package/mobile/lib/components/OfficesAtmsMap/OfficesMap.js.map +1 -1
- package/mobile/lib/components/OfficesAtmsMap/YandexMapProps.d.ts +1 -0
- package/mobile/lib/components/OfficesAtmsMap/renderDescriptionBlock.d.ts +3 -0
- package/mobile/lib/components/OfficesAtmsMap/renderDescriptionBlock.js +6 -0
- package/mobile/lib/components/OfficesAtmsMap/renderDescriptionBlock.js.map +1 -0
- package/mobile/lib/components/OfficesAtmsMap/renderFiltrationForm.js +2 -1
- package/mobile/lib/components/OfficesAtmsMap/renderFiltrationForm.js.map +1 -1
- package/mobile/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.d.ts +7 -0
- package/mobile/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js +31 -0
- package/mobile/lib/components/OfficesAtmsMap/renderRemoteWorkplaceCard.js.map +1 -0
- package/mobile/lib/components/OfficesAtmsMap/useOffices.d.ts +5 -2
- package/mobile/lib/components/OfficesAtmsMap/useOffices.js +4 -2
- package/mobile/lib/components/OfficesAtmsMap/useOffices.js.map +1 -1
- package/mobile/lib/icons/IconName.d.ts +4 -2
- package/mobile/lib/icons/IconName.js +3 -1
- package/mobile/lib/icons/IconName.js.map +1 -1
- package/mobile/lib/ui-kit/YandexMap/YandexMap.d.ts +1 -1
- package/mobile/lib/ui-kit/YandexMap/YandexMap.js +2 -2
- package/mobile/lib/ui-kit/YandexMap/YandexMap.js.map +1 -1
- package/mobile/lib/ui-kit/YandexMap/renderClusterer.d.ts +5 -1
- package/mobile/lib/ui-kit/YandexMap/renderClusterer.js +32 -13
- package/mobile/lib/ui-kit/YandexMap/renderClusterer.js.map +1 -1
- package/mobile/src/components/OfficesAtmsMap/OfficesAtmsMapLayout.tsx +34 -45
- package/mobile/src/components/OfficesAtmsMap/OfficesAtmsMapProps.tsx +15 -0
- package/mobile/src/components/OfficesAtmsMap/OfficesMap.tsx +28 -12
- package/mobile/src/components/OfficesAtmsMap/YandexMapProps.ts +1 -0
- package/mobile/src/components/OfficesAtmsMap/renderDescriptionBlock.tsx +29 -0
- package/mobile/src/components/OfficesAtmsMap/renderFiltrationForm.tsx +2 -1
- package/mobile/src/components/OfficesAtmsMap/renderRemoteWorkplaceCard.tsx +86 -0
- package/mobile/src/components/OfficesAtmsMap/useOffices.ts +11 -4
- package/mobile/src/icons/IconName.ts +5 -5
- package/mobile/src/icons/MapMarkerClusterYellowIcon.svg +1 -0
- package/mobile/src/ui-kit/YandexMap/YandexMap.tsx +3 -3
- package/mobile/src/ui-kit/YandexMap/renderClusterer.ts +62 -16
- package/package.json +1 -1
- package/src/components/OfficesAtmsMap/OfficesAtmsMapLayout.tsx +34 -45
- package/src/components/OfficesAtmsMap/OfficesAtmsMapProps.tsx +15 -0
- package/src/components/OfficesAtmsMap/OfficesMap.tsx +28 -12
- package/src/components/OfficesAtmsMap/YandexMapProps.ts +1 -0
- package/src/components/OfficesAtmsMap/renderDescriptionBlock.tsx +29 -0
- package/src/components/OfficesAtmsMap/renderFiltrationForm.tsx +2 -1
- package/src/components/OfficesAtmsMap/renderRemoteWorkplaceCard.tsx +86 -0
- package/src/components/OfficesAtmsMap/useOffices.ts +11 -4
- package/src/icons/IconName.ts +5 -1
- package/src/icons/MapMarkerClusterYellowIcon.svg +1 -0
- package/src/ui-kit/YandexMap/YandexMap.tsx +3 -3
- package/src/ui-kit/YandexMap/renderClusterer.ts +62 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"AACA,0BAA0B;AAC1B,uCAAuC;AAEvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAC3C,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,11 +29,11 @@ export const YandexMap = JSX(({ points, className = '', zoom = 5 }) => {
|
|
|
29
29
|
controls: [],
|
|
30
30
|
suppressMapOpenBlock: true,
|
|
31
31
|
});
|
|
32
|
-
renderClusterer(yandexMaps, map.current, points);
|
|
32
|
+
renderClusterer({ yandexMaps, map: map.current, points });
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
else if (yandexMaps) {
|
|
36
|
-
renderClusterer(yandexMaps, map.current, points);
|
|
36
|
+
renderClusterer({ yandexMaps, map: map.current, points });
|
|
37
37
|
if (!points?.length) {
|
|
38
38
|
map.current.setCenter(DEFAULT_CENTER_COORDS);
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YandexMap.js","sourceRoot":"","sources":["../../../src/ui-kit/YandexMap/YandexMap.tsx"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,cAAc;AACd,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAErD,oHAAoH;AACpH,sDAAsD;AACtD,0DAA0D;AAC1D,6EAA6E;AAC7E,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE;IACpF,MAAM,GAAG,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE;YACjB,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE;gBACrB,kEAAkE;gBAClE,IAAI,GAAG,CAAC,OAAO,EAAE;oBACf,OAAO;iBACR;gBAED,GAAG,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;oBACtC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qBAAqB;oBAC/D,IAAI;oBACJ,QAAQ,EAAE,EAAE;oBACZ,oBAAoB,EAAE,IAAI;iBAC3B,CAAC,CAAC;gBAEH,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"YandexMap.js","sourceRoot":"","sources":["../../../src/ui-kit/YandexMap/YandexMap.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type ymaps from 'yandex-maps';
|
|
2
2
|
import { type BalloonPoints } from '../../components/OfficesAtmsMap/YandexMapProps';
|
|
3
|
-
export declare function renderClusterer(yandexMaps
|
|
3
|
+
export declare function renderClusterer({ yandexMaps, map, points, }: {
|
|
4
|
+
yandexMaps: typeof ymaps;
|
|
5
|
+
map: ymaps.Map;
|
|
6
|
+
points: BalloonPoints[];
|
|
7
|
+
}): void;
|
|
@@ -1,10 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
const MapMarkerClusterIcon = '/icons/MapMarkerClusterIcon.svg';
|
|
2
|
+
const MapMarkerClusterYellowIcon = '/icons/MapMarkerClusterYellowIcon.svg';
|
|
3
|
+
export function renderClusterer({ yandexMaps, map, points, }) {
|
|
2
4
|
map.geoObjects.removeAll();
|
|
3
5
|
const clusterIconContentLayout = yandexMaps.templateLayoutFactory.createClass('<div style="margin-top: -3px;">{{properties.geoObjects.length}}</div>');
|
|
4
|
-
const
|
|
6
|
+
const officeClusterer = defineClusterer('offices', yandexMaps, clusterIconContentLayout);
|
|
7
|
+
if (points.length && points.every((_) => 'type' in _)) {
|
|
8
|
+
const remoteWorkplaceClusterer = defineClusterer('workplaces', yandexMaps, clusterIconContentLayout);
|
|
9
|
+
const remoteWorkplaceGeoObjects = defineGeoObjects(points.filter((_) => _.type === 'workplaces'), 'workplaces', yandexMaps);
|
|
10
|
+
const officesGeoObjects = defineGeoObjects(points.filter((_) => _.type === 'offices'), 'offices', yandexMaps);
|
|
11
|
+
officeClusterer.add(officesGeoObjects);
|
|
12
|
+
remoteWorkplaceClusterer.add(remoteWorkplaceGeoObjects);
|
|
13
|
+
map.geoObjects.add(remoteWorkplaceClusterer);
|
|
14
|
+
map.geoObjects.add(officeClusterer);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
const geoObjects = defineGeoObjects(points, 'offices', yandexMaps);
|
|
18
|
+
officeClusterer.add(geoObjects);
|
|
19
|
+
map.geoObjects.add(officeClusterer);
|
|
20
|
+
}
|
|
21
|
+
map.setBounds(yandexMaps.util.bounds.fromPoints(points.map((_) => _.coords))).then(() => {
|
|
22
|
+
if (map.getZoom() > 10) {
|
|
23
|
+
map.setZoom(10);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const defineClusterer = (type, yandexMaps, clusterIconContentLayout) => {
|
|
28
|
+
return new yandexMaps.Clusterer({
|
|
5
29
|
clusterIcons: [
|
|
6
30
|
{
|
|
7
|
-
href: '
|
|
31
|
+
href: type === 'offices' ? MapMarkerClusterIcon : MapMarkerClusterYellowIcon,
|
|
8
32
|
size: [78, 84],
|
|
9
33
|
offset: [-35, -50],
|
|
10
34
|
},
|
|
@@ -13,23 +37,18 @@ export function renderClusterer(yandexMaps, map, points) {
|
|
|
13
37
|
clusterHideIconOnBalloonOpen: false,
|
|
14
38
|
geoObjectHideIconOnBalloonOpen: false,
|
|
15
39
|
});
|
|
16
|
-
|
|
40
|
+
};
|
|
41
|
+
const defineGeoObjects = (pointArr, type, yandexMaps) => {
|
|
42
|
+
return pointArr.map(({ coords, content }) => new yandexMaps.Placemark(coords, {
|
|
17
43
|
balloonContentHeader: content?.header,
|
|
18
44
|
balloonContentBody: content?.body,
|
|
19
45
|
balloonContentFooter: content?.footer,
|
|
20
46
|
hintContent: content?.hint,
|
|
21
47
|
}, {
|
|
22
48
|
iconLayout: 'default#image',
|
|
23
|
-
iconImageHref: '
|
|
49
|
+
iconImageHref: type === 'offices' ? MapMarkerClusterIcon : MapMarkerClusterYellowIcon,
|
|
24
50
|
iconImageSize: [78, 84],
|
|
25
51
|
iconImageOffset: [-35, -50],
|
|
26
52
|
}));
|
|
27
|
-
|
|
28
|
-
map.geoObjects.add(clusterer);
|
|
29
|
-
map.setBounds(yandexMaps.util.bounds.fromPoints(points.map((_) => _.coords))).then(() => {
|
|
30
|
-
if (map.getZoom() > 10) {
|
|
31
|
-
map.setZoom(10);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
53
|
+
};
|
|
35
54
|
//# sourceMappingURL=renderClusterer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderClusterer.js","sourceRoot":"","sources":["../../../src/ui-kit/YandexMap/renderClusterer.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"renderClusterer.js","sourceRoot":"","sources":["../../../src/ui-kit/YandexMap/renderClusterer.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,12 @@ import { type VNode } from '../../model/VNode';
|
|
|
5
5
|
import { Button } from '../../ui-kit/Button/Button';
|
|
6
6
|
import { ClientOnly } from '../../ui-kit/ClientOnly';
|
|
7
7
|
import { Heading } from '../../ui-kit/Heading/Heading';
|
|
8
|
-
import { Img } from '../../ui-kit/Img/Img';
|
|
9
|
-
import { RichText } from '../../ui-kit/RichText/RichText';
|
|
10
8
|
import { Text } from '../../ui-kit/Text/Text';
|
|
11
9
|
import { YandexMap } from '../../ui-kit/YandexMap/YandexMap';
|
|
12
10
|
import { style } from '../../utils/style';
|
|
13
11
|
import { type AtmsDef } from './OfficesAtmsMapContent';
|
|
14
|
-
import { type Atm, type Branch } from './OfficesAtmsMapProps';
|
|
12
|
+
import { type Atm, type Branch, type RemoteWorkplace } from './OfficesAtmsMapProps';
|
|
13
|
+
import { renderDescriptionBlock } from './renderDescriptionBlock';
|
|
15
14
|
import { renderFiltrationForm } from './renderFiltrationForm';
|
|
16
15
|
import { type BalloonContent } from './YandexMapProps';
|
|
17
16
|
|
|
@@ -23,9 +22,12 @@ export type InitFilterState = Record<string, boolean>;
|
|
|
23
22
|
export interface OfficesAtmsMapLayoutProps<T> {
|
|
24
23
|
className?: string;
|
|
25
24
|
data?: T[];
|
|
25
|
+
remoteWorkplaces?: T[];
|
|
26
26
|
renderCard?: (item: T, index: number) => VNode;
|
|
27
|
+
renderRemoteWorkplaceCard?: (item: T, index: number) => VNode;
|
|
27
28
|
filterItems?: (data: T[], filtrationState: InitFilterState) => T[];
|
|
28
29
|
getBalloon?: (item: T) => BalloonContent;
|
|
30
|
+
getBalloonRemoteWorkplaces?: (item: T) => BalloonContent;
|
|
29
31
|
initFilterState?: InitFilterState;
|
|
30
32
|
descriptionData?: AtmsDef;
|
|
31
33
|
title?: string;
|
|
@@ -34,13 +36,16 @@ export interface OfficesAtmsMapLayoutProps<T> {
|
|
|
34
36
|
const filtersVisibleStyles = (activeButton: string) =>
|
|
35
37
|
activeButton === 'all' ? 'block' : 'hidden';
|
|
36
38
|
|
|
37
|
-
export const OfficesAtmsMapLayout = JSX<OfficesAtmsMapLayoutProps<Branch | Atm>>(
|
|
39
|
+
export const OfficesAtmsMapLayout = JSX<OfficesAtmsMapLayoutProps<Branch | Atm | RemoteWorkplace>>(
|
|
38
40
|
({
|
|
39
41
|
className,
|
|
40
42
|
data = [],
|
|
43
|
+
remoteWorkplaces = [],
|
|
41
44
|
renderCard = defaultEmptyFunction,
|
|
45
|
+
renderRemoteWorkplaceCard = defaultEmptyFunction,
|
|
42
46
|
filterItems = defaultFilterItems,
|
|
43
47
|
getBalloon = defaultEmptyFunction,
|
|
48
|
+
getBalloonRemoteWorkplaces = defaultEmptyFunction,
|
|
44
49
|
initFilterState = {},
|
|
45
50
|
descriptionData,
|
|
46
51
|
title,
|
|
@@ -49,18 +54,30 @@ export const OfficesAtmsMapLayout = JSX<OfficesAtmsMapLayoutProps<Branch | Atm>>
|
|
|
49
54
|
|
|
50
55
|
const [filtrationState, { field, reset }] = useForm(initFilterState);
|
|
51
56
|
|
|
52
|
-
const [filteredItems, points, lengthItems] = useMemo(() => {
|
|
57
|
+
const [filteredItems, points, filteredRemoteWorkplaces, lengthItems] = useMemo(() => {
|
|
53
58
|
const _filteredItems = filterItems(data, filtrationState);
|
|
59
|
+
const _filteredRemoteWorkplaces = filterItems(remoteWorkplaces, filtrationState);
|
|
54
60
|
|
|
55
|
-
const _points =
|
|
56
|
-
.map((_) => ({
|
|
61
|
+
const _points = [
|
|
62
|
+
..._filteredItems.map((_) => ({
|
|
63
|
+
type: 'offices',
|
|
57
64
|
coords: [Number(_.gpsLatitude), Number(_.gpsLongitude)]?.filter(Boolean),
|
|
58
65
|
content: getBalloon(_),
|
|
59
|
-
}))
|
|
60
|
-
.
|
|
66
|
+
})),
|
|
67
|
+
..._filteredRemoteWorkplaces.map((_: RemoteWorkplace) => ({
|
|
68
|
+
type: 'workplaces',
|
|
69
|
+
coords: [Number(_.gpsLatitude), Number(_.gpsLongitude)]?.filter(Boolean),
|
|
70
|
+
content: getBalloonRemoteWorkplaces({
|
|
71
|
+
address: _.address,
|
|
72
|
+
workScheduleDescription: _.workScheduleDescription,
|
|
73
|
+
}),
|
|
74
|
+
})),
|
|
75
|
+
].filter((_) => _.coords && _.coords.length === 2);
|
|
76
|
+
|
|
77
|
+
const itemsLength = _filteredItems.length + _filteredRemoteWorkplaces?.length;
|
|
61
78
|
|
|
62
|
-
return [_filteredItems, _points,
|
|
63
|
-
}, [data, filtrationState]);
|
|
79
|
+
return [_filteredItems, _points, _filteredRemoteWorkplaces, itemsLength];
|
|
80
|
+
}, [data, remoteWorkplaces, filtrationState]);
|
|
64
81
|
|
|
65
82
|
const [activeButton, setActiveButton] = useState('all');
|
|
66
83
|
|
|
@@ -89,6 +106,7 @@ export const OfficesAtmsMapLayout = JSX<OfficesAtmsMapLayoutProps<Branch | Atm>>
|
|
|
89
106
|
</div>
|
|
90
107
|
</div>
|
|
91
108
|
{filteredItems.map(renderCard)}
|
|
109
|
+
{filteredRemoteWorkplaces.map(renderRemoteWorkplaceCard)}
|
|
92
110
|
</div>
|
|
93
111
|
);
|
|
94
112
|
},
|
|
@@ -97,13 +115,13 @@ export const OfficesAtmsMapLayout = JSX<OfficesAtmsMapLayoutProps<Branch | Atm>>
|
|
|
97
115
|
const renderButtonsGroup = (
|
|
98
116
|
data: Branch[],
|
|
99
117
|
activeButton: string,
|
|
100
|
-
|
|
118
|
+
onButtonClick: (item: string) => void,
|
|
101
119
|
) => {
|
|
102
120
|
const allButtonVersion = activeButton === 'all' ? 'primary' : 'secondary';
|
|
103
121
|
|
|
104
122
|
const businessButtonVersion = activeButton === 'business' ? 'primary' : 'secondary';
|
|
105
123
|
|
|
106
|
-
const
|
|
124
|
+
const handleClick = (e: any, key: string, branches: Branch[]) => {
|
|
107
125
|
if (e.currentTarget === e.target && key === 'business') {
|
|
108
126
|
branches.filter(
|
|
109
127
|
(branch) =>
|
|
@@ -113,23 +131,19 @@ const renderButtonsGroup = (
|
|
|
113
131
|
);
|
|
114
132
|
}
|
|
115
133
|
|
|
116
|
-
|
|
134
|
+
onButtonClick(key);
|
|
117
135
|
|
|
118
136
|
return branches;
|
|
119
137
|
};
|
|
120
138
|
|
|
121
139
|
return (
|
|
122
140
|
<div className="flex gap-lg flex-col sm:flex-row pb-lg">
|
|
123
|
-
<Button
|
|
124
|
-
data-id="all"
|
|
125
|
-
onClick={(e) => handleOnClick(e, 'all', data)}
|
|
126
|
-
version={allButtonVersion}
|
|
127
|
-
>
|
|
141
|
+
<Button data-id="all" onClick={(e) => handleClick(e, 'all', data)} version={allButtonVersion}>
|
|
128
142
|
Для физических лиц
|
|
129
143
|
</Button>
|
|
130
144
|
<Button
|
|
131
145
|
data-id="business"
|
|
132
|
-
onClick={(e) =>
|
|
146
|
+
onClick={(e) => handleClick(e, 'business', data)}
|
|
133
147
|
version={businessButtonVersion}
|
|
134
148
|
>
|
|
135
149
|
Для юридических лиц
|
|
@@ -137,28 +151,3 @@ const renderButtonsGroup = (
|
|
|
137
151
|
</div>
|
|
138
152
|
);
|
|
139
153
|
};
|
|
140
|
-
|
|
141
|
-
const renderDescriptionBlock = ({ __html, list }: AtmsDef) =>
|
|
142
|
-
__html || list?.length ? (
|
|
143
|
-
<div className="mb-2xl border-b sm:border border-main-divider sm:rounded-md">
|
|
144
|
-
{__html ? (
|
|
145
|
-
<div className="mb-2xl">
|
|
146
|
-
<RichText __html={__html} />
|
|
147
|
-
</div>
|
|
148
|
-
) : null}
|
|
149
|
-
{list?.length ? (
|
|
150
|
-
<div className="flex flex-col sm:flex-row gap-2xl sm:flex-wrap pb-2xl sm:pb-xl">
|
|
151
|
-
{list.map((item, i) => (
|
|
152
|
-
<div key={String(i)} className="flex gap-xs items-center">
|
|
153
|
-
{item?.image ? <Img image={item.image} /> : null}
|
|
154
|
-
{item?.text ? (
|
|
155
|
-
<Text size="text-m" font="font-light">
|
|
156
|
-
{item.text}
|
|
157
|
-
</Text>
|
|
158
|
-
) : null}
|
|
159
|
-
</div>
|
|
160
|
-
))}
|
|
161
|
-
</div>
|
|
162
|
-
) : null}
|
|
163
|
-
</div>
|
|
164
|
-
) : null;
|
|
@@ -82,6 +82,21 @@ export interface Branch {
|
|
|
82
82
|
transferringDataToBiometricSystem?: false;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
+
export interface RemoteWorkplace {
|
|
86
|
+
id?: number;
|
|
87
|
+
region?: {
|
|
88
|
+
id?: number;
|
|
89
|
+
code?: string;
|
|
90
|
+
name?: string;
|
|
91
|
+
slug?: string;
|
|
92
|
+
};
|
|
93
|
+
landmark?: string;
|
|
94
|
+
workScheduleDescription?: string;
|
|
95
|
+
description?: string;
|
|
96
|
+
gpsLatitude?: number;
|
|
97
|
+
gpsLongitude?: number;
|
|
98
|
+
address?: string;
|
|
99
|
+
}
|
|
85
100
|
export interface Atm {
|
|
86
101
|
location?: string;
|
|
87
102
|
address?: string;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { useLocation } from '../../hooks/useLocation';
|
|
3
3
|
import { OfficesAtmsMapLayout } from './OfficesAtmsMapLayout';
|
|
4
|
-
import { type Branch } from './OfficesAtmsMapProps';
|
|
4
|
+
import { type Branch, type RemoteWorkplace } from './OfficesAtmsMapProps';
|
|
5
5
|
import { getOfficePoint, renderOfficeCard } from './renderOfficeCard';
|
|
6
|
+
import { getRemoteWorkplacePoint, renderRemoteWorkplaceCard } from './renderRemoteWorkplaceCard';
|
|
6
7
|
import { useOffices } from './useOffices';
|
|
7
8
|
|
|
8
9
|
const INITIAL_FILTRATION_STATE = {
|
|
9
10
|
workingSaturday: false,
|
|
10
11
|
premiumService: false,
|
|
11
12
|
privateBanking: false,
|
|
13
|
+
remoteWorkplace: false,
|
|
12
14
|
sellingCoins: false,
|
|
13
15
|
buyingCoins: false,
|
|
14
16
|
bullionOperations: false,
|
|
@@ -17,15 +19,23 @@ const INITIAL_FILTRATION_STATE = {
|
|
|
17
19
|
};
|
|
18
20
|
|
|
19
21
|
const FILTRATION_PREDICATES = {
|
|
20
|
-
workingSaturday: (item: Branch) =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
Boolean(item.
|
|
22
|
+
workingSaturday: (item: Branch | RemoteWorkplace) =>
|
|
23
|
+
Boolean('workSchedule' in item && item.workSchedule?.workingSaturday),
|
|
24
|
+
premiumService: (item: Branch | RemoteWorkplace) =>
|
|
25
|
+
Boolean('premiumService' in item && item.premiumService),
|
|
26
|
+
privateBanking: (item: Branch | RemoteWorkplace) =>
|
|
27
|
+
Boolean('privateBanking' in item && item.privateBanking),
|
|
28
|
+
remoteWorkplace: (item: Branch | RemoteWorkplace) => Boolean('workScheduleDescription' in item),
|
|
29
|
+
sellingCoins: (item: Branch | RemoteWorkplace) =>
|
|
30
|
+
Boolean('sellingCoins' in item && item.sellingCoins),
|
|
31
|
+
buyingCoins: (item: Branch | RemoteWorkplace) =>
|
|
32
|
+
Boolean('buyingCoins' in item && item.buyingCoins),
|
|
33
|
+
bullionOperations: (item: Branch | RemoteWorkplace) =>
|
|
34
|
+
Boolean('bullionOperations' in item && item.bullionOperations),
|
|
35
|
+
preciousMetalsOperations: (item: Branch | RemoteWorkplace) =>
|
|
36
|
+
Boolean('preciousMetalsOperations' in item && item.preciousMetalsOperations),
|
|
37
|
+
transferringDataToBiometricSystem: (item: Branch | RemoteWorkplace) =>
|
|
38
|
+
Boolean('transferringDataToBiometricSystem' in item && item.transferringDataToBiometricSystem),
|
|
29
39
|
};
|
|
30
40
|
|
|
31
41
|
export interface OfficesMapProps {
|
|
@@ -43,16 +53,22 @@ export const OfficesMap = JSX<OfficesMapProps>(({ className }) => {
|
|
|
43
53
|
<OfficesAtmsMapLayout
|
|
44
54
|
className={className}
|
|
45
55
|
filterItems={filterItems}
|
|
46
|
-
data={officesData}
|
|
56
|
+
data={officesData[0]?.branches}
|
|
57
|
+
remoteWorkplaces={officesData[0]?.remoteWorkplaces}
|
|
47
58
|
initFilterState={INITIAL_FILTRATION_STATE}
|
|
48
59
|
renderCard={renderOfficeCard}
|
|
60
|
+
renderRemoteWorkplaceCard={renderRemoteWorkplaceCard}
|
|
49
61
|
getBalloon={getOfficePoint}
|
|
62
|
+
getBalloonRemoteWorkplaces={getRemoteWorkplacePoint}
|
|
50
63
|
title={`Офисы филиала ${currentLocation?.name}`}
|
|
51
64
|
/>
|
|
52
65
|
);
|
|
53
66
|
});
|
|
54
67
|
|
|
55
|
-
const filterItems = (
|
|
68
|
+
const filterItems = (
|
|
69
|
+
data: (Branch | RemoteWorkplace)[],
|
|
70
|
+
filtrationState: Record<string, boolean>,
|
|
71
|
+
) => {
|
|
56
72
|
const truthyFilters = Object.keys(filtrationState).filter((key) => filtrationState[key]);
|
|
57
73
|
|
|
58
74
|
return data.filter((item) => truthyFilters.every((_) => FILTRATION_PREDICATES[_](item)));
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Img } from '../../ui-kit/Img/Img';
|
|
2
|
+
import { RichText } from '../../ui-kit/RichText/RichText';
|
|
3
|
+
import { Text } from '../../ui-kit/Text/Text';
|
|
4
|
+
import { type AtmsDef } from './OfficesAtmsMapContent';
|
|
5
|
+
|
|
6
|
+
export const renderDescriptionBlock = ({ __html, list }: AtmsDef) =>
|
|
7
|
+
__html || list?.length ? (
|
|
8
|
+
<div className="mb-2xl border-b sm:border border-main-divider sm:rounded-md">
|
|
9
|
+
{__html ? (
|
|
10
|
+
<div className="mb-2xl">
|
|
11
|
+
<RichText __html={__html} />
|
|
12
|
+
</div>
|
|
13
|
+
) : null}
|
|
14
|
+
{list?.length ? (
|
|
15
|
+
<div className="flex flex-col sm:flex-row gap-2xl sm:flex-wrap pb-2xl sm:pb-xl">
|
|
16
|
+
{list.map((item, i) => (
|
|
17
|
+
<div key={String(i)} className="flex gap-xs items-center">
|
|
18
|
+
{item?.image ? <Img image={item.image} /> : null}
|
|
19
|
+
{item?.text ? (
|
|
20
|
+
<Text size="text-m" font="font-light">
|
|
21
|
+
{item.text}
|
|
22
|
+
</Text>
|
|
23
|
+
) : null}
|
|
24
|
+
</div>
|
|
25
|
+
))}
|
|
26
|
+
</div>
|
|
27
|
+
) : null}
|
|
28
|
+
</div>
|
|
29
|
+
) : null;
|
|
@@ -21,6 +21,7 @@ const FILTRATION_LABELS = {
|
|
|
21
21
|
bullionOperations: 'Операции со слитками',
|
|
22
22
|
preciousMetalsOperations: 'Операции с драгоценными металлами',
|
|
23
23
|
transferringDataToBiometricSystem: 'Передача фото и голоса в Единую биометрическую систему',
|
|
24
|
+
remoteWorkplace: 'Удаленное рабочее место',
|
|
24
25
|
};
|
|
25
26
|
|
|
26
27
|
const COMMON_FILTERS_STYLES = 'flex flex-col sm:flex-row sm:flex-wrap gap-3xl pb-2xl';
|
|
@@ -30,7 +31,7 @@ export const renderFiltrationForm = (
|
|
|
30
31
|
{ field, reset }: { field: FormFieldRegisterer<any>; reset: () => void },
|
|
31
32
|
onlyOffice?: boolean,
|
|
32
33
|
) => {
|
|
33
|
-
const visibleFiltersNum =
|
|
34
|
+
const visibleFiltersNum = 4;
|
|
34
35
|
|
|
35
36
|
const filtersCheckbox = (filters || []).map((key) => (
|
|
36
37
|
<Checkbox key={key} text={FILTRATION_LABELS[key]} {...field(key)} />
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Foldable } from '../../ui-kit/Foldable/Foldable';
|
|
2
|
+
import { FoldableSection } from '../../ui-kit/Foldable/FoldableSection';
|
|
3
|
+
import { Icon } from '../../ui-kit/Icon/Icon';
|
|
4
|
+
import { Text } from '../../ui-kit/Text/Text';
|
|
5
|
+
import { CardCell } from './CardCell';
|
|
6
|
+
import { CardRow } from './CardRow';
|
|
7
|
+
import { type RemoteWorkplace } from './OfficesAtmsMapProps';
|
|
8
|
+
import { renderFoldButton } from './renderFoldButton';
|
|
9
|
+
|
|
10
|
+
export const renderRemoteWorkplaceCard = (
|
|
11
|
+
{ address, workScheduleDescription }: RemoteWorkplace,
|
|
12
|
+
index: number,
|
|
13
|
+
) => {
|
|
14
|
+
if (!workScheduleDescription) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<div key={String(index)} className="bg-white col-span-12 p-3xl sm:border-green sm:border">
|
|
20
|
+
<div className="sm:flex sm:justify-between">
|
|
21
|
+
<div>
|
|
22
|
+
<Text size="text-h4">Удаленное рабочее место</Text>
|
|
23
|
+
{address ? (
|
|
24
|
+
<div className="flex pb-xl pt-xs gap-2xs">
|
|
25
|
+
<Icon name="GeolocationIcon" width="24" height="24" />
|
|
26
|
+
<Text size="text-l">{address}</Text>
|
|
27
|
+
</div>
|
|
28
|
+
) : null}
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
<div className="hidden sm:block">
|
|
32
|
+
{renderCardContent({
|
|
33
|
+
workScheduleDescription,
|
|
34
|
+
})}
|
|
35
|
+
</div>
|
|
36
|
+
<Foldable
|
|
37
|
+
className="block sm:hidden"
|
|
38
|
+
renderFoldableSection={({ isUnfolded }) => {
|
|
39
|
+
return (
|
|
40
|
+
<FoldableSection isUnfolded={isUnfolded}>
|
|
41
|
+
{renderCardContent({
|
|
42
|
+
workScheduleDescription,
|
|
43
|
+
})}
|
|
44
|
+
</FoldableSection>
|
|
45
|
+
);
|
|
46
|
+
}}
|
|
47
|
+
//** TODO: remove styles with refactoring DefaultFoldButton*/
|
|
48
|
+
renderFoldButton={({ isUnfolded, onToggle }) => renderFoldButton({ isUnfolded, onToggle })}
|
|
49
|
+
/>
|
|
50
|
+
</div>
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const renderCardContent = ({ workScheduleDescription }: RemoteWorkplace) => {
|
|
55
|
+
return (
|
|
56
|
+
<div>
|
|
57
|
+
<CardRow className="flex">
|
|
58
|
+
<CardCell label="Операции для физических лиц">
|
|
59
|
+
<Text>Оформление и обслуживание кредитов, счетов, вкладов</Text>
|
|
60
|
+
</CardCell>
|
|
61
|
+
<CardCell label="Операции для физических лиц">
|
|
62
|
+
<Text>Оформление и обслуживание банковских карт</Text>
|
|
63
|
+
</CardCell>
|
|
64
|
+
<CardCell label="Операции для физических лиц">
|
|
65
|
+
<Text>Инвестиционное и накопительное страхование</Text>
|
|
66
|
+
</CardCell>
|
|
67
|
+
<CardCell label="Операции для физических лиц">
|
|
68
|
+
<Text>Безналичные операции в рублях, переводы без открытия счёта</Text>
|
|
69
|
+
</CardCell>
|
|
70
|
+
</CardRow>
|
|
71
|
+
<CardCell label="Режим работы" className="max-w-none">
|
|
72
|
+
<Text>{workScheduleDescription}</Text>
|
|
73
|
+
</CardCell>
|
|
74
|
+
</div>
|
|
75
|
+
);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const getRemoteWorkplacePoint = ({
|
|
79
|
+
address = '',
|
|
80
|
+
workScheduleDescription,
|
|
81
|
+
}: RemoteWorkplace) => {
|
|
82
|
+
const header = 'Удаленное рабочее место';
|
|
83
|
+
const body = `${address} ${workScheduleDescription}`;
|
|
84
|
+
|
|
85
|
+
return { header, body };
|
|
86
|
+
};
|
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
import { useAsyncData } from '@redneckz/uni-jsx/lib/hooks/useAsyncData';
|
|
2
2
|
import { fetchJSON } from '../../utils/fetchJSON';
|
|
3
|
-
import { type Branch } from './OfficesAtmsMapProps';
|
|
3
|
+
import { type Branch, type RemoteWorkplace } from './OfficesAtmsMapProps';
|
|
4
4
|
|
|
5
5
|
const EMPTY_VALUE = [];
|
|
6
6
|
|
|
7
7
|
export function useOffices(regionCode?: string) {
|
|
8
8
|
const { data = EMPTY_VALUE } = useAsyncData(
|
|
9
|
-
`/api/v1/
|
|
9
|
+
`/api/v1/branchesAndRemoteWorkplaces?regionCode=${regionCode}`,
|
|
10
10
|
fetchMap,
|
|
11
11
|
);
|
|
12
12
|
|
|
13
13
|
return data;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
const fetchMap = async (
|
|
17
|
-
|
|
16
|
+
const fetchMap = async (
|
|
17
|
+
url: string,
|
|
18
|
+
): Promise<{ branches: Branch[]; remoteWorkplaces: RemoteWorkplace[] }[]> => {
|
|
19
|
+
const result = await fetchJSON<{ branches: Branch[]; remoteWorkplaces: RemoteWorkplace[] }[]>(
|
|
20
|
+
url,
|
|
21
|
+
{
|
|
22
|
+
method: 'GET',
|
|
23
|
+
},
|
|
24
|
+
);
|
|
18
25
|
|
|
19
26
|
return Array.isArray(result) ? result : EMPTY_VALUE;
|
|
20
27
|
};
|