Merge pull request #93 from paviliondev/es-lint
Apply es-lint to javascripts/discourse
Dieser Commit ist enthalten in:
Commit
c02ae44a82
27 geänderte Dateien mit 82 neuen und 101 gelöschten Zeilen
|
@ -1,6 +1,7 @@
|
|||
import Component from "@ember/component";
|
||||
import discourseComputed, { observes } from "discourse-common/utils/decorators";
|
||||
import { or, alias } from "@ember/object/computed";
|
||||
import { alias, or } from "@ember/object/computed";
|
||||
import I18n from "I18n";
|
||||
|
||||
const generateContent = function (array, type) {
|
||||
return array.map((key) => ({
|
||||
|
@ -34,7 +35,7 @@ export default Component.extend({
|
|||
},
|
||||
|
||||
@discourseComputed("field.klass")
|
||||
serializerContent(klass, p2) {
|
||||
serializerContent(klass) {
|
||||
const serializers = this.get(`${klass}Serializers`);
|
||||
|
||||
if (serializers) {
|
||||
|
@ -66,21 +67,21 @@ export default Component.extend({
|
|||
"field.serializers"
|
||||
)
|
||||
saveDisabled(saving) {
|
||||
if (saving) return true;
|
||||
if (saving) {return true;}
|
||||
|
||||
const originalField = this.originalField;
|
||||
if (!originalField) return false;
|
||||
if (!originalField) {return false;}
|
||||
|
||||
return ["name", "klass", "type", "serializers"].every((attr) => {
|
||||
let current = this.get(attr);
|
||||
let original = originalField[attr];
|
||||
|
||||
if (!current) return false;
|
||||
if (!current) {return false;}
|
||||
|
||||
if (attr == "serializers") {
|
||||
if (attr === "serializers") {
|
||||
return this.compareArrays(current, original);
|
||||
} else {
|
||||
return current == original;
|
||||
return current === original;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
@ -7,7 +7,7 @@ export default Component.extend({
|
|||
@discourseComputed("showAdvanced")
|
||||
toggleClass(showAdvanced) {
|
||||
let classes = "btn";
|
||||
if (showAdvanced) classes += " btn-primary";
|
||||
if (showAdvanced) {classes += " btn-primary";}
|
||||
return classes;
|
||||
},
|
||||
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
import { default as discourseComputed } from "discourse-common/utils/decorators";
|
||||
import { equal, empty, or, and } from "@ember/object/computed";
|
||||
import { generateName, selectKitContent } from "../lib/wizard";
|
||||
import { and, empty, equal, or } from "@ember/object/computed";
|
||||
import { notificationLevels, selectKitContent } from "../lib/wizard";
|
||||
import { computed } from "@ember/object";
|
||||
import wizardSchema from "../lib/wizard-schema";
|
||||
import UndoChanges from "../mixins/undo-changes";
|
||||
import Component from "@ember/component";
|
||||
import { notificationLevels } from "../lib/wizard";
|
||||
import I18n from "I18n";
|
||||
|
||||
export default Component.extend(UndoChanges, {
|
||||
|
@ -43,7 +42,7 @@ export default Component.extend(UndoChanges, {
|
|||
name: I18n.t(`admin.wizard.action.${type}.label`),
|
||||
};
|
||||
}),
|
||||
availableNotificationLevels: notificationLevels.map((type, index) => {
|
||||
availableNotificationLevels: notificationLevels.map((type) => {
|
||||
return {
|
||||
id: type,
|
||||
name: I18n.t(
|
||||
|
@ -92,7 +91,7 @@ export default Component.extend(UndoChanges, {
|
|||
|
||||
@discourseComputed("apis", "action.api")
|
||||
availableEndpoints(apis, api) {
|
||||
if (!api) return [];
|
||||
if (!api) {return [];}
|
||||
return apis.find((a) => a.name === api).endpoints;
|
||||
},
|
||||
});
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { default as discourseComputed } from "discourse-common/utils/decorators";
|
||||
import { equal, or, alias } from "@ember/object/computed";
|
||||
import { alias, equal, or } from "@ember/object/computed";
|
||||
import { computed } from "@ember/object";
|
||||
import { selectKitContent } from "../lib/wizard";
|
||||
import UndoChanges from "../mixins/undo-changes";
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import Component from "@ember/component";
|
||||
import { default as discourseComputed } from "discourse-common/utils/decorators";
|
||||
|
||||
export default Component.extend({
|
||||
classNames: "wizard-custom-step",
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
import {
|
||||
default as discourseComputed,
|
||||
on,
|
||||
observes,
|
||||
on,
|
||||
} from "discourse-common/utils/decorators";
|
||||
import { generateName } from "../lib/wizard";
|
||||
import {
|
||||
default as wizardSchema,
|
||||
setWizardDefaults,
|
||||
default as wizardSchema,
|
||||
} from "../lib/wizard-schema";
|
||||
import { notEmpty } from "@ember/object/computed";
|
||||
import { scheduleOnce, bind } from "@ember/runloop";
|
||||
import { scheduleOnce } from "@ember/runloop";
|
||||
import EmberObject from "@ember/object";
|
||||
import Component from "@ember/component";
|
||||
import { A } from "@ember/array";
|
||||
|
@ -53,7 +53,7 @@ export default Component.extend({
|
|||
"items.@each.title"
|
||||
)
|
||||
links(current, items) {
|
||||
if (!items) return;
|
||||
if (!items) {return;}
|
||||
|
||||
return items.map((item) => {
|
||||
if (item) {
|
||||
|
|
|
@ -3,7 +3,6 @@ import { gt } from "@ember/object/computed";
|
|||
import { computed } from "@ember/object";
|
||||
import { defaultConnector } from "../lib/wizard-mapper";
|
||||
import { later } from "@ember/runloop";
|
||||
import { observes } from "discourse-common/utils/decorators";
|
||||
import I18n from "I18n";
|
||||
|
||||
export default Component.extend({
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import { computed, set } from "@ember/object";
|
||||
import { alias, equal, or, not } from "@ember/object/computed";
|
||||
import { alias, equal, not, or } from "@ember/object/computed";
|
||||
import {
|
||||
newPair,
|
||||
connectorContent,
|
||||
inputTypesContent,
|
||||
defaultSelectionType,
|
||||
defaultConnector,
|
||||
defaultSelectionType,
|
||||
inputTypesContent,
|
||||
newPair,
|
||||
} from "../lib/wizard-mapper";
|
||||
import Component from "@ember/component";
|
||||
import { observes } from "discourse-common/utils/decorators";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { connectorContent } from "../lib/wizard-mapper";
|
||||
import { gt, or, alias } from "@ember/object/computed";
|
||||
import { computed, observes } from "@ember/object";
|
||||
import { alias, gt } from "@ember/object/computed";
|
||||
import { computed } from "@ember/object";
|
||||
import Component from "@ember/component";
|
||||
|
||||
export default Component.extend({
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
import { alias, or, gt } from "@ember/object/computed";
|
||||
import { alias, gt, or } from "@ember/object/computed";
|
||||
import { computed } from "@ember/object";
|
||||
import {
|
||||
default as discourseComputed,
|
||||
observes,
|
||||
on,
|
||||
observes
|
||||
} from "discourse-common/utils/decorators";
|
||||
import { getOwner } from "discourse-common/lib/get-owner";
|
||||
import { defaultSelectionType, selectionTypes } from "../lib/wizard-mapper";
|
||||
import { snakeCase, generateName, userProperties } from "../lib/wizard";
|
||||
import { generateName, snakeCase, userProperties } from "../lib/wizard";
|
||||
import Component from "@ember/component";
|
||||
import { bind, later } from "@ember/runloop";
|
||||
import I18n from "I18n";
|
||||
|
@ -135,7 +134,7 @@ export default Component.extend({
|
|||
},
|
||||
|
||||
documentClick(e) {
|
||||
if (this._state == "destroying") return;
|
||||
if (this._state === "destroying") {return;}
|
||||
let $target = $(e.target);
|
||||
|
||||
if (!$target.parents(".type-selector").length && this.showTypes) {
|
||||
|
@ -249,7 +248,7 @@ export default Component.extend({
|
|||
},
|
||||
|
||||
@discourseComputed("activeType", "inputType")
|
||||
placeholderKey(activeType, inputType) {
|
||||
placeholderKey(activeType) {
|
||||
if (
|
||||
activeType === "text" &&
|
||||
this.options[`${this.selectorType}Placeholder`]
|
||||
|
@ -275,14 +274,14 @@ export default Component.extend({
|
|||
|
||||
optionEnabled(type) {
|
||||
const options = this.options;
|
||||
if (!options) return false;
|
||||
if (!options) {return false;}
|
||||
|
||||
const option = options[type];
|
||||
if (option === true) return true;
|
||||
if (typeof option !== "string") return false;
|
||||
if (option === true) {return true;}
|
||||
if (typeof option !== "string") {return false;}
|
||||
|
||||
return option.split(",").filter((option) => {
|
||||
return [this.selectorType, this.inputType].indexOf(option) !== -1;
|
||||
return option.split(",").filter((o) => {
|
||||
return [this.selectorType, this.inputType].indexOf(o) !== -1;
|
||||
}).length;
|
||||
},
|
||||
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
import { getOwner } from "discourse-common/lib/get-owner";
|
||||
import { newInput, selectionTypes } from "../lib/wizard-mapper";
|
||||
import {
|
||||
default as discourseComputed,
|
||||
observes,
|
||||
on,
|
||||
} from "discourse-common/utils/decorators";
|
||||
import discourseComputed from "discourse-common/utils/decorators";
|
||||
import { later } from "@ember/runloop";
|
||||
import Component from "@ember/component";
|
||||
import { A } from "@ember/array";
|
||||
|
|
|
@ -19,7 +19,7 @@ export default Component.extend({
|
|||
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
if (!this.validations) return;
|
||||
if (!this.validations) {return;}
|
||||
|
||||
if (!this.field.validations) {
|
||||
const validations = {};
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
import {
|
||||
default as discourseComputed,
|
||||
on,
|
||||
} from "discourse-common/utils/decorators";
|
||||
import discourseComputed from "discourse-common/utils/decorators";
|
||||
import { notEmpty } from "@ember/object/computed";
|
||||
import { userProperties } from "../lib/wizard";
|
||||
import { scheduleOnce } from "@ember/runloop";
|
||||
|
|
|
@ -2,7 +2,7 @@ import { ajax } from "discourse/lib/ajax";
|
|||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||
import CustomWizardApi from "../models/custom-wizard-api";
|
||||
import { default as discourseComputed } from "discourse-common/utils/decorators";
|
||||
import { not, and, equal } from "@ember/object/computed";
|
||||
import { and, equal, not } from "@ember/object/computed";
|
||||
import { selectKitContent } from "../lib/wizard";
|
||||
import Controller from "@ember/controller";
|
||||
import I18n from "I18n";
|
||||
|
@ -64,8 +64,8 @@ export default Controller.extend({
|
|||
threeLeggedOauth
|
||||
) {
|
||||
if (saveDisabled || !authType || !tokenUrl || !clientId || !clientSecret)
|
||||
return true;
|
||||
if (threeLeggedOauth) return !authUrl;
|
||||
{return true;}
|
||||
if (threeLeggedOauth) {return !authUrl;}
|
||||
return false;
|
||||
},
|
||||
|
||||
|
@ -146,16 +146,16 @@ export default Controller.extend({
|
|||
const api = this.get("api");
|
||||
const name = api.name;
|
||||
const authType = api.authType;
|
||||
let refreshList = false;
|
||||
let refreshList = false; // eslint-disable-line
|
||||
let error;
|
||||
|
||||
if (!name || !authType) return;
|
||||
if (!name || !authType) {return;}
|
||||
|
||||
let data = {
|
||||
auth_type: authType,
|
||||
};
|
||||
|
||||
if (api.title) data["title"] = api.title;
|
||||
if (api.title) {data["title"] = api.title;}
|
||||
|
||||
const originalTitle = this.get("api.originalTitle");
|
||||
if (api.get("isNew") || (originalTitle && api.title !== originalTitle)) {
|
||||
|
@ -232,7 +232,7 @@ export default Controller.extend({
|
|||
|
||||
remove() {
|
||||
const name = this.get("api.name");
|
||||
if (!name) return;
|
||||
if (!name) {return;}
|
||||
|
||||
this.set("updating", true);
|
||||
|
||||
|
@ -250,7 +250,7 @@ export default Controller.extend({
|
|||
|
||||
clearLogs() {
|
||||
const name = this.get("api.name");
|
||||
if (!name) return;
|
||||
if (!name) {return;}
|
||||
|
||||
ajax(`/admin/wizards/api/${name.underscore()}/logs`, {
|
||||
type: "DELETE",
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
import Controller from "@ember/controller";
|
||||
import EmberObject from "@ember/object";
|
||||
import { ajax } from "discourse/lib/ajax";
|
||||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||
import CustomWizardCustomField from "../models/custom-wizard-custom-field";
|
||||
import { default as discourseComputed } from "discourse-common/utils/decorators";
|
||||
|
||||
export default Controller.extend({
|
||||
messageKey: "create",
|
||||
|
@ -49,7 +45,7 @@ export default Controller.extend({
|
|||
},
|
||||
|
||||
removeField(field) {
|
||||
return CustomWizardCustomField.destroyField(field).then((result) => {
|
||||
return CustomWizardCustomField.destroyField(field).then(() => {
|
||||
this.get("customFields").removeObject(field);
|
||||
});
|
||||
},
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import { default as computed } from "discourse-common/utils/decorators";
|
||||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||
import { ajax } from "discourse/lib/ajax";
|
||||
import discourseComputed from "discourse-common/utils/decorators";
|
||||
import { notEmpty } from "@ember/object/computed";
|
||||
import CustomWizardLogs from "../models/custom-wizard-logs";
|
||||
import Controller from "@ember/controller";
|
||||
|
@ -13,7 +11,7 @@ export default Controller.extend({
|
|||
logs: [],
|
||||
|
||||
loadLogs() {
|
||||
if (!this.canLoadMore) return;
|
||||
if (!this.canLoadMore) {return;}
|
||||
|
||||
this.set("refreshing", true);
|
||||
|
||||
|
@ -27,7 +25,7 @@ export default Controller.extend({
|
|||
.finally(() => this.set("refreshing", false));
|
||||
},
|
||||
|
||||
@computed("hasLogs", "refreshing")
|
||||
@discourseComputed("hasLogs", "refreshing")
|
||||
noResults(hasLogs, refreshing) {
|
||||
return !hasLogs && !refreshing;
|
||||
},
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
import Controller from "@ember/controller";
|
||||
import {
|
||||
default as discourseComputed,
|
||||
observes,
|
||||
} from "discourse-common/utils/decorators";
|
||||
import { observes } from "discourse-common/utils/decorators";
|
||||
import { empty } from "@ember/object/computed";
|
||||
import CustomWizardManager from "../models/custom-wizard-manager";
|
||||
import { A } from "@ember/array";
|
||||
|
@ -196,7 +193,7 @@ export default Controller.extend({
|
|||
},
|
||||
|
||||
destroy() {
|
||||
const destroyWizards = this.get("destroyWizards");
|
||||
let destroyWizards = this.get("destroyWizards");
|
||||
|
||||
if (!destroyWizards.length) {
|
||||
this.setMessage("error", "none_selected");
|
||||
|
@ -227,7 +224,7 @@ export default Controller.extend({
|
|||
|
||||
if (result.destroyed.length) {
|
||||
const destroyedIds = result.destroyed.map((d) => d.id);
|
||||
const destroyWizards = this.get("destroyWizards");
|
||||
destroyWizards = this.get("destroyWizards");
|
||||
const wizards = this.get("wizards");
|
||||
|
||||
wizards.removeObjects(
|
||||
|
|
|
@ -1,18 +1,14 @@
|
|||
import {
|
||||
default as discourseComputed,
|
||||
observes,
|
||||
on,
|
||||
observes
|
||||
} from "discourse-common/utils/decorators";
|
||||
import { notEmpty, alias } from "@ember/object/computed";
|
||||
import { notEmpty } from "@ember/object/computed";
|
||||
import showModal from "discourse/lib/show-modal";
|
||||
import { generateId, wizardFieldList } from "../lib/wizard";
|
||||
import { buildProperties } from "../lib/wizard-json";
|
||||
import { dasherize } from "@ember/string";
|
||||
import EmberObject from "@ember/object";
|
||||
import { scheduleOnce, later } from "@ember/runloop";
|
||||
import { later, scheduleOnce } from "@ember/runloop";
|
||||
import Controller from "@ember/controller";
|
||||
import copyText from "discourse/lib/copy-text";
|
||||
import CustomWizard from "../models/custom-wizard";
|
||||
import I18n from "I18n";
|
||||
|
||||
export default Controller.extend({
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import { withPluginApi } from "discourse/lib/plugin-api";
|
||||
import DiscourseURL from "discourse/lib/url";
|
||||
|
||||
export default {
|
||||
|
@ -6,7 +5,7 @@ export default {
|
|||
initialize(container) {
|
||||
const siteSettings = container.lookup("site-settings:main");
|
||||
|
||||
if (!siteSettings.custom_wizard_enabled) return;
|
||||
if (!siteSettings.custom_wizard_enabled) {return;}
|
||||
|
||||
const existing = DiscourseURL.routeTo;
|
||||
DiscourseURL.routeTo = function (path, opts) {
|
||||
|
|
|
@ -8,7 +8,7 @@ export default {
|
|||
const messageBus = container.lookup("message-bus:main");
|
||||
const siteSettings = container.lookup("site-settings:main");
|
||||
|
||||
if (!siteSettings.custom_wizard_enabled || !messageBus) return;
|
||||
if (!siteSettings.custom_wizard_enabled || !messageBus) {return;}
|
||||
|
||||
messageBus.subscribe("/redirect_to_wizard", function (wizardId) {
|
||||
const wizardUrl = window.location.origin + "/w/" + wizardId;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { listProperties, camelCase, snakeCase } from "../lib/wizard";
|
||||
import { camelCase, listProperties } from "../lib/wizard";
|
||||
import wizardSchema from "../lib/wizard-schema";
|
||||
import EmberObject from "@ember/object";
|
||||
import { A } from "@ember/array";
|
||||
|
|
|
@ -4,6 +4,13 @@ import I18n from "I18n";
|
|||
|
||||
// Inputs
|
||||
|
||||
const selectableInputTypes = [
|
||||
'conditional',
|
||||
'assignment',
|
||||
'association',
|
||||
'validation'
|
||||
];
|
||||
|
||||
function defaultInputType(options = {}) {
|
||||
return options.inputTypes.split(",")[0];
|
||||
}
|
||||
|
@ -43,13 +50,13 @@ function defaultConnector(connectorType, inputType, options = {}) {
|
|||
return defaultInputType(options);
|
||||
}
|
||||
if (connectorType === "pair") {
|
||||
if (inputType === "conditional") return "equal";
|
||||
if (inputType === "association") return "association";
|
||||
if (inputType === "validation") return "equal";
|
||||
if (inputType === "conditional") {return "equal";}
|
||||
if (inputType === "association") {return "association";}
|
||||
if (inputType === "validation") {return "equal";}
|
||||
}
|
||||
if (connectorType === "output") {
|
||||
if (inputType === "conditional") return "then";
|
||||
if (inputType === "assignment") return "set";
|
||||
if (inputType === "conditional") {return "then";}
|
||||
if (inputType === "assignment") {return "set";}
|
||||
}
|
||||
return "equal";
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { set, get } from "@ember/object";
|
||||
import { get, set } from "@ember/object";
|
||||
|
||||
const wizard = {
|
||||
basic: {
|
||||
|
@ -225,7 +225,7 @@ if (Discourse.SiteSettings.wizard_apis_enabled) {
|
|||
};
|
||||
}
|
||||
|
||||
export function setWizardDefaults(obj, itemType, opts = {}) {
|
||||
export function setWizardDefaults(obj, itemType) {
|
||||
const objSchema = wizardSchema[itemType];
|
||||
const basicDefaults = objSchema.basic;
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ function generateName(id) {
|
|||
return id ? sentenceCase(id) : "";
|
||||
}
|
||||
|
||||
function generateId(name, opts = {}) {
|
||||
function generateId(name) {
|
||||
return name ? snakeCase(name) : "";
|
||||
}
|
||||
|
||||
|
@ -60,10 +60,10 @@ const notificationLevels = [
|
|||
"muted",
|
||||
];
|
||||
|
||||
function listProperties(type, opts = {}) {
|
||||
let properties = Object.keys(wizardSchema[type].basic);
|
||||
function listProperties(itemType, opts = {}) {
|
||||
let properties = Object.keys(wizardSchema[itemType].basic);
|
||||
|
||||
const types = wizardSchema[type].types;
|
||||
const types = wizardSchema[itemType].types;
|
||||
|
||||
if (types) {
|
||||
let typeProperties = [];
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
import { listProperties } from "../lib/wizard";
|
||||
import { default as wizardSchema } from "../lib/wizard-schema";
|
||||
import { set, get } from "@ember/object";
|
||||
import { get, set } from "@ember/object";
|
||||
import Mixin from "@ember/object/mixin";
|
||||
import { observes } from "discourse-common/utils/decorators";
|
||||
import { deepEqual } from "discourse-common/lib/object";
|
||||
|
||||
export default Mixin.create({
|
||||
|
@ -97,7 +96,6 @@ export default Mixin.create({
|
|||
actions: {
|
||||
undoChanges() {
|
||||
const componentType = this.componentType;
|
||||
const original = this.get("originalObject");
|
||||
const obj = this.get(componentType);
|
||||
|
||||
this.removeObservers(obj.type);
|
||||
|
@ -118,6 +116,7 @@ export default Mixin.create({
|
|||
this.setupObservers(type);
|
||||
},
|
||||
|
||||
// eslint-disable-next-line
|
||||
mappedFieldUpdated(property, mappedComponent, type) {
|
||||
const obj = this.get(this.componentType);
|
||||
obj.notifyPropertyChange(property);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { ajax } from "discourse/lib/ajax";
|
||||
import EmberObject from "@ember/object";
|
||||
import { buildProperties, present, mapped } from "../lib/wizard-json";
|
||||
import { listProperties, camelCase, snakeCase } from "../lib/wizard";
|
||||
import { buildProperties, mapped, present } from "../lib/wizard-json";
|
||||
import { listProperties, snakeCase } from "../lib/wizard";
|
||||
import wizardSchema from "../lib/wizard-schema";
|
||||
import { Promise } from "rsvp";
|
||||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||
|
@ -132,7 +132,7 @@ const CustomWizard = EmberObject.extend({
|
|||
},
|
||||
|
||||
buildMappedJson(inputs) {
|
||||
if (!inputs || !inputs.length) return false;
|
||||
if (!inputs || !inputs.length) {return false;}
|
||||
|
||||
let result = [];
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ export default DiscourseRoute.extend({
|
|||
|
||||
setupController(controller, model) {
|
||||
const showParams = this.paramsFor("adminWizardsApiShow");
|
||||
const apiName = showParams.name == "create" ? null : showParams.name;
|
||||
const apiName = showParams.name === "create" ? null : showParams.name;
|
||||
const apiList = (model || []).map((api) => {
|
||||
return {
|
||||
id: api.name,
|
||||
|
|
Laden …
In neuem Issue referenzieren