diff --git a/app/src/components/Sidebar/ValueRenderer/ValuePanel.tsx b/app/src/components/Sidebar/ValueRenderer/ValuePanel.tsx
index fc07a51..e20bab7 100644
--- a/app/src/components/Sidebar/ValueRenderer/ValuePanel.tsx
+++ b/app/src/components/Sidebar/ValueRenderer/ValuePanel.tsx
@@ -60,9 +60,9 @@ function ValuePanel(props: Props) {
return node?.message && decodeMessage(node.message)?.message?.toUnicodeString()
}, [node, decodeMessage])
- const getBuffer = () => {
+ const getData = () => {
if (node?.message && node.message.payload) {
- return node.message.payload.toBuffer()
+ return node.message.payload.base64Message
}
}
@@ -100,7 +100,7 @@ function ValuePanel(props: Props) {
const [value] =
node && node.message && node.message.payload ? node.message.payload?.format(node.type) : [null, undefined]
const copyValue = value ? : null
- const saveValue = value ? : null
+ const saveValue = value ? : null
return (
diff --git a/app/src/components/helper/Save.tsx b/app/src/components/helper/Save.tsx
index d085786..25a4cff 100644
--- a/app/src/components/helper/Save.tsx
+++ b/app/src/components/helper/Save.tsx
@@ -2,15 +2,15 @@ import * as React from 'react'
import { connect } from 'react-redux'
import Check from '@material-ui/icons/Check'
import CustomIconButton from './CustomIconButton'
-import { promises as fsPromise } from 'fs'
+
import { SaveAlt } from '@material-ui/icons'
import { bindActionCreators } from 'redux'
-import { rendererRpc } from '../../../../events'
+import { rendererRpc, writeFile } from '../../../../events'
import { makeSaveDialogRpc } from '../../../../events/OpenDialogRequest'
import { globalActions } from '../../actions'
-export async function saveToFile(buffer: Buffer | string): Promise {
+export async function saveToFile(data: string): Promise {
const rejectReasons = {
errorWritingFile: 'Error writing file',
}
@@ -21,7 +21,7 @@ export async function saveToFile(buffer: Buffer | string): Promise Buffer | undefined
+ getData: () => string | undefined
actions: {
global: typeof globalActions
}
@@ -48,9 +48,9 @@ class Save extends React.PureComponent {
private handleClick = async (event: React.MouseEvent) => {
event.stopPropagation()
- const buffer = this.props.getBuffer()
- if (buffer !== undefined) {
- const filename = await saveToFile(buffer)
+ const data = this.props.getData()
+ if (data != undefined) {
+ const filename = await saveToFile(data)
this.props.actions.global.showNotification(`Saved to ${filename}`)
this.setState({ didSave: true })
setTimeout(() => {
diff --git a/events/Events.ts b/events/Events.ts
index 418652b..a951724 100644
--- a/events/Events.ts
+++ b/events/Events.ts
@@ -54,3 +54,7 @@ export function makeConnectionMessageEvent(connectionId: string): Event = {
topic: 'getAppVersion',
}
+
+export const writeFile: RpcEvent<{ filePath: string, data: string }, void> = {
+ topic: 'writeFile',
+}
\ No newline at end of file
diff --git a/src/electron.ts b/src/electron.ts
index 6acd034..5df6ca2 100644
--- a/src/electron.ts
+++ b/src/electron.ts
@@ -4,6 +4,7 @@ import ConfigStorage from '../backend/src/ConfigStorage'
import { app, BrowserWindow, Menu, dialog } from 'electron'
import { autoUpdater } from 'electron-updater'
import { ConnectionManager } from '../backend/src/index'
+import { promises as fsPromise } from 'fs'
// import { electronTelemetryFactory } from 'electron-telemetry'
import { menuTemplate } from './MenuTemplate'
import buildOptions from './buildOptions'
@@ -11,7 +12,7 @@ import { waitForDevServer, isDev, runningUiTestOnCi, loadDevTools } from './deve
import { shouldAutoUpdate, handleAutoUpdate } from './autoUpdater'
import { registerCrashReporter } from './registerCrashReporter'
import { makeOpenDialogRpc, makeSaveDialogRpc } from '../events/OpenDialogRequest'
-import { backendRpc, getAppVersion } from '../events'
+import { backendRpc, getAppVersion, writeFile } from '../events'
registerCrashReporter()
@@ -31,6 +32,10 @@ app.whenReady().then(() => {
})
backendRpc.on(getAppVersion, async () => app.getVersion())
+
+ backendRpc.on(writeFile, async ({ filePath, data }) => {
+ await fsPromise.writeFile(filePath, Buffer.from(data, 'base64'))
+ })
})
autoUpdater.logger = log