1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Lint: no-unused-expressions (error) (#4197)

This commit is contained in:
Sebastian Malton 2021-11-01 08:37:37 -04:00 committed by GitHub
parent c6dab62e99
commit e74f17e8ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 79 additions and 50 deletions

View File

@ -77,6 +77,7 @@ module.exports = {
"object-shorthand": "error", "object-shorthand": "error",
"prefer-template": "error", "prefer-template": "error",
"template-curly-spacing": "error", "template-curly-spacing": "error",
"no-unused-expressions": "error",
"padding-line-between-statements": [ "padding-line-between-statements": [
"error", "error",
{ "blankLine": "always", "prev": "*", "next": "return" }, { "blankLine": "always", "prev": "*", "next": "return" },
@ -139,6 +140,8 @@ module.exports = {
"object-shorthand": "error", "object-shorthand": "error",
"prefer-template": "error", "prefer-template": "error",
"template-curly-spacing": "error", "template-curly-spacing": "error",
"no-unused-expressions": "off",
"@typescript-eslint/no-unused-expressions": "error",
"padding-line-between-statements": [ "padding-line-between-statements": [
"error", "error",
{ "blankLine": "always", "prev": "*", "next": "return" }, { "blankLine": "always", "prev": "*", "next": "return" },
@ -208,6 +211,8 @@ module.exports = {
"object-shorthand": "error", "object-shorthand": "error",
"prefer-template": "error", "prefer-template": "error",
"template-curly-spacing": "error", "template-curly-spacing": "error",
"no-unused-expressions": "off",
"@typescript-eslint/no-unused-expressions": "error",
"padding-line-between-statements": [ "padding-line-between-statements": [
"error", "error",
{ "blankLine": "always", "prev": "*", "next": "return" }, { "blankLine": "always", "prev": "*", "next": "return" },

View File

@ -32,11 +32,9 @@ import esbuild from "esbuild";
const getTSLoader = ( const getTSLoader = (
testRegExp: RegExp, transpileOnly = true 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 { return {
test: testRegExp, test: testRegExp,
loader: "esbuild-loader", loader: "esbuild-loader",

View File

@ -27,14 +27,17 @@ import type { CatalogEntity } from "../../api/catalog-entity";
export function HotbarToggleMenuItem(props: { entity: CatalogEntity, addContent: ReactNode, removeContent: ReactNode }) { export function HotbarToggleMenuItem(props: { entity: CatalogEntity, addContent: ReactNode, removeContent: ReactNode }) {
const store = HotbarStore.getInstance(); 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)); const [itemInHotbar, setItemInHotbar] = useState(store.isAddedToActive(props.entity));
return ( return (
<MenuItem onClick={() => { <MenuItem onClick={() => {
itemInHotbar ? remove() : add(); if (itemInHotbar) {
setItemInHotbar(!itemInHotbar); store.removeFromHotbar(props.entity.getId());
setItemInHotbar(false);
} else {
store.addToHotbar(props.entity);
setItemInHotbar(true);
}
}}> }}>
{itemInHotbar ? props.removeContent : props.addContent } {itemInHotbar ? props.removeContent : props.addContent }
</MenuItem> </MenuItem>

View File

@ -35,6 +35,7 @@ enum EditorLineNumbersStyles {
} }
export const Editor = observer(() => { export const Editor = observer(() => {
const userStore = UserStore.getInstance();
return ( return (
<section id="editor"> <section id="editor">
@ -43,8 +44,8 @@ export const Editor = observer(() => {
<FormSwitch <FormSwitch
control={ control={
<Switcher <Switcher
checked={UserStore.getInstance().editorConfiguration.miniMap.enabled} checked={userStore.editorConfiguration.miniMap.enabled}
onChange={v => UserStore.getInstance().enableEditorMinimap(v.target.checked)} onChange={v => userStore.enableEditorMinimap(v.target.checked)}
name="minimap" name="minimap"
/> />
} }
@ -55,8 +56,8 @@ export const Editor = observer(() => {
<SubTitle title="Line numbers"/> <SubTitle title="Line numbers"/>
<Select <Select
options={Object.entries(EditorLineNumbersStyles).map(entry => ({label: entry[1], value: entry[0]}))} options={Object.entries(EditorLineNumbersStyles).map(entry => ({label: entry[1], value: entry[0]}))}
value={UserStore.getInstance().editorConfiguration?.lineNumbers} value={userStore.editorConfiguration?.lineNumbers}
onChange={({ value }: SelectOption) => UserStore.getInstance().setEditorLineNumbers(value)} onChange={({ value }: SelectOption) => userStore.setEditorLineNumbers(value)}
themeName="lens" themeName="lens"
/> />
</section> </section>
@ -67,8 +68,14 @@ export const Editor = observer(() => {
min={1} min={1}
max={10} max={10}
validators={[isNumber]} validators={[isNumber]}
value={UserStore.getInstance().editorConfiguration.tabSize?.toString()} value={userStore.editorConfiguration.tabSize?.toString()}
onChange={(value) => {(Number(value) || value=="") && UserStore.getInstance().setEditorTabSize(Number(value));}} onChange={value => {
const n = Number(value);
if (!isNaN(n)) {
userStore.setEditorTabSize(n);
}
}}
/> />
</section> </section>
</section> </section>

View File

@ -118,12 +118,14 @@ export class DeploymentScaleDialog extends Component<Props> {
} }
}; };
private readonly scaleMin = 0;
desiredReplicasUp = () => { desiredReplicasUp = () => {
this.desiredReplicas < this.scaleMax && this.desiredReplicas++; this.desiredReplicas = Math.min(this.scaleMax, this.desiredReplicas + 1);
}; };
desiredReplicasDown = () => { desiredReplicasDown = () => {
this.desiredReplicas > 0 && this.desiredReplicas--; this.desiredReplicas = Math.max(this.scaleMin, this.desiredReplicas - 1);
}; };
renderContents() { renderContents() {

View File

@ -40,30 +40,23 @@ interface Props {
export const ContainerEnvironment = observer((props: Props) => { export const ContainerEnvironment = observer((props: Props) => {
const { container: { env, envFrom }, namespace } = props; const { container: { env, envFrom }, namespace } = props;
useEffect( useEffect( () => autorun(() => {
() => for (const { valueFrom } of env ?? []) {
autorun(() => { if (valueFrom?.configMapKeyRef) {
env && env.forEach(variable => { configMapsStore.load({ name: valueFrom.configMapKeyRef.name, namespace });
const { valueFrom } = variable; }
}
if (valueFrom && valueFrom.configMapKeyRef) { for (const { configMapRef, secretRef } of envFrom ?? []) {
configMapsStore.load({ name: valueFrom.configMapKeyRef.name, namespace }); if (secretRef?.name) {
} secretsStore.load({ name: secretRef.name, namespace });
}); }
envFrom && envFrom.forEach(item => {
const { configMapRef, secretRef } = item;
if (secretRef && secretRef.name) { if (configMapRef?.name) {
secretsStore.load({ name: secretRef.name, namespace }); configMapsStore.load({ name: configMapRef.name, namespace });
} }
}
if (configMapRef && configMapRef.name) { }), []);
configMapsStore.load({ name: configMapRef.name, namespace });
}
});
}),
[]
);
const renderEnv = () => { const renderEnv = () => {
const orderedEnv = _.sortBy(env, "name"); const orderedEnv = _.sortBy(env, "name");

View File

@ -118,12 +118,14 @@ export class ReplicaSetScaleDialog extends Component<Props> {
} }
}; };
private readonly scaleMin = 0;
desiredReplicasUp = () => { desiredReplicasUp = () => {
this.desiredReplicas < this.scaleMax && this.desiredReplicas++; this.desiredReplicas = Math.min(this.scaleMax, this.desiredReplicas + 1);
}; };
desiredReplicasDown = () => { desiredReplicasDown = () => {
this.desiredReplicas > 0 && this.desiredReplicas--; this.desiredReplicas = Math.max(this.scaleMin, this.desiredReplicas - 1);
}; };
renderContents() { renderContents() {

View File

@ -117,12 +117,14 @@ export class StatefulSetScaleDialog extends Component<Props> {
} }
}; };
private readonly scaleMin = 0;
desiredReplicasUp = () => { desiredReplicasUp = () => {
this.desiredReplicas < this.scaleMax && this.desiredReplicas++; this.desiredReplicas = Math.min(this.scaleMax, this.desiredReplicas + 1);
}; };
desiredReplicasDown = () => { desiredReplicasDown = () => {
this.desiredReplicas > 0 && this.desiredReplicas--; this.desiredReplicas = Math.max(this.scaleMin, this.desiredReplicas - 1);
}; };
renderContents() { renderContents() {

View File

@ -90,6 +90,10 @@ export class Menu extends React.Component<MenuProps, State> {
return !!this.props.isOpen; return !!this.props.isOpen;
} }
get isClosed() {
return !this.isOpen;
}
componentDidMount() { componentDidMount() {
if (!this.props.usePortal) { if (!this.props.usePortal) {
const parent = this.elem.parentElement; const parent = this.elem.parentElement;
@ -202,19 +206,32 @@ export class Menu extends React.Component<MenuProps, State> {
}; };
open() { open() {
if (this.isOpen) return; if (this.isOpen) {
return;
}
this.props.open(); this.props.open();
this.refreshPosition(); this.refreshPosition();
if (this.props.autoFocus) this.focusNextItem();
if (this.props.autoFocus) {
this.focusNextItem();
}
} }
close() { close() {
if (!this.isOpen) return; if (this.isClosed) {
return;
}
this.props.close(); this.props.close();
} }
toggle() { toggle() {
this.isOpen ? this.close() : this.open(); if (this.isOpen) {
this.close();
} else {
this.open();
}
} }
onKeyDown(evt: KeyboardEvent) { onKeyDown(evt: KeyboardEvent) {