mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
master-merge fix: added missing makeObservable(this) for extensions.tsx
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
7559b7e5fd
commit
a837311095
@ -24,33 +24,17 @@ import "./extensions.scss";
|
|||||||
import { remote, shell } from "electron";
|
import { remote, shell } from "electron";
|
||||||
import fse from "fs-extra";
|
import fse from "fs-extra";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import { observable, reaction, when } from "mobx";
|
import { makeObservable, observable, reaction, when } from "mobx";
|
||||||
import { disposeOnUnmount, observer } from "mobx-react";
|
import { disposeOnUnmount, observer } from "mobx-react";
|
||||||
import os from "os";
|
import os from "os";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { SemVer } from "semver";
|
import { SemVer } from "semver";
|
||||||
import URLParse from "url-parse";
|
import URLParse from "url-parse";
|
||||||
|
import { Disposer, disposer, downloadFile, downloadJson, ExtendableDisposer, extractTar, listTarEntries, noop, readFileFromTar, } from "../../../common/utils";
|
||||||
import {
|
|
||||||
Disposer,
|
|
||||||
disposer,
|
|
||||||
downloadFile,
|
|
||||||
downloadJson,
|
|
||||||
ExtendableDisposer,
|
|
||||||
extractTar,
|
|
||||||
listTarEntries,
|
|
||||||
noop,
|
|
||||||
readFileFromTar,
|
|
||||||
} from "../../../common/utils";
|
|
||||||
import { ExtensionDiscovery, InstalledExtension, manifestFilename } from "../../../extensions/extension-discovery";
|
import { ExtensionDiscovery, InstalledExtension, manifestFilename } from "../../../extensions/extension-discovery";
|
||||||
import { ExtensionLoader } from "../../../extensions/extension-loader";
|
import { ExtensionLoader } from "../../../extensions/extension-loader";
|
||||||
import {
|
import { extensionDisplayName, LensExtensionId, LensExtensionManifest, sanitizeExtensionName, } from "../../../extensions/lens-extension";
|
||||||
extensionDisplayName,
|
|
||||||
LensExtensionId,
|
|
||||||
LensExtensionManifest,
|
|
||||||
sanitizeExtensionName,
|
|
||||||
} from "../../../extensions/lens-extension";
|
|
||||||
import logger from "../../../main/logger";
|
import logger from "../../../main/logger";
|
||||||
import { Button } from "../button";
|
import { Button } from "../button";
|
||||||
import { ConfirmDialog } from "../confirm-dialog";
|
import { ConfirmDialog } from "../confirm-dialog";
|
||||||
@ -193,7 +177,7 @@ async function validatePackage(filePath: string): Promise<LensExtensionManifest>
|
|||||||
// tarball from npm contains single root folder "package/*"
|
// tarball from npm contains single root folder "package/*"
|
||||||
const firstFile = tarFiles[0];
|
const firstFile = tarFiles[0];
|
||||||
|
|
||||||
if(!firstFile) {
|
if (!firstFile) {
|
||||||
throw new Error(`invalid extension bundle, ${manifestFilename} not found`);
|
throw new Error(`invalid extension bundle, ${manifestFilename} not found`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,7 +185,7 @@ async function validatePackage(filePath: string): Promise<LensExtensionManifest>
|
|||||||
const packedInRootFolder = tarFiles.every(entry => entry.startsWith(rootFolder));
|
const packedInRootFolder = tarFiles.every(entry => entry.startsWith(rootFolder));
|
||||||
const manifestLocation = packedInRootFolder ? path.join(rootFolder, manifestFilename) : manifestFilename;
|
const manifestLocation = packedInRootFolder ? path.join(rootFolder, manifestFilename) : manifestFilename;
|
||||||
|
|
||||||
if(!tarFiles.includes(manifestLocation)) {
|
if (!tarFiles.includes(manifestLocation)) {
|
||||||
throw new Error(`invalid extension bundle, ${manifestFilename} not found`);
|
throw new Error(`invalid extension bundle, ${manifestFilename} not found`);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -415,7 +399,7 @@ async function attemptInstall(request: InstallRequest, d?: ExtendableDisposer):
|
|||||||
} else {
|
} else {
|
||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
}} />
|
}}/>
|
||||||
</div>,
|
</div>,
|
||||||
{
|
{
|
||||||
onClose: dispose,
|
onClose: dispose,
|
||||||
@ -460,7 +444,7 @@ async function installFromInput(input: string) {
|
|||||||
|
|
||||||
await attemptInstall({ fileName, dataP: readFileNotify(input) });
|
await attemptInstall({ fileName, dataP: readFileNotify(input) });
|
||||||
} else if (InputValidators.isExtensionNameInstall.validate(input)) {
|
} else if (InputValidators.isExtensionNameInstall.validate(input)) {
|
||||||
const [{ groups: { name, version }}] = [...input.matchAll(InputValidators.isExtensionNameInstallRegex)];
|
const [{ groups: { name, version } }] = [...input.matchAll(InputValidators.isExtensionNameInstallRegex)];
|
||||||
|
|
||||||
await attemptInstallByInfo({ name, version });
|
await attemptInstallByInfo({ name, version });
|
||||||
}
|
}
|
||||||
@ -493,10 +477,18 @@ async function installFromSelectFileDialog() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
}
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
export class Extensions extends React.Component {
|
export class Extensions extends React.Component<Props> {
|
||||||
@observable installPath = "";
|
@observable installPath = "";
|
||||||
|
|
||||||
|
constructor(props: Props) {
|
||||||
|
super(props);
|
||||||
|
makeObservable(this);
|
||||||
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
// TODO: change this after upgrading to mobx6 as that versions' reactions have this functionality
|
// TODO: change this after upgrading to mobx6 as that versions' reactions have this functionality
|
||||||
let prevSize = ExtensionLoader.getInstance().userExtensions.size;
|
let prevSize = ExtensionLoader.getInstance().userExtensions.size;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user