diff --git a/ui/src/app/archived-workflows/components/archived-workflow-list/archived-workflow-list.tsx b/ui/src/app/archived-workflows/components/archived-workflow-list/archived-workflow-list.tsx index 8ebdeed005b6..a718bae00c77 100644 --- a/ui/src/app/archived-workflows/components/archived-workflow-list/archived-workflow-list.tsx +++ b/ui/src/app/archived-workflows/components/archived-workflow-list/archived-workflow-list.tsx @@ -18,7 +18,7 @@ import {services} from '../../../shared/services'; import {Utils} from '../../../shared/utils'; import {ArchivedWorkflowFilters} from '../archived-workflow-filters/archived-workflow-filters'; -interface State { +interface BrowserStorageOptions { pagination: Pagination; namespace: string; name: string; @@ -27,11 +27,14 @@ interface State { selectedLabels: string[]; minStartedAt?: Date; maxStartedAt?: Date; - workflows?: Workflow[]; error?: Error; deep: boolean; } +interface State extends BrowserStorageOptions { + workflows?: Workflow[]; +} + const defaultPaginationLimit = 10; export class ArchivedWorkflowList extends BasePage, State> { @@ -181,8 +184,23 @@ export class ArchivedWorkflowList extends BasePage, Sta return params; } + private fetchBrowserStorageStateObject(state: State): BrowserStorageOptions { + const browserStorageOptions: BrowserStorageOptions = {} as BrowserStorageOptions; + browserStorageOptions.deep = state.deep; + browserStorageOptions.error = state.error; + browserStorageOptions.maxStartedAt = state.maxStartedAt; + browserStorageOptions.minStartedAt = state.minStartedAt; + browserStorageOptions.name = state.name; + browserStorageOptions.namePrefix = state.namePrefix; + browserStorageOptions.namespace = state.namespace; + browserStorageOptions.pagination = state.pagination; + browserStorageOptions.selectedLabels = state.selectedLabels; + browserStorageOptions.selectedPhases = state.selectedPhases; + return browserStorageOptions; + } + private saveHistory() { - this.storage.setItem('options', this.state, {} as State); + this.storage.setItem('options', this.fetchBrowserStorageStateObject(this.state), {} as BrowserStorageOptions); const newNamespace = Utils.managedNamespace ? '' : this.state.namespace; this.url = uiUrl('archived-workflows' + (newNamespace ? '/' + newNamespace : '') + '?' + this.filterParams.toString()); Utils.currentNamespace = this.state.namespace;