diff --git a/docs/extensions/usage/README.md b/docs/extensions/usage/README.md index 7ca1ab7e51..4020e64d65 100644 --- a/docs/extensions/usage/README.md +++ b/docs/extensions/usage/README.md @@ -1,3 +1,23 @@ # Using Extensions -TBD +The features that Lens includes out-of-the-box are just the start. +Lens extensions let you add new features to your installation to support your workflow. +Rich extensibility model lets extension authors plug directly into the Lens UI and contribute functionality through the same APIs used by Lens itself. + +![Extensions](images/extensions.png) + +## Installing an Extension + +You can install a dowloaded extension .tgz package by going to **File** > **Extensions** (**Lens** > **Extensions** on Mac). Alternatively you can point an URL to .tgz file. An installed extension is enabled automatically. + +## Enabling an Extension + +Go to **File** > **Extensions** (**Lens** > **Extensions** on Mac) and click "Enable" button. + +## Disabling an Extension + +Go to **File** > **Extensions** (**Lens** > **Extensions** on Mac) and click "Disable" button. + +## Uninstalling an Extension + +Go to **File** > **Extensions** (**Lens** > **Extensions** on Mac) and click "Uninstall" button. diff --git a/docs/extensions/usage/images/extensions.png b/docs/extensions/usage/images/extensions.png new file mode 100644 index 0000000000..5deb8e4bd2 Binary files /dev/null and b/docs/extensions/usage/images/extensions.png differ diff --git a/src/renderer/components/+extensions/extensions.tsx b/src/renderer/components/+extensions/extensions.tsx index bfcf46ccb6..920febe2e9 100644 --- a/src/renderer/components/+extensions/extensions.tsx +++ b/src/renderer/components/+extensions/extensions.tsx @@ -66,7 +66,7 @@ export class Extensions extends React.Component { * Extensions that were removed from extensions but are still in "uninstalling" state */ @computed get removedUninstalling() { - return Array.from(this.extensionState.entries()).filter(([id, extension]) => + return Array.from(this.extensionState.entries()).filter(([id, extension]) => extension.state === "uninstalling" && !this.extensions.find(extension => extension.id === id) ).map(([id, extension]) => ({ ...extension, id })); } @@ -75,11 +75,11 @@ export class Extensions extends React.Component { * Extensions that were added to extensions but are still in "installing" state */ @computed get addedInstalling() { - return Array.from(this.extensionState.entries()).filter(([id, extension]) => + return Array.from(this.extensionState.entries()).filter(([id, extension]) => extension.state === "installing" && this.extensions.find(extension => extension.id === id) ).map(([id, extension]) => ({ ...extension, id })); } - + componentDidMount() { disposeOnUnmount(this, reaction(() => this.extensions, () => { @@ -275,7 +275,7 @@ export class Extensions extends React.Component { const { name, version, description } = install.manifest; const extensionFolder = this.getExtensionDestFolder(name); const folderExists = fse.existsSync(extensionFolder); - + if (!folderExists) { // auto-install extension if not yet exists this.unpackExtension(install); @@ -379,7 +379,7 @@ export class Extensions extends React.Component { } renderExtensions() { - const { extensions, extensionsPath, search } = this; + const { extensions, search } = this; if (!extensions.length) { return ( @@ -387,7 +387,7 @@ export class Extensions extends React.Component {
{search &&

No search results found

} - {!search &&

There are no extensions in {extensionsPath}

} + {!search &&

There are no installed extensions. See list of available extensions.

}
); @@ -444,10 +444,8 @@ export class Extensions extends React.Component {

Lens Extensions

- The features that Lens includes out-of-the-box are just the start. - Lens extensions let you add new features to your installation to support your workflow. - Rich extensibility model lets extension authors plug directly into the Lens UI and contribute functionality through the same APIs used by Lens itself. - Check out documentation to learn more. + Add new features and functionality via Lens Extensions. + Check out documentation to learn more or see the list of available extensions.
@@ -489,7 +487,7 @@ export class Extensions extends React.Component {

Installed Extensions

this.search = value} />