diff --git a/arduino-ide-extension/src/browser/widgets/component-list/component-list-item.tsx b/arduino-ide-extension/src/browser/widgets/component-list/component-list-item.tsx index 2024d48a7..121c01e03 100644 --- a/arduino-ide-extension/src/browser/widgets/component-list/component-list-item.tsx +++ b/arduino-ide-extension/src/browser/widgets/component-list/component-list-item.tsx @@ -14,37 +14,21 @@ export class ComponentListItem< )[0]; this.state = { selectedVersion: version, - focus: false, - versionUpdate: false, }; } } - override componentDidUpdate( - prevProps: ComponentListItem.Props, - prevState: ComponentListItem.State - ): void { - if (this.state.focus !== prevState.focus) { - this.props.onFocusDidChange(); - } - } - override render(): React.ReactNode { const { item, itemRenderer } = this.props; return ( -
this.setState({ focus: true })} - onMouseLeave={() => { - if (!this.state.versionUpdate) this.setState({ focus: false }); - }} - > + <> {itemRenderer.renderItem( Object.assign(this.state, { item }), this.install.bind(this), this.uninstall.bind(this), this.onVersionChange.bind(this) )} -
+ ); } @@ -55,7 +39,6 @@ export class ComponentListItem< )[0]; this.setState({ selectedVersion: version, - versionUpdate: false, }); try { await this.props.install(item, toInstall); @@ -71,7 +54,7 @@ export class ComponentListItem< } private onVersionChange(version: Installable.Version): void { - this.setState({ selectedVersion: version, versionUpdate: true }); + this.setState({ selectedVersion: version }); } } @@ -81,12 +64,9 @@ export namespace ComponentListItem { readonly install: (item: T, version?: Installable.Version) => Promise; readonly uninstall: (item: T) => Promise; readonly itemRenderer: ListItemRenderer; - readonly onFocusDidChange: () => void; } export interface State { selectedVersion?: Installable.Version; - focus: boolean; - versionUpdate: boolean; } } diff --git a/arduino-ide-extension/src/browser/widgets/component-list/component-list.tsx b/arduino-ide-extension/src/browser/widgets/component-list/component-list.tsx index 067fbc6af..2c49bbbcc 100644 --- a/arduino-ide-extension/src/browser/widgets/component-list/component-list.tsx +++ b/arduino-ide-extension/src/browser/widgets/component-list/component-list.tsx @@ -125,7 +125,7 @@ export class ComponentList extends React.Component< rowIndex={index} parent={parent} > - {({ measure, registerChild }) => ( + {({ registerChild }) => ( // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore
@@ -135,7 +135,6 @@ export class ComponentList extends React.Component< itemRenderer={this.props.itemRenderer} install={this.props.install} uninstall={this.props.uninstall} - onFocusDidChange={() => measure()} />
)} diff --git a/arduino-ide-extension/src/browser/widgets/component-list/list-item-renderer.tsx b/arduino-ide-extension/src/browser/widgets/component-list/list-item-renderer.tsx index ff5b469b9..4e6d56364 100644 --- a/arduino-ide-extension/src/browser/widgets/component-list/list-item-renderer.tsx +++ b/arduino-ide-extension/src/browser/widgets/component-list/list-item-renderer.tsx @@ -28,7 +28,7 @@ export class ListItemRenderer { uninstall: (item: T) => Promise, onVersionChange: (version: Installable.Version) => void ): React.ReactNode { - const { item, focus } = input; + const { item } = input; let nameAndAuthor: JSX.Element; if (item.name && item.author) { const name = {item.name}; @@ -127,12 +127,10 @@ export class ListItemRenderer { {description}
{moreInfo}
- {focus && ( -
- {versions} - {installButton} -
- )} +
+ {versions} + {installButton} +
); }