Skip to content

Commit

Permalink
[Enterprise Search] Use caching for filtered config fields (#155608)
Browse files Browse the repository at this point in the history
Moves the configurable fields filtering to the logic file so it can make
use of caching.
  • Loading branch information
navarone-feekery authored Apr 24, 2023
1 parent 4dc21e5 commit 069324a
Show file tree
Hide file tree
Showing 3 changed files with 376 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,37 +24,19 @@ import {
import { i18n } from '@kbn/i18n';

import { Status } from '../../../../../../common/types/api';
import { DependencyLookup, DisplayType } from '../../../../../../common/types/connectors';
import { DisplayType } from '../../../../../../common/types/connectors';

import { ConnectorConfigurationApiLogic } from '../../../api/connector/update_connector_configuration_api_logic';

import { ConnectorConfigurationField } from './connector_configuration_field';
import {
ConfigEntry,
ConnectorConfigurationLogic,
dependenciesSatisfied,
} from './connector_configuration_logic';
import { ConnectorConfigurationLogic } from './connector_configuration_logic';

export const ConnectorConfigurationForm = () => {
const { status } = useValues(ConnectorConfigurationApiLogic);

const { localConfigView } = useValues(ConnectorConfigurationLogic);
const { saveConfig, setIsEditing } = useActions(ConnectorConfigurationLogic);

const dependencyLookup: DependencyLookup = localConfigView.reduce(
(prev: Record<string, string | number | boolean | null>, configEntry: ConfigEntry) => ({
...prev,
[configEntry.key]: configEntry.value,
}),
{}
);

const filteredConfigView = localConfigView.filter(
(configEntry) =>
configEntry.ui_restrictions.length <= 0 &&
dependenciesSatisfied(configEntry.depends_on, dependencyLookup)
);

return (
<EuiForm
onSubmit={(event) => {
Expand All @@ -63,7 +45,7 @@ export const ConnectorConfigurationForm = () => {
}}
component="form"
>
{filteredConfigView.map((configEntry, index) => {
{localConfigView.map((configEntry, index) => {
const {
default_value: defaultValue,
depends_on: dependencies,
Expand Down Expand Up @@ -94,8 +76,8 @@ export const ConnectorConfigurationForm = () => {

if (dependencies.length > 0) {
// dynamic spacing without CSS
const previousField = filteredConfigView[index - 1];
const nextField = filteredConfigView[index + 1];
const previousField = localConfigView[index - 1];
const nextField = localConfigView[index + 1];

const topSpacing =
!previousField || previousField.depends_on.length <= 0 ? <EuiSpacer size="m" /> : <></>;
Expand Down
Loading

0 comments on commit 069324a

Please sign in to comment.