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:
parent
5ec6751ab4
commit
0853906314
52
extensions/example-extension/example-extension.js
Normal file
52
extensions/example-extension/example-extension.js
Normal 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;
|
||||
@ -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"
|
||||
],
|
||||
|
||||
@ -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");
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user