Summary: Rename visual references from Flipper trace to Flipper export. Reviewed By: passy Differential Revision: D21408566 fbshipit-source-id: 1021fec095f2f2f3e5394e7ea2f7d49fee186050
68 lines
1.9 KiB
TypeScript
68 lines
1.9 KiB
TypeScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
import {WebviewTag} from 'electron';
|
|
|
|
// TODO: Get rid off this function
|
|
function injectJavaScript(webview: WebviewTag, command: string): Promise<any> {
|
|
// @ts-ignore: Typescript doesn't have type src in the currentTarget variable in the event, due to which there is a discrepancy in the event callback.
|
|
return webview.executeJavaScript(command, false);
|
|
}
|
|
|
|
export function sendDidMountMessage(webview: WebviewTag) {
|
|
webview.send('hostMessage', {
|
|
type: 'onMountFlipper',
|
|
payload: null,
|
|
});
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param webview
|
|
* @param text
|
|
* This helper function is for appending flipper export in the questions input text field.
|
|
* It also updates the Flipper export state in the form which makes it pass the validation.
|
|
* One should use it only for the pages backed by NTUsersFormContainer.react.js
|
|
*/
|
|
export function sendFlipperExport(webview: WebviewTag, text: string) {
|
|
webview.send('hostMessage', {
|
|
type: 'flipperExport',
|
|
payload: text,
|
|
});
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param webview
|
|
* @param data
|
|
* This helper function is for updating a react state in NTUsersFormContainer.react.js
|
|
*/
|
|
export function updateStateInSupportForm(
|
|
webview: WebviewTag,
|
|
data: {[key: string]: any},
|
|
) {
|
|
webview.send('hostMessage', {
|
|
type: 'updateState',
|
|
payload: data,
|
|
});
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param webview
|
|
* This helper function returns the supported apps by NTUsersFormContainer.react.js
|
|
*/
|
|
export function supportedApps(webview: WebviewTag): Promise<Array<string>> {
|
|
// TODO: Replace this with a promisified call to the guest page
|
|
return injectJavaScript(
|
|
webview,
|
|
"Array.from(document.querySelector('ul[role=radiogroup]').children).map(e => e.getAttribute('data-value'))",
|
|
);
|
|
}
|