mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-19 07:16:39 +00:00
optimize
This commit is contained in:
parent
8d2f7d99af
commit
3bdc5ad420
@ -152,26 +152,38 @@ class AddIntegrationDialog extends LitElement {
|
|||||||
}))
|
}))
|
||||||
.sort((a, b) => caseInsensitiveStringCompare(a.name, b.name));
|
.sort((a, b) => caseInsensitiveStringCompare(a.name, b.name));
|
||||||
|
|
||||||
const integrations: IntegrationListItem[] = Object.entries(i)
|
const integrations: IntegrationListItem[] = [];
|
||||||
.filter(
|
const yamlIntegrations: IntegrationListItem[] = [];
|
||||||
([_domain, integration]) =>
|
|
||||||
integration.config_flow ||
|
Object.entries(i).forEach(([domain, integration]) => {
|
||||||
integration.iot_standards ||
|
if (
|
||||||
integration.integrations
|
integration.config_flow ||
|
||||||
)
|
integration.iot_standards ||
|
||||||
.map(([domain, integration]) => ({
|
integration.integrations
|
||||||
domain,
|
) {
|
||||||
name: integration.name || domainToName(localize, domain),
|
integrations.push({
|
||||||
config_flow: integration.config_flow,
|
domain,
|
||||||
iot_standards: integration.iot_standards,
|
name: integration.name || domainToName(localize, domain),
|
||||||
integrations: integration.integrations
|
config_flow: integration.config_flow,
|
||||||
? Object.entries(integration.integrations).map(
|
iot_standards: integration.iot_standards,
|
||||||
([dom, val]) => val.name || domainToName(localize, dom)
|
integrations: integration.integrations
|
||||||
)
|
? Object.entries(integration.integrations).map(
|
||||||
: undefined,
|
([dom, val]) => val.name || domainToName(localize, dom)
|
||||||
is_built_in: integration.is_built_in !== false,
|
)
|
||||||
cloud: integration.iot_class?.startsWith("cloud_"),
|
: undefined,
|
||||||
}));
|
is_built_in: integration.is_built_in !== false,
|
||||||
|
cloud: integration.iot_class?.startsWith("cloud_"),
|
||||||
|
});
|
||||||
|
} else if (filter) {
|
||||||
|
yamlIntegrations.push({
|
||||||
|
domain,
|
||||||
|
name: integration.name || domainToName(localize, domain),
|
||||||
|
config_flow: integration.config_flow,
|
||||||
|
is_built_in: integration.is_built_in !== false,
|
||||||
|
cloud: integration.iot_class?.startsWith("cloud_"),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
for (const [domain, domainBrands] of Object.entries(sb)) {
|
for (const [domain, domainBrands] of Object.entries(sb)) {
|
||||||
const integration = this._findIntegration(domain);
|
const integration = this._findIntegration(domain);
|
||||||
@ -223,31 +235,11 @@ class AddIntegrationDialog extends LitElement {
|
|||||||
is_built_in: integration.is_built_in !== false,
|
is_built_in: integration.is_built_in !== false,
|
||||||
cloud: integration.iot_class?.startsWith("cloud_"),
|
cloud: integration.iot_class?.startsWith("cloud_"),
|
||||||
}));
|
}));
|
||||||
const yaml: IntegrationListItem[] = Object.entries(i)
|
|
||||||
.filter(
|
|
||||||
([_domain, integration]) =>
|
|
||||||
!integration.config_flow &&
|
|
||||||
!integration.iot_standards &&
|
|
||||||
!integration.integrations
|
|
||||||
)
|
|
||||||
.map(([domain, integration]) => ({
|
|
||||||
domain,
|
|
||||||
name: integration.name || domainToName(localize, domain),
|
|
||||||
config_flow: integration.config_flow,
|
|
||||||
iot_standards: integration.iot_standards,
|
|
||||||
integrations: integration.integrations
|
|
||||||
? Object.entries(integration.integrations).map(
|
|
||||||
([dom, val]) => val.name || domainToName(localize, dom)
|
|
||||||
)
|
|
||||||
: undefined,
|
|
||||||
is_built_in: integration.is_built_in !== false,
|
|
||||||
cloud: integration.iot_class?.startsWith("cloud_"),
|
|
||||||
}));
|
|
||||||
return [
|
return [
|
||||||
...new Fuse(integrations, options)
|
...new Fuse(integrations, options)
|
||||||
.search(filter)
|
.search(filter)
|
||||||
.map((result) => result.item),
|
.map((result) => result.item),
|
||||||
...new Fuse(yaml, options)
|
...new Fuse(yamlIntegrations, options)
|
||||||
.search(filter)
|
.search(filter)
|
||||||
.map((result) => result.item),
|
.map((result) => result.item),
|
||||||
...new Fuse(helpers, options)
|
...new Fuse(helpers, options)
|
||||||
@ -447,8 +439,10 @@ class AddIntegrationDialog extends LitElement {
|
|||||||
|
|
||||||
private _integrationPicked(ev) {
|
private _integrationPicked(ev) {
|
||||||
const listItem = ev.target.closest("ha-integration-list-item");
|
const listItem = ev.target.closest("ha-integration-list-item");
|
||||||
const integration: IntegrationListItem = listItem.integration;
|
if (!listItem) {
|
||||||
this._handleIntegrationPicked(integration);
|
return;
|
||||||
|
}
|
||||||
|
this._handleIntegrationPicked(listItem.integration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _handleIntegrationPicked(integration: IntegrationListItem) {
|
private async _handleIntegrationPicked(integration: IntegrationListItem) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user