@map-colonies/react-components 3.13.1 → 3.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -58,6 +58,7 @@ interface ICameraState {
58
58
  }
59
59
  export class CesiumViewer extends CesiumViewerCls {
60
60
  public layersManager?: LayerManager;
61
+ private useOptimizedTileRequests?: boolean;
61
62
 
62
63
  public constructor(
63
64
  container: string | Element,
@@ -65,6 +66,14 @@ export class CesiumViewer extends CesiumViewerCls {
65
66
  ) {
66
67
  super(container, options);
67
68
  }
69
+
70
+ public get shouldOptimizedTileRequests(): boolean {
71
+ return this.useOptimizedTileRequests ?? false;
72
+ }
73
+
74
+ public set shouldOptimizedTileRequests(useOptimizedTileRequests: boolean) {
75
+ this.useOptimizedTileRequests = useOptimizedTileRequests;
76
+ }
68
77
  }
69
78
 
70
79
  const mapContext = createContext<CesiumViewer | null>(null);
@@ -103,6 +112,7 @@ export interface CesiumMapProps extends ViewerProps {
103
112
  locale?: { [key: string]: string };
104
113
  sceneModes?: CesiumSceneModeEnum[];
105
114
  baseMaps?: IBaseMaps;
115
+ useOptimizedTileRequests?: boolean;
106
116
  terrainProvider?: TerrainProvider;
107
117
  imageryContextMenu?: React.ReactElement<IContextMenuData>;
108
118
  imageryContextMenuSize?: {
@@ -209,6 +219,9 @@ export const CesiumMap: React.FC<CesiumMapProps> = (props) => {
209
219
 
210
220
  useEffect(() => {
211
221
  if (mapViewRef) {
222
+ mapViewRef.shouldOptimizedTileRequests =
223
+ props.useOptimizedTileRequests ?? false;
224
+
212
225
  mapViewRef.layersManager = new LayerManager(
213
226
  mapViewRef,
214
227
  props.legends?.mapLegendsExtractor,
@@ -219,8 +232,16 @@ export const CesiumMap: React.FC<CesiumMapProps> = (props) => {
219
232
  }
220
233
  );
221
234
  }
235
+ // eslint-disable-next-line react-hooks/exhaustive-deps
222
236
  }, [mapViewRef]);
223
237
 
238
+ useEffect(() => {
239
+ if (mapViewRef) {
240
+ mapViewRef.shouldOptimizedTileRequests =
241
+ props.useOptimizedTileRequests ?? false;
242
+ }
243
+ }, [props.useOptimizedTileRequests, mapViewRef]);
244
+
224
245
  useEffect(() => {
225
246
  setSceneModes(
226
247
  props.sceneModes ?? [
@@ -1,5 +1,10 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
- import { Cartesian3, Math as CesiumMath, WebMercatorProjection, ScreenSpaceEventType } from 'cesium';
2
+ import {
3
+ Cartesian3,
4
+ Math as CesiumMath,
5
+ WebMercatorProjection,
6
+ ScreenSpaceEventType,
7
+ } from 'cesium';
3
8
  import { CesiumViewer, useCesiumMap } from '../map';
4
9
 
5
10
  import './coordinates-tracker.tool.css';
@@ -1,81 +1,81 @@
1
- import React from 'react';
2
- import { shallow, mount } from 'enzyme';
3
- import { KeyboardDateTimePicker } from '@material-ui/pickers';
4
- import { Button } from '@map-colonies/react-core';
5
- import { DateTimeRangePicker } from './date-range-picker';
6
-
7
- const date = new Date(1990, 1, 1);
8
-
9
- it('set the values of to and from to the props of the date pickers when changed', () => {
10
- const wrapper = mount(
11
- <DateTimeRangePicker
12
- onChange={() => {
13
- // do nothing for linitng
14
- }}
15
- />
16
- );
17
- wrapper.setProps({ from: date, to: date });
18
-
19
- wrapper.update();
20
- const pickers = wrapper.find(KeyboardDateTimePicker);
21
- const fromRangePicker = pickers.first();
22
- const toRangePicker = pickers.at(1);
23
-
24
- expect(fromRangePicker.prop('value')?.valueOf()).toBe(date.getTime());
25
- expect(toRangePicker.prop('value')?.valueOf()).toBe(date.getTime());
26
- });
27
-
28
- it('calls on change when button is clicked', () => {
29
- const onChangeMock = jest.fn();
30
- const wrapper = mount(
31
- <DateTimeRangePicker from={date} to={date} onChange={onChangeMock} />
32
- );
33
-
34
- // eslint-disable-next-line
35
- wrapper.find(Button).props().onClick?.();
36
-
37
- expect(onChangeMock).toHaveBeenCalledWith({ from: date, to: date });
38
-
39
- wrapper.setProps({ to: null });
40
- wrapper.update();
41
-
42
- // eslint-disable-next-line
43
- wrapper.find(Button).props().onClick?.();
44
- expect(onChangeMock).toHaveBeenCalledWith({ from: date });
45
-
46
- wrapper.setProps({ to: date, from: null });
47
- wrapper.update();
48
-
49
- // eslint-disable-next-line
50
- wrapper.find(Button).props().onClick?.();
51
- expect(onChangeMock).toHaveBeenCalledWith({ to: date });
52
- });
53
-
54
- it('enables and disables the button based on the validity of the dates', () => {
55
- const wrapper = shallow(
56
- <DateTimeRangePicker
57
- onChange={() => {
58
- // do nothing for linitng
59
- }}
60
- />
61
- );
62
- const fromPicker = wrapper.find(KeyboardDateTimePicker).first();
63
- const toPicker = wrapper.find(KeyboardDateTimePicker).at(1);
64
-
65
- expect(wrapper.find(Button).prop('disabled')).toBe(true);
66
-
67
- fromPicker.prop('onChange')(date);
68
- wrapper.update();
69
-
70
- expect(wrapper.find(Button).prop('disabled')).toBe(false);
71
-
72
- toPicker.prop('onChange')(date);
73
- wrapper.update();
74
-
75
- expect(wrapper.find(Button).prop('disabled')).toBe(true);
76
-
77
- toPicker.prop('onChange')(new Date(1994, 1));
78
- wrapper.update();
79
-
80
- expect(wrapper.find(Button).prop('disabled')).toBe(false);
81
- });
1
+ import React from 'react';
2
+ import { shallow, mount } from 'enzyme';
3
+ import { KeyboardDateTimePicker } from '@material-ui/pickers';
4
+ import { Button } from '@map-colonies/react-core';
5
+ import { DateTimeRangePicker } from './date-range-picker';
6
+
7
+ const date = new Date(1990, 1, 1);
8
+
9
+ it('set the values of to and from to the props of the date pickers when changed', () => {
10
+ const wrapper = mount(
11
+ <DateTimeRangePicker
12
+ onChange={() => {
13
+ // do nothing for linitng
14
+ }}
15
+ />
16
+ );
17
+ wrapper.setProps({ from: date, to: date });
18
+
19
+ wrapper.update();
20
+ const pickers = wrapper.find(KeyboardDateTimePicker);
21
+ const fromRangePicker = pickers.first();
22
+ const toRangePicker = pickers.at(1);
23
+
24
+ expect(fromRangePicker.prop('value')?.valueOf()).toBe(date.getTime());
25
+ expect(toRangePicker.prop('value')?.valueOf()).toBe(date.getTime());
26
+ });
27
+
28
+ it('calls on change when button is clicked', () => {
29
+ const onChangeMock = jest.fn();
30
+ const wrapper = mount(
31
+ <DateTimeRangePicker from={date} to={date} onChange={onChangeMock} />
32
+ );
33
+
34
+ // eslint-disable-next-line
35
+ wrapper.find(Button).props().onClick?.();
36
+
37
+ expect(onChangeMock).toHaveBeenCalledWith({ from: date, to: date });
38
+
39
+ wrapper.setProps({ to: null });
40
+ wrapper.update();
41
+
42
+ // eslint-disable-next-line
43
+ wrapper.find(Button).props().onClick?.();
44
+ expect(onChangeMock).toHaveBeenCalledWith({ from: date });
45
+
46
+ wrapper.setProps({ to: date, from: null });
47
+ wrapper.update();
48
+
49
+ // eslint-disable-next-line
50
+ wrapper.find(Button).props().onClick?.();
51
+ expect(onChangeMock).toHaveBeenCalledWith({ to: date });
52
+ });
53
+
54
+ it('enables and disables the button based on the validity of the dates', () => {
55
+ const wrapper = shallow(
56
+ <DateTimeRangePicker
57
+ onChange={() => {
58
+ // do nothing for linitng
59
+ }}
60
+ />
61
+ );
62
+ const fromPicker = wrapper.find(KeyboardDateTimePicker).first();
63
+ const toPicker = wrapper.find(KeyboardDateTimePicker).at(1);
64
+
65
+ expect(wrapper.find(Button).prop('disabled')).toBe(true);
66
+
67
+ fromPicker.prop('onChange')(date);
68
+ wrapper.update();
69
+
70
+ expect(wrapper.find(Button).prop('disabled')).toBe(false);
71
+
72
+ toPicker.prop('onChange')(date);
73
+ wrapper.update();
74
+
75
+ expect(wrapper.find(Button).prop('disabled')).toBe(true);
76
+
77
+ toPicker.prop('onChange')(new Date(1994, 1));
78
+ wrapper.update();
79
+
80
+ expect(wrapper.find(Button).prop('disabled')).toBe(false);
81
+ });