mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
53 lines
2.2 KiB
JavaScript
53 lines
2.2 KiB
JavaScript
"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;
|