diff --git a/packages/core/src/renderer/components/dock/logs/list.scss b/packages/core/src/renderer/components/dock/logs/list.scss index 58b49f4ab7..50c97c1047 100644 --- a/packages/core/src/renderer/components/dock/logs/list.scss +++ b/packages/core/src/renderer/components/dock/logs/list.scss @@ -7,10 +7,6 @@ --overlay-bg: #8cc474b8; --overlay-active-bg: orange; - // fix for `this.logsElement.scrollTop = this.logsElement.scrollHeight` - // `overflow: overlay` don't allow scroll to the last line - overflow: auto; - position: relative; color: var(--logsForeground); background: var(--logsBackground); @@ -21,6 +17,7 @@ .list { overflow-x: scroll!important; + overflow-y: auto!important; .LogRow { padding: 2px 16px; diff --git a/packages/core/src/renderer/components/dock/logs/logs-view-model.injectable.ts b/packages/core/src/renderer/components/dock/logs/logs-view-model.injectable.ts index 77e4ca983c..4f02ea7eb6 100644 --- a/packages/core/src/renderer/components/dock/logs/logs-view-model.injectable.ts +++ b/packages/core/src/renderer/components/dock/logs/logs-view-model.injectable.ts @@ -28,7 +28,7 @@ export interface InstantiateArgs { const logsViewModelInjectable = getInjectable({ id: "logs-view-model", - instantiate: (di, { tabId }: InstantiateArgs) => new LogTabViewModel(tabId, { + instantiate: (di, tabId) => new LogTabViewModel(tabId, { getLogs: di.inject(getLogsInjectable), getLogsWithoutTimestamps: di.inject(getLogsWithoutTimestampsInjectable), getTimestampSplitLogs: di.inject(getTimestampSplitLogsInjectable), @@ -45,7 +45,10 @@ const logsViewModelInjectable = getInjectable({ downloadAllLogs: di.inject(downloadAllLogsInjectable), searchStore: di.inject(searchStoreInjectable), }), - lifecycle: lifecycleEnum.transient, + + lifecycle: lifecycleEnum.keyedSingleton({ + getInstanceKey: (di, tabId: TabId) => `log-tab-view-model-${tabId}}`, + }), }); export default logsViewModelInjectable; diff --git a/packages/core/src/renderer/components/dock/logs/view.tsx b/packages/core/src/renderer/components/dock/logs/view.tsx index 157ccfa778..228c3dd922 100644 --- a/packages/core/src/renderer/components/dock/logs/view.tsx +++ b/packages/core/src/renderer/components/dock/logs/view.tsx @@ -101,9 +101,7 @@ const NonInjectedLogsDockTab = observer(({ export const LogsDockTab = withInjectables(NonInjectedLogsDockTab, { getProps: (di, props) => ({ ...props, - model: di.inject(logsViewModelInjectable, { - tabId: props.tab.id, - }), + model: di.inject(logsViewModelInjectable, props.tab.id), subscribeStores: di.inject(subscribeStoresInjectable), podStore: di.inject(podStoreInjectable), }),