[Vega] Fixes problem with controls not being displayed on a map (#97373)

* add element for vegaControls

* Fix check types

* Fixed type check

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Uladzislau Lasitsa 2021-04-19 12:58:33 +03:00 committed by GitHub
parent 249f9aca15
commit f5a8405eb9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 2 deletions

View file

@ -34,6 +34,7 @@ export class VegaBaseView {
destroy(): Promise<void>;
_$container: any;
_$controls: any;
_parser: any;
_vegaViewConfig: any;
_serviceSettings: VegaViewParams['serviceSettings'];

View file

@ -36,6 +36,7 @@ describe('vega_map_view/tms_raster_layer', () => {
vegaView: ({
initialize: jest.fn(),
} as unknown) as View,
vegaControls: 'element',
updateVegaView: jest.fn(),
};
});

View file

@ -13,12 +13,13 @@ import type { LayerParameters } from './types';
export interface VegaLayerContext {
vegaView: View;
updateVegaView: (map: Map, view: View) => void;
vegaControls: any;
}
export function initVegaLayer({
id,
map: mapInstance,
context: { vegaView, updateVegaView },
context: { vegaView, vegaControls, updateVegaView },
}: LayerParameters<VegaLayerContext>) {
const vegaLayer: CustomLayerInterface = {
id,
@ -34,7 +35,7 @@ export function initVegaLayer({
vegaContainer.style.height = mapCanvas.style.height;
mapContainer.appendChild(vegaContainer);
vegaView.initialize(vegaContainer);
vegaView.initialize(vegaContainer, vegaControls);
},
render() {
updateVegaView(mapInstance, vegaView);

View file

@ -175,6 +175,7 @@ export class VegaMapView extends VegaBaseView {
map: mapBoxInstance,
context: {
vegaView,
vegaControls: this._$controls.get(0),
updateVegaView,
},
});