Skip to content

Commit

Permalink
Support prepopulated Search UI fields (#99793)
Browse files Browse the repository at this point in the history
  • Loading branch information
JasonStoltz authored May 11, 2021
1 parent 087cb52 commit 56908e1
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,10 @@ describe('SearchUILogic', () => {
validFields: ['test'],
validSortFields: ['test'],
validFacetFields: ['test'],
defaultValues: {
urlField: 'url',
titleField: 'title',
},
};

describe('loadFieldData', () => {
Expand All @@ -142,7 +146,13 @@ describe('SearchUILogic', () => {
expect(http.get).toHaveBeenCalledWith(
'/api/app_search/engines/engine1/search_ui/field_config'
);
expect(SearchUILogic.actions.onFieldDataLoaded).toHaveBeenCalledWith(MOCK_RESPONSE);
expect(SearchUILogic.actions.onFieldDataLoaded).toHaveBeenCalledWith({
validFields: ['test'],
validSortFields: ['test'],
validFacetFields: ['test'],
urlField: 'url',
titleField: 'title',
});
});

it('handles errors', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ interface InitialFieldValues {
validFields: string[];
validSortFields: string[];
validFacetFields: string[];
urlField?: string;
titleField?: string;
}
interface SearchUIActions {
loadFieldData(): void;
Expand Down Expand Up @@ -61,8 +63,20 @@ export const SearchUILogic = kea<MakeLogicType<SearchUIValues, SearchUIActions>>
validFields: [[], { onFieldDataLoaded: (_, { validFields }) => validFields }],
validSortFields: [[], { onFieldDataLoaded: (_, { validSortFields }) => validSortFields }],
validFacetFields: [[], { onFieldDataLoaded: (_, { validFacetFields }) => validFacetFields }],
titleField: ['', { onTitleFieldChange: (_, { titleField }) => titleField }],
urlField: ['', { onUrlFieldChange: (_, { urlField }) => urlField }],
titleField: [
'',
{
onTitleFieldChange: (_, { titleField }) => titleField,
onFieldDataLoaded: (_, { titleField }) => titleField || '',
},
],
urlField: [
'',
{
onUrlFieldChange: (_, { urlField }) => urlField,
onFieldDataLoaded: (_, { urlField }) => urlField || '',
},
],
facetFields: [[], { onFacetFieldsChange: (_, { facetFields }) => facetFields }],
sortFields: [[], { onSortFieldsChange: (_, { sortFields }) => sortFields }],
activeField: [ActiveField.None, { onActiveFieldChange: (_, { activeField }) => activeField }],
Expand All @@ -76,8 +90,20 @@ export const SearchUILogic = kea<MakeLogicType<SearchUIValues, SearchUIActions>>

try {
const initialFieldValues = await http.get(url);
const {
defaultValues: { urlField, titleField },
validFields,
validSortFields,
validFacetFields,
} = initialFieldValues;

actions.onFieldDataLoaded(initialFieldValues);
actions.onFieldDataLoaded({
validFields,
validSortFields,
validFacetFields,
urlField,
titleField,
});
} catch (e) {
flashAPIErrors(e);
}
Expand Down

0 comments on commit 56908e1

Please sign in to comment.