Show warning when exporting empty data

Summary: Shows warning when requiredplugin has empty data. It also makes the validation box as an error one, to distinguish between the two boxes.

Reviewed By: passy

Differential Revision: D19704910

fbshipit-source-id: ffd9413c3cd65c09f8b6019889191decefa6b6f6
This commit is contained in:
Pritesh Nandgaonkar
2020-02-05 04:23:09 -08:00
committed by Facebook Github Bot
parent 959457d1e7
commit 8b7b911637

View File

@@ -19,8 +19,12 @@ import {addStatusMessage, removeStatusMessage} from './application';
import constants from '../fb-stubs/constants';
import {getInstance} from '../fb-stubs/Logger';
import {logPlatformSuccessRate} from '../utils/metrics';
import {getActivePersistentPlugins} from '../utils/pluginUtils';
export const SUPPORT_FORM_PREFIX = 'support-form-v2';
import {State as PluginStatesState} from './pluginStates';
import {State as PluginsState} from '../reducers/plugins';
import {State as PluginMessageQueueState} from '../reducers/pluginMessageQueue';
import Client from '../Client';
const {
GRAPHQL_IOS_SUPPORT_GROUP_ID,
@@ -177,6 +181,40 @@ export class Group {
: {kind: 'success'},
);
}
getWarningMessage(
plugins: PluginsState,
pluginsState: PluginStatesState,
pluginsMessageQueue: PluginMessageQueueState,
client: Client,
): string | null {
const activePersistentPlugins = getActivePersistentPlugins(
pluginsState,
pluginsMessageQueue,
plugins,
client,
);
const emptyPlugins: Array<string> = [];
for (const plugin of this.requiredPlugins) {
if (
!activePersistentPlugins.find(o => {
return o.id === plugin;
})
) {
emptyPlugins.push(plugin);
}
}
const commonStr = 'Are you sure you want to submit?';
if (emptyPlugins.length == 1) {
return `There is no data in ${emptyPlugins.pop()} plugin. ${commonStr}`;
} else if (emptyPlugins.length > 1) {
return `The following plugins have no data: ${emptyPlugins.join(
',',
)}. ${commonStr}`;
}
return null;
}
}
export type GroupNames =