@launchmenu/launcher
Version:
The installer + launcher of LM
91 lines • 10.2 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WindowUI = void 0;
const core_1 = require("@material-ui/core");
const electron_1 = require("electron");
const react_1 = __importStar(require("react"));
const PuffLoader_1 = __importDefault(require("react-spinners/PuffLoader"));
const applets = {
Dictionary: "@launchmenu/applet-dictionary",
Notes: "@launchmenu/applet-notes",
};
const useStyles = core_1.makeStyles(theme => ({
button: {
margin: theme.spacing(1),
flex: 1,
},
}));
const WindowUI = () => {
const classes = useStyles();
const [state, setState] = react_1.useState({ type: "loading", name: "Initializing" });
react_1.useEffect(() => {
electron_1.ipcRenderer.send("ready");
const listener = (event, newState) => {
setState(newState);
};
electron_1.ipcRenderer.on("state", listener);
return () => void electron_1.ipcRenderer.off("state", listener);
}, []);
return (react_1.default.createElement(core_1.Box, { display: "flex", flexDirection: "column", p: 1, alignItems: "center", alignContent: "center", justifyContent: "center", css: { height: "100%" } }, state.type == "loading" ? (react_1.default.createElement(react_1.default.Fragment, null,
state.name,
react_1.default.createElement(core_1.Box, { mt: 1, css: { width: 70 } },
react_1.default.createElement(PuffLoader_1.default, { color: "#00F", size: 60 })))) : state.type == "prompt" ? (react_1.default.createElement(core_1.Box, { display: "flex", flexDirection: "column", width: "100%", height: "100%" },
react_1.default.createElement(core_1.Box, { mb: 1, flex: 1, display: "flex", justifyContent: "center", alignItems: "center" }, state.text),
react_1.default.createElement(core_1.Box, { display: "flex", width: "100%" }, state.buttons.map((button, i) => (react_1.default.createElement(core_1.Button, { key: i, className: classes.button, variant: "contained", color: button.type == "primary" ? "primary" : "default", onClick: () => electron_1.ipcRenderer.send("clickButton", i) }, button.text)))))) : state.type == "finished" ? (react_1.default.createElement(react_1.default.Fragment, null,
state.name,
react_1.default.createElement(core_1.Box, null,
"Press",
" ",
process.platform == "win32"
? "Windows+Space"
: electron_1.remote.systemPreferences.isTrustedAccessibilityClient(false)
? "Command+Space"
: "Command+L",
" ",
"or use the tray icon to open LM."))) : (react_1.default.createElement(InstallSelectionHandler, null))));
};
exports.WindowUI = WindowUI;
const InstallSelectionHandler = () => {
const [selectedApplets, setSelectedApplets] = react_1.useState(Object.keys(applets));
const toggleApplet = (name) => setSelectedApplets(applets => {
if (applets.includes(name)) {
const index = applets.indexOf(name);
return [...applets.slice(0, index), ...applets.slice(index + 1)];
}
else {
return [...applets, name];
}
});
const onSubmit = () => electron_1.ipcRenderer.send("selectApplets", selectedApplets.map((name) => applets[name]));
return (react_1.default.createElement(react_1.default.Fragment, null,
"Please select the applets you want to install. ",
react_1.default.createElement("br", null),
" As of right now, applets can't easily be installed later, but this will be added in the near future.",
react_1.default.createElement(core_1.Box, null, Object.keys(applets).map((name, i) => (react_1.default.createElement(core_1.Box, { key: name },
react_1.default.createElement(core_1.Checkbox, { checked: selectedApplets.includes(name), onChange: () => toggleApplet(name) }),
react_1.default.createElement(core_1.Box, { display: "inline", style: { verticalAlign: "middle" } }, name))))),
react_1.default.createElement(core_1.Button, { role: "button", variant: "contained", color: "primary", onClick: onSubmit }, "Install")));
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93VUkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5zdGFsbGVyV2luZG93L1dpbmRvd1VJLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQW9FO0FBQ3BFLHVDQUE2QztBQUM3QywrQ0FBcUQ7QUFDckQsMkVBQW1EO0FBR25ELE1BQU0sT0FBTyxHQUFHO0lBQ1osVUFBVSxFQUFFLCtCQUErQjtJQUMzQyxLQUFLLEVBQUUsMEJBQTBCO0NBQ3BDLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRyxpQkFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxNQUFNLEVBQUU7UUFDSixNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxFQUFFLENBQUM7S0FDVjtDQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUcsTUFBTSxRQUFRLEdBQU8sR0FBRyxFQUFFO0lBQzdCLE1BQU0sT0FBTyxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQzVCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBVyxDQUFDLENBQUM7SUFDdEYsaUJBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDWCxzQkFBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQixNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQVUsRUFBRSxRQUFnQixFQUFFLEVBQUU7WUFDOUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQztRQUNGLHNCQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssc0JBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEs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