diff --git a/x-pack/plugins/transform/common/types/storage.ts b/x-pack/plugins/transform/common/types/storage.ts new file mode 100644 index 00000000000000..d5aebdc7bb1610 --- /dev/null +++ b/x-pack/plugins/transform/common/types/storage.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { type FrozenTierPreference } from '@kbn/ml-date-picker'; + +export const TRANSFORM_FROZEN_TIER_PREFERENCE = 'transform.frozenDataTierPreference'; + +export type TransformStorage = Partial<{ + [TRANSFORM_FROZEN_TIER_PREFERENCE]: FrozenTierPreference; +}> | null; + +export type TransformStorageKey = keyof Exclude; + +export type TransformStorageMapped = + T extends typeof TRANSFORM_FROZEN_TIER_PREFERENCE ? FrozenTierPreference | undefined : null; + +export const TRANSFORM_STORAGE_KEYS = [TRANSFORM_FROZEN_TIER_PREFERENCE] as const; diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_form.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_form.tsx index c615e553b89843..e729b45342fb2c 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_form.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/step_define_form.tsx @@ -24,12 +24,24 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { mlTimefilterRefresh$, useTimefilter, DatePickerWrapper } from '@kbn/ml-date-picker'; +import { + mlTimefilterRefresh$, + useTimefilter, + DatePickerWrapper, + FullTimeRangeSelector, + FROZEN_TIER_PREFERENCE, +} from '@kbn/ml-date-picker'; +import { useStorage } from '@kbn/ml-local-storage'; import { useUrlState } from '@kbn/ml-url-state'; import { PivotAggDict } from '../../../../../../common/types/pivot_aggs'; import { PivotGroupByDict } from '../../../../../../common/types/pivot_group_by'; import { TRANSFORM_FUNCTION } from '../../../../../../common/constants'; +import { + TRANSFORM_FROZEN_TIER_PREFERENCE, + type TransformStorageKey, + type TransformStorageMapped, +} from '../../../../../../common/types/storage'; import { getIndexDevConsoleStatement, @@ -89,6 +101,14 @@ export const StepDefineForm: FC = React.memo((props) => { const { ml: { DataGrid }, } = useAppDependencies(); + const [frozenDataPreference, setFrozenDataPreference] = useStorage< + TransformStorageKey, + TransformStorageMapped + >( + TRANSFORM_FROZEN_TIER_PREFERENCE, + // By default we will exclude frozen data tier + FROZEN_TIER_PREFERENCE.EXCLUDE + ); const toastNotifications = useToastNotifications(); const stepDefineForm = useStepDefineForm(props); @@ -311,6 +331,14 @@ export const StepDefineForm: FC = React.memo((props) => { )} +