[Workplace Search] Replaces success Flash Messages with Toasts (#108937)

This commit is contained in:
Scotty Bollinger 2021-08-17 13:07:27 -05:00 committed by GitHub
parent 43256bfe11
commit e80c093c94
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 45 additions and 57 deletions

View file

@ -11,7 +11,7 @@ import { useActions, useValues } from 'kea';
import { i18n } from '@kbn/i18n';
import { setSuccessMessage } from '../../../../../shared/flash_messages';
import { flashSuccessToast } from '../../../../../shared/flash_messages';
import { KibanaLogic } from '../../../../../shared/kibana';
import { AppLogic } from '../../../../app_logic';
import {
@ -90,7 +90,7 @@ export const AddSource: React.FC<AddSourceProps> = (props) => {
const goToFormSourceCreated = () => {
KibanaLogic.values.navigateToUrl(`${getSourcesPath(SOURCES_PATH, isOrganization)}`);
setSuccessMessage(FORM_SOURCE_ADDED_SUCCESS_MESSAGE);
flashSuccessToast(FORM_SOURCE_ADDED_SUCCESS_MESSAGE);
};
const header = <AddSourceHeader name={name} serviceType={serviceType} categories={categories} />;

View file

@ -14,7 +14,7 @@ import { HttpFetchQuery } from 'src/core/public';
import {
flashAPIErrors,
setSuccessMessage,
flashSuccessToast,
clearFlashMessages,
setErrorMessage,
} from '../../../../../shared/flash_messages';
@ -491,7 +491,7 @@ export const AddSourceLogic = kea<MakeLogicType<AddSourceValues, AddSourceAction
});
if (successCallback) successCallback();
if (isUpdating) {
setSuccessMessage(
flashSuccessToast(
i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceConfigUpdated',
{

View file

@ -31,7 +31,7 @@ import { DisplaySettingsLogic, defaultSearchResultConfig } from './display_setti
describe('DisplaySettingsLogic', () => {
const { http } = mockHttpValues;
const { navigateToUrl } = mockKibanaValues;
const { clearFlashMessages, flashAPIErrors, setSuccessMessage } = mockFlashMessageHelpers;
const { clearFlashMessages, flashAPIErrors, flashSuccessToast } = mockFlashMessageHelpers;
const { mount } = new LogicMounter(DisplaySettingsLogic);
const { searchResultConfig, exampleDocuments } = exampleResult;
@ -110,7 +110,7 @@ describe('DisplaySettingsLogic', () => {
serverProps.searchResultConfig
);
expect(setSuccessMessage).toHaveBeenCalled();
expect(flashSuccessToast).toHaveBeenCalled();
});
it('handles empty color', () => {

View file

@ -11,7 +11,7 @@ import { cloneDeep, isEqual, differenceBy } from 'lodash';
import { DropResult } from '@elastic/eui';
import {
setSuccessMessage,
flashSuccessToast,
clearFlashMessages,
flashAPIErrors,
} from '../../../../../shared/flash_messages';
@ -405,7 +405,7 @@ export const DisplaySettingsLogic = kea<
}
},
setServerResponseData: () => {
setSuccessMessage(SUCCESS_MESSAGE);
flashSuccessToast(SUCCESS_MESSAGE);
},
toggleFieldEditorModal: () => {
clearFlashMessages();

View file

@ -43,7 +43,7 @@ describe('SchemaLogic', () => {
const {
clearFlashMessages,
flashAPIErrors,
setSuccessMessage,
flashSuccessToast,
setErrorMessage,
} = mockFlashMessageHelpers;
const { mount } = new LogicMounter(SchemaLogic);
@ -371,7 +371,7 @@ describe('SchemaLogic', () => {
}
);
await nextTick();
expect(setSuccessMessage).toHaveBeenCalledWith(SCHEMA_FIELD_ADDED_MESSAGE);
expect(flashSuccessToast).toHaveBeenCalledWith(SCHEMA_FIELD_ADDED_MESSAGE);
expect(onSchemaSetSuccessSpy).toHaveBeenCalledWith(serverResponse);
});
@ -430,7 +430,7 @@ describe('SchemaLogic', () => {
}
);
await nextTick();
expect(setSuccessMessage).toHaveBeenCalledWith(SCHEMA_UPDATED_MESSAGE);
expect(flashSuccessToast).toHaveBeenCalledWith(SCHEMA_UPDATED_MESSAGE);
expect(onSchemaSetSuccessSpy).toHaveBeenCalledWith(serverResponse);
});

View file

@ -13,7 +13,7 @@ import { i18n } from '@kbn/i18n';
import { ADD, UPDATE } from '../../../../../shared/constants/operations';
import {
flashAPIErrors,
setSuccessMessage,
flashSuccessToast,
setErrorMessage,
clearFlashMessages,
} from '../../../../../shared/flash_messages';
@ -346,7 +346,7 @@ export const SchemaLogic = kea<MakeLogicType<SchemaValues, SchemaActions>>({
body: JSON.stringify({ ...updatedSchema }),
});
actions.onSchemaSetSuccess(response);
setSuccessMessage(successMessage);
flashSuccessToast(successMessage);
} catch (e) {
window.scrollTo(0, 0);
if (isAdding) {

View file

@ -29,8 +29,7 @@ describe('SourceLogic', () => {
const {
clearFlashMessages,
flashAPIErrors,
setSuccessMessage,
setQueuedSuccessMessage,
flashSuccessToast,
setErrorMessage,
} = mockFlashMessageHelpers;
const { navigateToUrl } = mockKibanaValues;
@ -79,7 +78,7 @@ describe('SourceLogic', () => {
...contentSource,
name: NAME,
});
expect(setSuccessMessage).toHaveBeenCalled();
expect(flashSuccessToast).toHaveBeenCalled();
});
it('setSearchResults', () => {
@ -391,7 +390,7 @@ describe('SourceLogic', () => {
expect(clearFlashMessages).toHaveBeenCalled();
expect(http.delete).toHaveBeenCalledWith('/api/workplace_search/org/sources/123');
await promise;
expect(setQueuedSuccessMessage).toHaveBeenCalled();
expect(flashSuccessToast).toHaveBeenCalled();
expect(setButtonNotLoadingSpy).toHaveBeenCalled();
});

View file

@ -12,9 +12,8 @@ import { i18n } from '@kbn/i18n';
import { DEFAULT_META } from '../../../shared/constants';
import {
flashAPIErrors,
setSuccessMessage,
flashSuccessToast,
setErrorMessage,
setQueuedSuccessMessage,
clearFlashMessages,
} from '../../../shared/flash_messages';
import { HttpLogic } from '../../../shared/http';
@ -239,7 +238,8 @@ export const SourceLogic = kea<MakeLogicType<SourceValues, SourceActions>>({
try {
const response = await HttpLogic.values.http.delete(route);
setQueuedSuccessMessage(
KibanaLogic.values.navigateToUrl(getSourcesPath(SOURCES_PATH, isOrganization));
flashSuccessToast(
i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceRemoved',
{
@ -248,7 +248,6 @@ export const SourceLogic = kea<MakeLogicType<SourceValues, SourceActions>>({
}
)
);
KibanaLogic.values.navigateToUrl(getSourcesPath(SOURCES_PATH, isOrganization));
} catch (e) {
flashAPIErrors(e);
} finally {
@ -256,7 +255,7 @@ export const SourceLogic = kea<MakeLogicType<SourceValues, SourceActions>>({
}
},
onUpdateSourceName: (name: string) => {
setSuccessMessage(
flashSuccessToast(
i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceNameChanged',
{

View file

@ -23,7 +23,7 @@ import { SourcesLogic, fetchSourceStatuses, POLLING_INTERVAL } from './sources_l
describe('SourcesLogic', () => {
const { http } = mockHttpValues;
const { flashAPIErrors, setQueuedSuccessMessage } = mockFlashMessageHelpers;
const { flashAPIErrors, flashSuccessToast } = mockFlashMessageHelpers;
const { mount, unmount } = new LogicMounter(SourcesLogic);
const contentSource = contentSources[0];
@ -126,7 +126,7 @@ describe('SourcesLogic', () => {
additionalConfiguration: false,
serviceType: 'custom',
});
expect(setQueuedSuccessMessage).toHaveBeenCalledWith('Successfully connected source. ');
expect(flashSuccessToast).toHaveBeenCalledWith('Successfully connected source. ');
});
it('unconfigured', () => {
@ -138,7 +138,7 @@ describe('SourcesLogic', () => {
additionalConfiguration: true,
serviceType: 'custom',
});
expect(setQueuedSuccessMessage).toHaveBeenCalledWith(
expect(flashSuccessToast).toHaveBeenCalledWith(
'Successfully connected source. This source requires additional configuration.'
);
});

View file

@ -10,7 +10,7 @@ import { cloneDeep, findIndex } from 'lodash';
import { i18n } from '@kbn/i18n';
import { flashAPIErrors, setQueuedSuccessMessage } from '../../../shared/flash_messages';
import { flashAPIErrors, flashSuccessToast } from '../../../shared/flash_messages';
import { HttpLogic } from '../../../shared/http';
import { AppLogic } from '../../app_logic';
import { Connector, ContentSourceDetails, ContentSourceStatus, SourceDataItem } from '../../types';
@ -222,7 +222,7 @@ export const SourcesLogic = kea<MakeLogicType<ISourcesValues, ISourcesActions>>(
}
);
setQueuedSuccessMessage(
flashSuccessToast(
[
successfullyConnectedMessage,
additionalConfiguration ? additionalConfigurationMessage : '',

View file

@ -27,8 +27,7 @@ describe('GroupLogic', () => {
const {
clearFlashMessages,
flashAPIErrors,
setSuccessMessage,
setQueuedSuccessMessage,
flashSuccessToast,
setQueuedErrorMessage,
} = mockFlashMessageHelpers;
@ -224,9 +223,7 @@ describe('GroupLogic', () => {
await nextTick();
expect(navigateToUrl).toHaveBeenCalledWith(GROUPS_PATH);
expect(setQueuedSuccessMessage).toHaveBeenCalledWith(
'Group "group" was successfully deleted.'
);
expect(flashSuccessToast).toHaveBeenCalledWith('Group "group" was successfully deleted.');
});
it('handles error', async () => {
@ -255,7 +252,7 @@ describe('GroupLogic', () => {
await nextTick();
expect(onGroupNameChangedSpy).toHaveBeenCalledWith(group);
expect(setSuccessMessage).toHaveBeenCalledWith(
expect(flashSuccessToast).toHaveBeenCalledWith(
'Successfully renamed this group to "group".'
);
});
@ -286,7 +283,7 @@ describe('GroupLogic', () => {
await nextTick();
expect(onGroupSourcesSavedSpy).toHaveBeenCalledWith(group);
expect(setSuccessMessage).toHaveBeenCalledWith(
expect(flashSuccessToast).toHaveBeenCalledWith(
'Successfully updated shared content sources.'
);
});
@ -323,7 +320,7 @@ describe('GroupLogic', () => {
});
await nextTick();
expect(setSuccessMessage).toHaveBeenCalledWith(
expect(flashSuccessToast).toHaveBeenCalledWith(
'Successfully updated shared source prioritization.'
);
expect(onGroupPrioritiesChangedSpy).toHaveBeenCalledWith(group);

View file

@ -13,8 +13,7 @@ import { i18n } from '@kbn/i18n';
import {
clearFlashMessages,
flashAPIErrors,
setSuccessMessage,
setQueuedSuccessMessage,
flashSuccessToast,
setQueuedErrorMessage,
} from '../../../shared/flash_messages';
import { HttpLogic } from '../../../shared/http';
@ -206,7 +205,7 @@ export const GroupLogic = kea<MakeLogicType<GroupValues, GroupActions>>({
}
);
setQueuedSuccessMessage(GROUP_DELETED_MESSAGE);
flashSuccessToast(GROUP_DELETED_MESSAGE);
KibanaLogic.values.navigateToUrl(GROUPS_PATH);
} catch (e) {
flashAPIErrors(e);
@ -231,7 +230,7 @@ export const GroupLogic = kea<MakeLogicType<GroupValues, GroupActions>>({
values: { groupName: response.name },
}
);
setSuccessMessage(GROUP_RENAMED_MESSAGE);
flashSuccessToast(GROUP_RENAMED_MESSAGE);
} catch (e) {
flashAPIErrors(e);
}
@ -256,7 +255,7 @@ export const GroupLogic = kea<MakeLogicType<GroupValues, GroupActions>>({
defaultMessage: 'Successfully updated shared content sources.',
}
);
setSuccessMessage(GROUP_SOURCES_UPDATED_MESSAGE);
flashSuccessToast(GROUP_SOURCES_UPDATED_MESSAGE);
} catch (e) {
flashAPIErrors(e);
}
@ -289,7 +288,7 @@ export const GroupLogic = kea<MakeLogicType<GroupValues, GroupActions>>({
}
);
setSuccessMessage(GROUP_PRIORITIZATION_UPDATED_MESSAGE);
flashSuccessToast(GROUP_PRIORITIZATION_UPDATED_MESSAGE);
actions.onGroupPrioritiesChanged(response);
} catch (e) {
flashAPIErrors(e);

View file

@ -15,7 +15,7 @@ import { DEFAULT_META } from '../../../shared/constants';
import {
clearFlashMessages,
flashAPIErrors,
setSuccessMessage,
flashSuccessToast,
} from '../../../shared/flash_messages';
import { HttpLogic } from '../../../shared/http';
import { ContentSource, Group, User } from '../../types';
@ -328,7 +328,7 @@ export const GroupsLogic = kea<MakeLogicType<GroupsValues, GroupsActions>>({
}
);
setSuccessMessage(SUCCESS_MESSAGE);
flashSuccessToast(SUCCESS_MESSAGE);
actions.setNewGroup(response);
} catch (e) {
flashAPIErrors(e);

View file

@ -10,7 +10,7 @@ import { kea, MakeLogicType } from 'kea';
import {
clearFlashMessages,
flashAPIErrors,
setSuccessMessage,
flashSuccessToast,
} from '../../../shared/flash_messages';
import { HttpLogic } from '../../../shared/http';
import {
@ -397,7 +397,7 @@ export const RoleMappingsLogic = kea<MakeLogicType<RoleMappingsValues, RoleMappi
try {
await http.delete(route);
actions.initializeRoleMappings();
setSuccessMessage(ROLE_MAPPING_DELETED_MESSAGE);
flashSuccessToast(ROLE_MAPPING_DELETED_MESSAGE);
} catch (e) {
flashAPIErrors(e);
}
@ -435,7 +435,7 @@ export const RoleMappingsLogic = kea<MakeLogicType<RoleMappingsValues, RoleMappi
try {
await request;
actions.initializeRoleMappings();
setSuccessMessage(SUCCESS_MESSAGE);
flashSuccessToast(SUCCESS_MESSAGE);
} catch (e) {
actions.setRoleMappingErrors(e?.body?.attributes?.errors);
}

View file

@ -11,7 +11,7 @@ import { isEqual } from 'lodash';
import {
clearFlashMessages,
setSuccessMessage,
flashSuccessToast,
flashAPIErrors,
} from '../../../shared/flash_messages';
import { HttpLogic } from '../../../shared/http';
@ -153,7 +153,7 @@ export const SecurityLogic = kea<MakeLogicType<SecurityValues, SecurityActions>>
try {
const response = await http.patch(route, { body });
actions.setSourceRestrictionsUpdated(response);
setSuccessMessage(SOURCE_RESTRICTIONS_SUCCESS_MESSAGE);
flashSuccessToast(SOURCE_RESTRICTIONS_SUCCESS_MESSAGE);
AppLogic.actions.setSourceRestriction(isEnabled);
} catch (e) {
flashAPIErrors(e);

View file

@ -22,12 +22,7 @@ import { SettingsLogic } from './settings_logic';
describe('SettingsLogic', () => {
const { http } = mockHttpValues;
const { navigateToUrl } = mockKibanaValues;
const {
clearFlashMessages,
flashAPIErrors,
flashSuccessToast,
setQueuedSuccessMessage,
} = mockFlashMessageHelpers;
const { clearFlashMessages, flashAPIErrors, flashSuccessToast } = mockFlashMessageHelpers;
const { mount } = new LogicMounter(SettingsLogic);
const ORG_NAME = 'myOrg';
const defaultValues = {
@ -309,7 +304,7 @@ describe('SettingsLogic', () => {
await nextTick();
expect(navigateToUrl).toHaveBeenCalledWith('/settings/connectors');
expect(setQueuedSuccessMessage).toHaveBeenCalled();
expect(flashSuccessToast).toHaveBeenCalled();
});
it('handles error', async () => {

View file

@ -11,7 +11,6 @@ import { i18n } from '@kbn/i18n';
import {
clearFlashMessages,
setQueuedSuccessMessage,
flashSuccessToast,
flashAPIErrors,
} from '../../../shared/flash_messages';
@ -290,7 +289,7 @@ export const SettingsLogic = kea<MakeLogicType<SettingsValues, SettingsActions>>
try {
await http.delete(route);
KibanaLogic.values.navigateToUrl(ORG_SETTINGS_CONNECTORS_PATH);
setQueuedSuccessMessage(
flashSuccessToast(
i18n.translate('xpack.enterpriseSearch.workplaceSearch.settings.configRemoved.message', {
defaultMessage: 'Successfully removed configuration for {name}.',
values: { name },