/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import "./controls.scss"; import React from "react"; import { observer } from "mobx-react"; import { cssNames, saveFileDialog } from "../../../utils"; import { Checkbox } from "../../checkbox"; import { Icon } from "../../icon"; import type { LogTabViewModel } from "./logs-view-model"; export interface LogControlsProps { model: LogTabViewModel; } export const LogControls = observer(({ model }: LogControlsProps) => { const tabData = model.logTabData.get(); if (!tabData) { return null; } const logs = model.timestampSplitLogs.get(); const { showTimestamps, showPrevious: previous } = tabData; const since = logs.length ? logs[0][0] : null; const toggleTimestamps = () => { model.updateLogTabData({ showTimestamps: !showTimestamps }); }; const togglePrevious = () => { model.updateLogTabData({ showPrevious: !previous }); model.reloadLogs(); }; const downloadLogs = () => { const fileName = model.pod.get().getName(); const logsToDownload: string[] = showTimestamps ? model.logs.get() : model.logsWithoutTimestamps.get(); saveFileDialog(`${fileName}.log`, logsToDownload.join("\n"), "text/plain"); }; return (