Skip to content

Commit d4a0480

Browse files
authored
Fix EditableGeoJsonLayerProps typing, expose SelectionLayerProps (#219)
* chore: correct EditableGeoJsonLayerProps typing to match use * chore: export SelectionLayerProps * chore: add typing to getModeProps, ensuring onEdit compatibility * chore: drop obsolete anys
1 parent 5b743aa commit d4a0480

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

modules/editable-layers/src/editable-layers/editable-geojson-layer.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import {
1313
StopDraggingEvent,
1414
DraggingEvent,
1515
PointerMoveEvent,
16-
DoubleClickEvent
16+
DoubleClickEvent,
17+
ModeProps
1718
} from '../edit-modes/types';
1819

1920
import {ViewMode} from '../edit-modes/view-mode';
@@ -119,7 +120,7 @@ export type EditableGeoJsonLayerProps<DataT = any> = EditableLayerProps & {
119120
mode?: any;
120121
modeConfig?: any;
121122
selectedFeatureIndexes?: number[];
122-
onEdit?: (updatedData?, editType?: string, featureIndexes?: number[], editContext?) => void;
123+
onEdit?: (editAction: EditAction<DataT>) => void;
123124

124125
pickable?: boolean;
125126
pickingRadius?: number;
@@ -141,8 +142,8 @@ export type EditableGeoJsonLayerProps<DataT = any> = EditableLayerProps & {
141142

142143
getLineColor?: Color | ((feature, isSelected, mode) => Color);
143144
getFillColor?: Color | ((feature, isSelected, mode) => Color);
144-
getRadius?: number | ((f) => number);
145-
getLineWidth?: number | ((f) => number);
145+
getRadius?: number | ((feature, isSelected, mode) => number);
146+
getLineWidth?: number | ((feature, isSelected, mode) => number);
146147

147148
getTentativeLineColor?: Color | ((feature, isSelected, mode) => Color);
148149
getTentativeFillColor?: Color | ((feature, isSelected, mode) => Color);
@@ -414,14 +415,14 @@ export class EditableGeoJsonLayer extends EditableLayer<
414415
this.setState({selectedFeatures});
415416
}
416417

417-
getModeProps(props: EditableGeoJsonLayerProps<any>) {
418+
getModeProps<DataT>(props: EditableGeoJsonLayerProps<DataT>): ModeProps<DataT> {
418419
return {
419420
modeConfig: props.modeConfig,
420421
data: props.data,
421422
selectedIndexes: props.selectedFeatureIndexes,
422423
lastPointerMoveEvent: this.state.lastPointerMoveEvent,
423424
cursor: this.state.cursor,
424-
onEdit: (editAction: EditAction<FeatureCollection>) => {
425+
onEdit: (editAction) => {
425426
// Force a re-render
426427
// This supports double-click where we need to ensure that there's a re-render between the two clicks
427428
// even though the data wasn't changed, just the internal tentative feature.
@@ -551,7 +552,7 @@ export class EditableGeoJsonLayer extends EditableLayer<
551552

552553
createTooltipsLayers() {
553554
const mode = this.getActiveMode();
554-
const tooltips = mode.getTooltips(this.getModeProps(this.props) as any);
555+
const tooltips = mode.getTooltips(this.getModeProps(this.props));
555556

556557
const layer = new TextLayer({
557558
getSize: DEFAULT_TOOLTIP_FONT_SIZE,
@@ -565,34 +566,34 @@ export class EditableGeoJsonLayer extends EditableLayer<
565566
}
566567

567568
onLayerClick(event: ClickEvent): void {
568-
this.getActiveMode().handleClick(event, this.getModeProps(this.props) as any);
569+
this.getActiveMode().handleClick(event, this.getModeProps(this.props));
569570
}
570571

571572
onLayerDoubleClick(event: DoubleClickEvent): void {
572573
if (this.getActiveMode().handleDoubleClick) {
573-
this.getActiveMode().handleDoubleClick(event, this.getModeProps(this.props) as any);
574+
this.getActiveMode().handleDoubleClick(event, this.getModeProps(this.props));
574575
}
575576
}
576577

577578
onLayerKeyUp(event: KeyboardEvent): void {
578-
this.getActiveMode().handleKeyUp(event, this.getModeProps(this.props) as any);
579+
this.getActiveMode().handleKeyUp(event, this.getModeProps(this.props));
579580
}
580581

581582
onStartDragging(event: StartDraggingEvent): void {
582-
this.getActiveMode().handleStartDragging(event, this.getModeProps(this.props) as any);
583+
this.getActiveMode().handleStartDragging(event, this.getModeProps(this.props));
583584
}
584585

585586
onDragging(event: DraggingEvent): void {
586-
this.getActiveMode().handleDragging(event, this.getModeProps(this.props) as any);
587+
this.getActiveMode().handleDragging(event, this.getModeProps(this.props));
587588
}
588589

589590
onStopDragging(event: StopDraggingEvent): void {
590-
this.getActiveMode().handleStopDragging(event, this.getModeProps(this.props) as any);
591+
this.getActiveMode().handleStopDragging(event, this.getModeProps(this.props));
591592
}
592593

593594
onPointerMove(event: PointerMoveEvent): void {
594595
this.setState({lastPointerMoveEvent: event});
595-
this.getActiveMode().handlePointerMove(event, this.getModeProps(this.props) as any);
596+
this.getActiveMode().handlePointerMove(event, this.getModeProps(this.props));
596597
}
597598

598599
getCursor({isDragging}: {isDragging: boolean}): null | 'grabbing' | 'grab' {

modules/editable-layers/src/editable-layers/selection-layer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const MODE_CONFIG_MAP = {
3232
};
3333

3434
// eslint-disable-next-line @typescript-eslint/no-unused-vars
35-
interface SelectionLayerProps<DataT> extends CompositeLayerProps {
35+
export interface SelectionLayerProps<DataT> extends CompositeLayerProps {
3636
layerIds: any[];
3737
onSelect: (info: any) => any;
3838
selectionType: string | null;

modules/editable-layers/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export type {GeoJsonEditModeType} from './edit-modes/geojson-edit-mode';
5353
export type {GeoJsonEditModeConstructor} from './edit-modes/geojson-edit-mode';
5454

5555
export type {EditableGeoJsonLayerProps} from './editable-layers/editable-geojson-layer';
56+
export type {SelectionLayerProps} from './editable-layers/selection-layer';
5657

5758
export {GeoJsonEditMode} from './edit-modes/geojson-edit-mode';
5859

0 commit comments

Comments
 (0)