diff --git a/.eslintrc.js b/.eslintrc.js
index e013a19bf8..8351d1b973 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -77,6 +77,7 @@ module.exports = {
"object-shorthand": "error",
"prefer-template": "error",
"template-curly-spacing": "error",
+ "no-unused-expressions": "error",
"padding-line-between-statements": [
"error",
{ "blankLine": "always", "prev": "*", "next": "return" },
@@ -139,6 +140,8 @@ module.exports = {
"object-shorthand": "error",
"prefer-template": "error",
"template-curly-spacing": "error",
+ "no-unused-expressions": "off",
+ "@typescript-eslint/no-unused-expressions": "error",
"padding-line-between-statements": [
"error",
{ "blankLine": "always", "prev": "*", "next": "return" },
@@ -208,6 +211,8 @@ module.exports = {
"object-shorthand": "error",
"prefer-template": "error",
"template-curly-spacing": "error",
+ "no-unused-expressions": "off",
+ "@typescript-eslint/no-unused-expressions": "error",
"padding-line-between-statements": [
"error",
{ "blankLine": "always", "prev": "*", "next": "return" },
diff --git a/src/common/getTSLoader.ts b/src/common/getTSLoader.ts
index 6c76770d5d..242b134adb 100644
--- a/src/common/getTSLoader.ts
+++ b/src/common/getTSLoader.ts
@@ -23,20 +23,18 @@ import esbuild from "esbuild";
/**
* A function returning webpack ts/tsx loader
- *
+ *
* depends on env LENS_DEV_USE_ESBUILD_LOADER to use esbuild-loader (faster) or good-old ts-loader
- *
- * @param testRegExp - the regex for webpack to conditional find the files
+ *
+ * @param testRegExp - the regex for webpack to conditional find the files
* @returns ts/tsx webpack loader configuration object
*/
const getTSLoader = (
testRegExp: RegExp, transpileOnly = true
) => {
- const useEsbuildLoader = process.env.LENS_DEV_USE_ESBUILD_LOADER === "true";
+ if (process.env.LENS_DEV_USE_ESBUILD_LOADER === "true") {
+ console.info(`\nš using esbuild-loader for ts(x)`);
- useEsbuildLoader && console.info(`\nš using esbuild-loader for ts(x)`);
-
- if (useEsbuildLoader) {
return {
test: testRegExp,
loader: "esbuild-loader",
diff --git a/src/renderer/components/+catalog/hotbar-toggle-menu-item.tsx b/src/renderer/components/+catalog/hotbar-toggle-menu-item.tsx
index 00f6f3600f..da89ff3f26 100644
--- a/src/renderer/components/+catalog/hotbar-toggle-menu-item.tsx
+++ b/src/renderer/components/+catalog/hotbar-toggle-menu-item.tsx
@@ -27,14 +27,17 @@ import type { CatalogEntity } from "../../api/catalog-entity";
export function HotbarToggleMenuItem(props: { entity: CatalogEntity, addContent: ReactNode, removeContent: ReactNode }) {
const store = HotbarStore.getInstance();
- const add = () => store.addToHotbar(props.entity);
- const remove = () => store.removeFromHotbar(props.entity.getId());
const [itemInHotbar, setItemInHotbar] = useState(store.isAddedToActive(props.entity));
return (
diff --git a/src/renderer/components/+preferences/editor.tsx b/src/renderer/components/+preferences/editor.tsx
index 707bb14428..77adac50a7 100644
--- a/src/renderer/components/+preferences/editor.tsx
+++ b/src/renderer/components/+preferences/editor.tsx
@@ -35,6 +35,7 @@ enum EditorLineNumbersStyles {
}
export const Editor = observer(() => {
+ const userStore = UserStore.getInstance();
return (
@@ -43,8 +44,8 @@ export const Editor = observer(() => {
UserStore.getInstance().enableEditorMinimap(v.target.checked)}
+ checked={userStore.editorConfiguration.miniMap.enabled}
+ onChange={v => userStore.enableEditorMinimap(v.target.checked)}
name="minimap"
/>
}
@@ -55,8 +56,8 @@ export const Editor = observer(() => {
@@ -67,11 +68,17 @@ export const Editor = observer(() => {
min={1}
max={10}
validators={[isNumber]}
- value={UserStore.getInstance().editorConfiguration.tabSize?.toString()}
- onChange={(value) => {(Number(value) || value=="") && UserStore.getInstance().setEditorTabSize(Number(value));}}
+ value={userStore.editorConfiguration.tabSize?.toString()}
+ onChange={value => {
+ const n = Number(value);
+
+ if (!isNaN(n)) {
+ userStore.setEditorTabSize(n);
+ }
+ }}
/>
);
});
-
+
diff --git a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx
index f4dec0a9b9..7c9d3ed9d7 100644
--- a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx
+++ b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx
@@ -118,12 +118,14 @@ export class DeploymentScaleDialog extends Component {
}
};
+ private readonly scaleMin = 0;
+
desiredReplicasUp = () => {
- this.desiredReplicas < this.scaleMax && this.desiredReplicas++;
+ this.desiredReplicas = Math.min(this.scaleMax, this.desiredReplicas + 1);
};
desiredReplicasDown = () => {
- this.desiredReplicas > 0 && this.desiredReplicas--;
+ this.desiredReplicas = Math.max(this.scaleMin, this.desiredReplicas - 1);
};
renderContents() {
diff --git a/src/renderer/components/+workloads-pods/pod-container-env.tsx b/src/renderer/components/+workloads-pods/pod-container-env.tsx
index 4c847e68bb..0ed594b580 100644
--- a/src/renderer/components/+workloads-pods/pod-container-env.tsx
+++ b/src/renderer/components/+workloads-pods/pod-container-env.tsx
@@ -40,30 +40,23 @@ interface Props {
export const ContainerEnvironment = observer((props: Props) => {
const { container: { env, envFrom }, namespace } = props;
- useEffect(
- () =>
- autorun(() => {
- env && env.forEach(variable => {
- const { valueFrom } = variable;
+ useEffect( () => autorun(() => {
+ for (const { valueFrom } of env ?? []) {
+ if (valueFrom?.configMapKeyRef) {
+ configMapsStore.load({ name: valueFrom.configMapKeyRef.name, namespace });
+ }
+ }
- if (valueFrom && valueFrom.configMapKeyRef) {
- configMapsStore.load({ name: valueFrom.configMapKeyRef.name, namespace });
- }
- });
- envFrom && envFrom.forEach(item => {
- const { configMapRef, secretRef } = item;
+ for (const { configMapRef, secretRef } of envFrom ?? []) {
+ if (secretRef?.name) {
+ secretsStore.load({ name: secretRef.name, namespace });
+ }
- if (secretRef && secretRef.name) {
- secretsStore.load({ name: secretRef.name, namespace });
- }
-
- if (configMapRef && configMapRef.name) {
- configMapsStore.load({ name: configMapRef.name, namespace });
- }
- });
- }),
- []
- );
+ if (configMapRef?.name) {
+ configMapsStore.load({ name: configMapRef.name, namespace });
+ }
+ }
+ }), []);
const renderEnv = () => {
const orderedEnv = _.sortBy(env, "name");
diff --git a/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.tsx b/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.tsx
index 3fda576d0e..01a187e1d8 100644
--- a/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.tsx
+++ b/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.tsx
@@ -118,12 +118,14 @@ export class ReplicaSetScaleDialog extends Component {
}
};
+ private readonly scaleMin = 0;
+
desiredReplicasUp = () => {
- this.desiredReplicas < this.scaleMax && this.desiredReplicas++;
+ this.desiredReplicas = Math.min(this.scaleMax, this.desiredReplicas + 1);
};
desiredReplicasDown = () => {
- this.desiredReplicas > 0 && this.desiredReplicas--;
+ this.desiredReplicas = Math.max(this.scaleMin, this.desiredReplicas - 1);
};
renderContents() {
diff --git a/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.tsx b/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.tsx
index 7fb49fabbe..81f7abf149 100644
--- a/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.tsx
+++ b/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.tsx
@@ -117,12 +117,14 @@ export class StatefulSetScaleDialog extends Component {
}
};
+ private readonly scaleMin = 0;
+
desiredReplicasUp = () => {
- this.desiredReplicas < this.scaleMax && this.desiredReplicas++;
+ this.desiredReplicas = Math.min(this.scaleMax, this.desiredReplicas + 1);
};
desiredReplicasDown = () => {
- this.desiredReplicas > 0 && this.desiredReplicas--;
+ this.desiredReplicas = Math.max(this.scaleMin, this.desiredReplicas - 1);
};
renderContents() {
diff --git a/src/renderer/components/menu/menu.tsx b/src/renderer/components/menu/menu.tsx
index 4dfddc978d..51b65ee2ee 100644
--- a/src/renderer/components/menu/menu.tsx
+++ b/src/renderer/components/menu/menu.tsx
@@ -90,6 +90,10 @@ export class Menu extends React.Component {
return !!this.props.isOpen;
}
+ get isClosed() {
+ return !this.isOpen;
+ }
+
componentDidMount() {
if (!this.props.usePortal) {
const parent = this.elem.parentElement;
@@ -202,19 +206,32 @@ export class Menu extends React.Component {
};
open() {
- if (this.isOpen) return;
+ if (this.isOpen) {
+ return;
+ }
+
this.props.open();
this.refreshPosition();
- if (this.props.autoFocus) this.focusNextItem();
+
+ if (this.props.autoFocus) {
+ this.focusNextItem();
+ }
}
close() {
- if (!this.isOpen) return;
+ if (this.isClosed) {
+ return;
+ }
+
this.props.close();
}
toggle() {
- this.isOpen ? this.close() : this.open();
+ if (this.isOpen) {
+ this.close();
+ } else {
+ this.open();
+ }
}
onKeyDown(evt: KeyboardEvent) {