electron - work with exported files

This commit is contained in:
Jan Prochazka
2020-06-07 18:42:21 +02:00
parent 2f363f6969
commit 22fa92520d
3 changed files with 68 additions and 15 deletions

View File

@@ -5,6 +5,7 @@ import styled from 'styled-components';
import TableControl, { TableColumn } from '../utility/TableControl';
import formatFileSize from '../utility/formatFileSize';
import resolveApi from '../utility/resolveApi';
import getElectron from '../utility/getElectron';
export default function RunnerOutputFiles({ runnerId, executeNumber }) {
const socket = useSocket();
@@ -28,19 +29,59 @@ export default function RunnerOutputFiles({ runnerId, executeNumber }) {
setFiles([]);
}, [executeNumber]);
const electron = getElectron();
return (
<TableControl rows={files}>
<TableColumn fieldName="name" header="Name" />
<TableColumn fieldName="size" header="Size" formatter={(row) => formatFileSize(row.size)} />
<TableColumn
fieldName="download"
header="Download"
formatter={(row) => (
<a href={`${resolveApi()}/runners/data/${runnerId}/${row.name}`} target="_blank" rel="noopener noreferrer">
download
</a>
)}
/>
{!electron && (
<TableColumn
fieldName="download"
header="Download"
formatter={(row) => (
<a href={`${resolveApi()}/runners/data/${runnerId}/${row.name}`} target="_blank" rel="noopener noreferrer">
download
</a>
)}
/>
)}
{electron && (
<TableColumn
fieldName="copy"
header="Copy"
formatter={(row) => (
<a
href="#"
onClick={() => {
const file = electron.remote.dialog.showSaveDialogSync(electron.remote.getCurrentWindow(), {});
if (file) {
const fs = window.require('fs');
fs.copyFile(row.path, file, () => {});
}
}}
>
save
</a>
)}
/>
)}
{electron && (
<TableColumn
fieldName="show"
header="Show"
formatter={(row) => (
<a
href="#"
onClick={() => {
electron.remote.shell.showItemInFolder(row.path);
}}
>
show
</a>
)}
/>
)}
</TableControl>
);
}