diff --git a/modules/core/src/index.ts b/modules/core/src/index.ts index 567d905fe82..5f810a19ab1 100644 --- a/modules/core/src/index.ts +++ b/modules/core/src/index.ts @@ -46,7 +46,6 @@ export {default as Deck} from './lib/deck'; export {default as LayerManager} from './lib/layer-manager'; export {default as AttributeManager} from './lib/attribute/attribute-manager'; -export type {SharedLayerState} from './lib/layer'; export {default as Layer} from './lib/layer'; export {default as CompositeLayer} from './lib/composite-layer'; export {default as DeckRenderer} from './lib/deck-renderer'; diff --git a/modules/core/src/lib/layer.ts b/modules/core/src/lib/layer.ts index 7ffe31f8ece..2a6ded95916 100644 --- a/modules/core/src/lib/layer.ts +++ b/modules/core/src/lib/layer.ts @@ -185,14 +185,13 @@ export type UpdateParameters = { changeFlags: ChangeFlags; }; -export type SharedLayerState = { +type SharedLayerState = { model?: Model; [key: string]: any; }; export default abstract class Layer< - PropsT extends {} = {}, - StateT extends SharedLayerState = SharedLayerState + PropsT extends {} = {} > extends Component> { static defaultProps: DefaultProps = defaultProps; static layerName: string = 'Layer'; @@ -208,7 +207,7 @@ export default abstract class Layer< // However, they are most extensively accessed in a layer's lifecycle methods, where they are always defined. // Checking for null state constantly in layer implementation is unnecessarily verbose. context!: LayerContext; // Will reference layer manager's context, contains state shared by layers - state!: StateT; // Will be set to the shared layer state object during layer matching + state!: SharedLayerState; // Will be set to the shared layer state object during layer matching parent: Layer | null = null; @@ -869,7 +868,6 @@ export default abstract class Layer< }); this._clearChangeFlags(); // populate this.internalState.changeFlags - // @ts-expect-error this.state = {}; // for backwards compatibility with older layers // TODO - remove in next release @@ -922,7 +920,6 @@ export default abstract class Layer< this.internalState = internalState as LayerState; // Move state - // @ts-expect-error this.state = state; // We keep the state ref on old layers to support async actions // oldLayer.state = null; diff --git a/modules/layers/src/geojson-layer/geojson-layer.ts b/modules/layers/src/geojson-layer/geojson-layer.ts index 9897e4f7a2e..e45d83ad779 100644 --- a/modules/layers/src/geojson-layer/geojson-layer.ts +++ b/modules/layers/src/geojson-layer/geojson-layer.ts @@ -296,15 +296,10 @@ type _GeojsonLayerTextPointProps = { const FEATURE_TYPES = ['points', 'linestrings', 'polygons']; const defaultProps: DefaultProps = { - // @ts-expect-error ...getDefaultProps(POINT_LAYER.circle), - // @ts-expect-error ...getDefaultProps(POINT_LAYER.icon), - // @ts-expect-error ...getDefaultProps(POINT_LAYER.text), - // @ts-expect-error ...getDefaultProps(LINE_LAYER), - // @ts-expect-error ...getDefaultProps(POLYGON_LAYER), // Overwrite sub layer defaults diff --git a/modules/layers/src/scatterplot-layer/scatterplot-layer.ts b/modules/layers/src/scatterplot-layer/scatterplot-layer.ts index ca863f426f0..765d054c00e 100644 --- a/modules/layers/src/scatterplot-layer/scatterplot-layer.ts +++ b/modules/layers/src/scatterplot-layer/scatterplot-layer.ts @@ -28,7 +28,6 @@ import type { LayerProps, LayerDataSource, UpdateParameters, - SharedLayerState, Accessor, Unit, Position, @@ -148,10 +147,6 @@ type _ScatterplotLayerProps = { getColor?: Accessor; }; -type ScatterplotState = SharedLayerState & { - uniformStore: UniformStore<{scatterplot: ScatterplotLayerUniforms}>; -}; - const defaultProps: DefaultProps = { radiusUnits: 'meters', radiusScale: {type: 'number', min: 0, value: 1}, @@ -182,12 +177,15 @@ const defaultProps: DefaultProps = { /** Render circles at given coordinates. */ export default class ScatterplotLayer extends Layer< - ExtraPropsT & Required<_ScatterplotLayerProps>, - ScatterplotState + ExtraPropsT & Required<_ScatterplotLayerProps> > { static defaultProps = defaultProps; static layerName: string = 'ScatterplotLayer'; + state!: Layer['state'] & { + uniformStore: UniformStore<{scatterplot: ScatterplotLayerUniforms}>; + }; + getShaders() { return super.getShaders({vs, fs, modules: [project32, picking]}); }