diff --git a/src/renderer/components/dock/log-controls.tsx b/src/renderer/components/dock/log-controls.tsx index 8400aef584..3fc8d9eb14 100644 --- a/src/renderer/components/dock/log-controls.tsx +++ b/src/renderer/components/dock/log-controls.tsx @@ -11,7 +11,7 @@ import { Icon } from "../icon"; import { LogTabData } from "./log-tab.store"; interface Props { - tabData: LogTabData + tabData?: LogTabData logs: string[] save: (data: Partial) => void reload: () => void @@ -19,6 +19,11 @@ interface Props { export const LogControls = observer((props: Props) => { const { tabData, save, reload, logs } = props; + + if (!tabData) { + return null; + } + const { showTimestamps, previous } = tabData; const since = logs.length ? logStore.getTimestamps(logs[0]) : null; const pod = new Pod(tabData.selectedPod); diff --git a/src/renderer/components/dock/logs.tsx b/src/renderer/components/dock/logs.tsx index 0aa31f95fb..07f65c6e63 100644 --- a/src/renderer/components/dock/logs.tsx +++ b/src/renderer/components/dock/logs.tsx @@ -26,23 +26,14 @@ export class Logs extends React.Component { componentDidMount() { disposeOnUnmount(this, - reaction(() => this.props.tab.id, this.reload, { fireImmediately: true }) + reaction(() => this.props.tab.id, this.reload, { fireImmediately: true }), ); } - get tabData() { - return logTabStore.getData(this.tabId); - } - get tabId() { return this.props.tab.id; } - @autobind() - save(data: Partial) { - logTabStore.setData(this.tabId, { ...this.tabData, ...data }); - } - load = async () => { this.isLoading = true; await logStore.load(this.tabId); @@ -82,15 +73,19 @@ export class Logs extends React.Component { }, 100); } - renderResourceSelector() { + renderResourceSelector(data?: LogTabData) { + if (!data) { + return null; + } + const logs = logStore.logs; - const searchLogs = this.tabData.showTimestamps ? logs : logStore.logsWithoutTimestamps; + const searchLogs = data.showTimestamps ? logs : logStore.logsWithoutTimestamps; const controls = (
logTabStore.setData(this.tabId, { ...data, ...newData })} reload={this.reload} /> { render() { const logs = logStore.logs; + const data = logTabStore.getData(this.tabId); + + if (!data) { + this.reload(); + } return (
- {this.renderResourceSelector()} + {this.renderResourceSelector(data)} { /> logTabStore.setData(this.tabId, { ...data, ...newData })} reload={this.reload} />