1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

move in-tree extensions to top-level folder

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2020-09-29 08:55:31 +03:00
parent 5ec6751ab4
commit 0853906314
7 changed files with 58 additions and 5 deletions

View File

@ -0,0 +1,52 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExtensionPage = exports.ExtensionIcon = void 0;
const extensions_1 = require("@lens/extensions");
const react_1 = __importDefault(require("react"));
const path_1 = __importDefault(require("path"));
class ExampleExtension extends extensions_1.LensExtension {
onActivate() {
console.log('EXAMPLE EXTENSION: ACTIVATED', this.getMeta());
this.registerPage({
type: extensions_1.DynamicPageType.CLUSTER,
path: "/extension-example",
menuTitle: "Example Extension",
components: {
Page: () => react_1.default.createElement(ExtensionPage, { extension: this }),
MenuIcon: ExtensionIcon,
}
});
}
onDeactivate() {
console.log('EXAMPLE EXTENSION: DEACTIVATED', this.getMeta());
}
}
exports.default = ExampleExtension;
function ExtensionIcon(props) {
return react_1.default.createElement(extensions_1.Icon, Object.assign({}, props, { material: "camera", tooltip: path_1.default.basename(__filename) }));
}
exports.ExtensionIcon = ExtensionIcon;
class ExtensionPage extends react_1.default.Component {
constructor() {
super(...arguments);
this.deactivate = () => {
const { extension } = this.props;
extension.runtime.navigate("/");
extension.disable();
};
}
render() {
const { TabLayout } = this.props.extension.runtime.components;
return (react_1.default.createElement(TabLayout, { className: "ExampleExtension" },
react_1.default.createElement("div", { className: "flex column gaps align-flex-start" },
react_1.default.createElement("p", null, "Hello from extensions-api!"),
react_1.default.createElement("p", null,
"File: ",
react_1.default.createElement("i", null, __filename)),
react_1.default.createElement(extensions_1.Button, { accent: true, label: "Deactivate", onClick: this.deactivate }))));
}
}
exports.ExtensionPage = ExtensionPage;

View File

@ -20,6 +20,7 @@
"compile:main": "webpack --config webpack.main.ts",
"compile:renderer": "webpack --config webpack.renderer.ts",
"compile:i18n": "lingui compile",
"compile:extensions": "rollup --config src/extensions/rollup.config.js",
"build:linux": "yarn compile && electron-builder --linux --dir -c.productName=Lens",
"build:mac": "yarn compile && electron-builder --mac --dir -c.productName=Lens",
"build:win": "yarn compile && electron-builder --win --dir -c.productName=Lens",
@ -94,9 +95,12 @@
"filter": "!**/main.js"
},
{
"from": "src/extensions/",
"from": "extensions/",
"to": "./extensions/",
"filter": "**/*.js*"
"filter": [
"**/*.js*",
"!**/node_modules"
]
},
"LICENSE"
],

View File

@ -44,9 +44,6 @@ export class ExtensionStore extends BaseStore<ExtensionStoreModel> {
@observable installed = observable.map<ExtensionId, InstalledExtension>([], { deep: false });
get folderPath(): string {
if (isDevelopment) {
return path.resolve(__static, "../src/extensions");
}
return path.resolve(__static, "../extensions");
}