Minor improvements

Summary:
Some styling fixes and minor improvements in DataTable, used by network plugin:

- be able to customise the context menu
- be able to customise how entire rows are copied and presented on the clipboard to be able to deviate from the standard JSON
- deeplink handling was made async, this gives the plugin the opportunity to first handle initial setup and rendering before trying to jump somewhere which is a typical use case for deeplinking

Reviewed By: passy

Differential Revision: D27947186

fbshipit-source-id: a56f081d60520c4bc2ad3c547a8ca5b9357e71a1
This commit is contained in:
Michel Weststrate
2021-04-23 09:28:45 -07:00
committed by Facebook GitHub Bot
parent ae88f5d200
commit faf8588097
11 changed files with 92 additions and 24 deletions

View File

@@ -95,7 +95,7 @@ interface BasePluginResult {
/**
* Emulate triggering a deeplink
*/
triggerDeepLink(deeplink: unknown): void;
triggerDeepLink(deeplink: unknown): Promise<void>;
/**
* Grab all the persistable state, but will ignore any onExport handler
@@ -386,8 +386,13 @@ function createBasePluginResult(
exportStateAsync: () =>
pluginInstance.exportState(createStubIdler(), () => {}),
exportState: () => pluginInstance.exportStateSync(),
triggerDeepLink: (deepLink: unknown) => {
triggerDeepLink: async (deepLink: unknown) => {
pluginInstance.triggerDeepLink(deepLink);
return new Promise((resolve) => {
// this ensures the test won't continue until the setImmediate used by
// the deeplink handling event is handled
setImmediate(resolve);
});
},
destroy: () => pluginInstance.destroy(),
triggerMenuEntry: (action: string) => {