Export Flipper state as a part of the universal export
Summary: Design doc: https://docs.google.com/document/d/1HLCFl46RfqG0o1mSt8SWrwf_HMfOCRg_oENioc1rkvQ/edit# Create Flipper export as a part on the universal export Reviewed By: passy Differential Revision: D40468242 fbshipit-source-id: b1b8e4df3b630c6163bb383482123c12dfc6e118
This commit is contained in:
committed by
Facebook GitHub Bot
parent
0e5af8095f
commit
ef0d9fb77e
@@ -59,6 +59,7 @@ import constants from '../fb-stubs/constants';
|
|||||||
import {
|
import {
|
||||||
canFileExport,
|
canFileExport,
|
||||||
canOpenDialog,
|
canOpenDialog,
|
||||||
|
exportEverythingEverywhereAllAtOnce,
|
||||||
showOpenDialog,
|
showOpenDialog,
|
||||||
startFileExport,
|
startFileExport,
|
||||||
startLinkExport,
|
startLinkExport,
|
||||||
@@ -433,10 +434,12 @@ function DebugLogsButton({
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ExportEverythingEverywhereAllAtOnceButton() {
|
function ExportEverythingEverywhereAllAtOnceButton() {
|
||||||
const startLogsExportTracked = useTrackedCallback(
|
const store = useStore();
|
||||||
|
|
||||||
|
const exportEverythingEverywhereAllAtOnceTracked = useTrackedCallback(
|
||||||
'Debug data export',
|
'Debug data export',
|
||||||
startLogsExport,
|
() => exportEverythingEverywhereAllAtOnce(store),
|
||||||
[],
|
[store],
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -444,7 +447,7 @@ function ExportEverythingEverywhereAllAtOnceButton() {
|
|||||||
icon={<BugOutlined />}
|
icon={<BugOutlined />}
|
||||||
title="Export Flipper debug data"
|
title="Export Flipper debug data"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
startLogsExportTracked();
|
exportEverythingEverywhereAllAtOnceTracked();
|
||||||
}}
|
}}
|
||||||
small
|
small
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -612,6 +612,31 @@ export async function startLogsExport() {
|
|||||||
await getRenderHostInstance().exportFile?.(serializedLogs);
|
await getRenderHostInstance().exportFile?.(serializedLogs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function exportEverythingEverywhereAllAtOnce(
|
||||||
|
store: MiddlewareAPI,
|
||||||
|
) {
|
||||||
|
// TODO: Show a progress dialog
|
||||||
|
// TODO: Pack all files in a single archive
|
||||||
|
|
||||||
|
// Step 1: Export Flipper logs
|
||||||
|
await startLogsExport();
|
||||||
|
|
||||||
|
// Step 2: Export device logs
|
||||||
|
// TODO: Implement me
|
||||||
|
|
||||||
|
// Step 3: Export Flipper State
|
||||||
|
// TODO: Export all plugins automatically
|
||||||
|
const plugins = await selectPlugins();
|
||||||
|
if (plugins === false) {
|
||||||
|
return; // cancelled
|
||||||
|
}
|
||||||
|
// TODO: no need to put this in the store,
|
||||||
|
// need to be cleaned up later in combination with SupportForm
|
||||||
|
store.dispatch(selectedPlugins(plugins));
|
||||||
|
const {serializedString} = await exportStore(store);
|
||||||
|
await getRenderHostInstance().exportFile?.(serializedString);
|
||||||
|
}
|
||||||
|
|
||||||
export async function startFileExport(dispatch: Store['dispatch']) {
|
export async function startFileExport(dispatch: Store['dispatch']) {
|
||||||
const file = await getRenderHostInstance().showSaveDialog?.({
|
const file = await getRenderHostInstance().showSaveDialog?.({
|
||||||
title: 'FlipperExport',
|
title: 'FlipperExport',
|
||||||
|
|||||||
Reference in New Issue
Block a user