diff --git a/src/renderer/components/dock/logs/__test__/__snapshots__/download-logs.test.tsx.snap b/src/renderer/components/dock/logs/__test__/__snapshots__/download-logs.test.tsx.snap
index 2de2efa313..c354f37503 100644
--- a/src/renderer/components/dock/logs/__test__/__snapshots__/download-logs.test.tsx.snap
+++ b/src/renderer/components/dock/logs/__test__/__snapshots__/download-logs.test.tsx.snap
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`download logs when opening pod logs renders 1`] = `
+exports[`download logs options in pod logs dock tab when opening pod logs renders 1`] = `
+
{
+describe("download logs options in pod logs dock tab", () => {
let builder: ApplicationBuilder;
beforeEach(() => {
@@ -111,8 +111,11 @@ describe("download logs", () => {
});
it("renders", () => {
- // expect(rendered.getByText("Storage")).toBeInTheDocument();
expect(rendered.baseElement).toMatchSnapshot();
});
+
+ it("contains download dropdown button", () => {
+ expect(rendered.getByTestId("download-logs-dropdown")).toBeInTheDocument();
+ });
});
});
\ No newline at end of file
diff --git a/src/renderer/components/dock/logs/controls.tsx b/src/renderer/components/dock/logs/controls.tsx
index 1906565532..f2a6e363aa 100644
--- a/src/renderer/components/dock/logs/controls.tsx
+++ b/src/renderer/components/dock/logs/controls.tsx
@@ -15,6 +15,7 @@ import type { LogTabViewModel } from "./logs-view-model";
import { withInjectables } from "@ogre-tools/injectable-react";
import openSaveFileDialogInjectable from "../../../utils/save-file.injectable";
import callForAllLogsInjectable from "./call-for-all-logs.injectable";
+import { DownloadLogsDropdown } from "./download-logs-dropdown";
export interface LogControlsProps {
model: LogTabViewModel;
@@ -53,18 +54,24 @@ const NonInjectedLogControls = observer(({ openSaveFileDialog, model, callForAll
const logs = await callForAllLogs(pod.getName(), pod.getNs());
console.log(logs);
+
+ return !!logs;
}
+
+ return false;
// openSaveFileDialog("logs.txt", logs, "text/plain");
}
- const downloadLogs = () => {
+ const downloadLogs = (): Promise => {
const fileName = pod.getName();
const logsToDownload: string[] = showTimestamps
? model.logs.get()
: model.logsWithoutTimestamps.get();
openSaveFileDialog(`${fileName}.log`, logsToDownload.join("\n"), "text/plain");
+
+ return new Promise(resolve => resolve(true));
};
return (
@@ -91,6 +98,12 @@ const NonInjectedLogControls = observer(({ openSaveFileDialog, model, callForAll
onChange={togglePrevious}
className="show-previous"
/>
+
+
+
Promise
+ downloadAllLogs: () => Promise
+}
+
+export function DownloadLogsDropdown({ downloadAllLogs, downloadVisibleLogs }: DownloadLogsDropdownProps) {
+ const [waiting, setWaiting] = useState(false);
+ const [opened, setOpened] = useState(false);
+
+ const toggle = () => {
+ setOpened(!opened);
+ };
+
+ const downloadLogs = async (download: () => Promise) => {
+ setWaiting(true);
+ await download();
+ setWaiting(false);
+ }
+
+ return (
+ <>
+
+
+ >
+ );
+}