Skip to content

Commit 05b7cb8

Browse files
authored
fix(widgets): Minor widget fixes (#9758)
1 parent 7bd3e6b commit 05b7cb8

File tree

4 files changed

+19
-22
lines changed

4 files changed

+19
-22
lines changed

modules/widgets/src/fps-widget.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,14 @@ export class FpsWidget extends Widget<FpsWidgetProps> {
3838
super.setProps(props);
3939
}
4040

41+
onAdd({}: {deck: Deck<any>; viewId: string | null}): void {
42+
this._lastFps = this._getFps();
43+
this.updateHTML();
44+
}
45+
4146
onRenderHTML(rootElement: HTMLElement): void {
4247
const fps = this._getFps();
48+
// TODO - avoid changing the root element, instead create a child for better styling.
4349
rootElement.innerText = `FPS:\n${fps}`;
4450
rootElement.style.backgroundColor = 'white';
4551
rootElement.style.fontFamily = 'monospace';
@@ -55,11 +61,6 @@ export class FpsWidget extends Widget<FpsWidgetProps> {
5561
}
5662
}
5763

58-
onAdd({}: {deck: Deck<any>; viewId: string | null}): void {
59-
this._lastFps = this._getFps();
60-
this.updateHTML();
61-
}
62-
6364
_getFps(): number {
6465
// @ts-expect-error protected
6566
return Math.round(this.deck.metrics.fps ?? 0);

modules/widgets/src/geocoder-widget.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ export class GeocoderWidget extends Widget<GeocoderWidgetProps> {
6868

6969
constructor(props: GeocoderWidgetProps = {}) {
7070
super(props, GeocoderWidget.defaultProps);
71-
this.placement = props.placement ?? this.placement;
72-
this.setProps(props);
73-
this.geocoder = getGeocoder(props);
71+
this.placement = this.props.placement ?? this.placement;
72+
this.setProps(this.props);
73+
this.geocoder = getGeocoder(this.props);
7474
}
7575

7676
setProps(props: Partial<GeocoderWidgetProps>): void {

modules/widgets/src/info-widget.tsx

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ export class InfoWidget extends Widget<InfoWidgetProps> {
5353
super.setProps(props);
5454
}
5555

56+
onCreateRootElement(): HTMLDivElement {
57+
const element = super.onCreateRootElement();
58+
const style = {margin: '0px', top: '0px', left: '0px', position: 'absolute'};
59+
Object.entries(style).forEach(([key, value]) => element.style.setProperty(key, value));
60+
return element;
61+
}
62+
5663
onViewportChange(viewport) {
5764
this.viewport = viewport;
5865
this.updateHTML();
@@ -84,24 +91,13 @@ export class InfoWidget extends Widget<InfoWidgetProps> {
8491
return this.props.onClick?.(this, info) || false;
8592
}
8693

87-
// TODO - Align with onCreateRootElement
88-
onAdd({deck, viewId}: {deck: Deck<any>; viewId: string | null}): HTMLDivElement {
89-
const {className} = this.props;
90-
const element = document.createElement('div');
91-
element.classList.add('deck-widget', 'deck-widget-info');
92-
if (className) element.classList.add(className);
93-
// Ensure absolute positioning relative to the deck container
94-
const style = {margin: '0px', top: '0px', left: '0px', position: 'absolute'};
95-
Object.entries(style).forEach(([key, value]) => element.style.setProperty(key, value));
94+
onAdd({deck, viewId}: {deck: Deck<any>; viewId: string | null}) {
9695
this.deck = deck;
9796
if (!viewId) {
9897
this.viewport = deck.getViewports()[0];
9998
} else {
10099
this.viewport = deck.getViewports().find(viewport => viewport.id === viewId);
101100
}
102-
this.rootElement = element;
103-
this.updateHTML();
104-
return element;
105101
}
106102

107103
onRenderHTML(rootElement: HTMLElement): void {

test/apps/widgets-example-9.2/app.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ const deck = new Deck({
120120
);
121121
}
122122
}),
123-
// new _InfoWidget({mode: 'hover', getTooltip}),
124-
// new _InfoWidget({mode: 'click', getTooltip}),
123+
new _InfoWidget({mode: 'hover', getTooltip}),
124+
new _InfoWidget({mode: 'click', getTooltip}),
125125
new _TimelineWidget({
126126
placement: 'bottom-left',
127127
domain: [0, 24],

0 commit comments

Comments
 (0)