create.config.ts 1.95 KB
import { useRuleChainI18n } from '../../../hook/useRuleChainI18n';
import { FormSchema } from '/@/components/Form';

const { tLabel, tPlaceholder, t } = useRuleChainI18n('action', 'delayDeprecated');

export enum DelayDeprecatedFieldsEnum {
  USE_METADATA_PERIOD_IN_SECONDS_PATTERNS = 'useMetadataPeriodInSecondsPatterns',
  PERIOD_IN_SECONDS = 'periodInSeconds',
  PERIOD_IN_SECONDS_PATTERN = 'periodInSecondsPattern',
  MAX_PENDING_MSGS = 'maxPendingMsgs',
}

export const formSchemas: FormSchema[] = [
  {
    field: DelayDeprecatedFieldsEnum.USE_METADATA_PERIOD_IN_SECONDS_PATTERNS,
    label: tLabel(DelayDeprecatedFieldsEnum.USE_METADATA_PERIOD_IN_SECONDS_PATTERNS),
    component: 'Checkbox',
    renderComponentContent: () => ({
      default: () =>
        t('rule.chain.action.delayDeprecated.fields.useMetadataPeriodInSecondsPatternsDesc'),
    }),
  },
  {
    field: DelayDeprecatedFieldsEnum.PERIOD_IN_SECONDS_PATTERN,
    component: 'Input',
    label: tLabel(DelayDeprecatedFieldsEnum.PERIOD_IN_SECONDS_PATTERN),
    ifShow: ({ model }) => model[DelayDeprecatedFieldsEnum.USE_METADATA_PERIOD_IN_SECONDS_PATTERNS],
    required: true,
    componentProps: {
      min: 0,
      placeholder: tPlaceholder(DelayDeprecatedFieldsEnum.PERIOD_IN_SECONDS_PATTERN),
    },
  },
  {
    field: DelayDeprecatedFieldsEnum.PERIOD_IN_SECONDS,
    component: 'InputNumber',
    label: tLabel(DelayDeprecatedFieldsEnum.PERIOD_IN_SECONDS),
    ifShow: ({ model }) =>
      !model[DelayDeprecatedFieldsEnum.USE_METADATA_PERIOD_IN_SECONDS_PATTERNS],
    required: true,
    componentProps: {
      min: 0,
      placeholder: tPlaceholder(DelayDeprecatedFieldsEnum.PERIOD_IN_SECONDS),
    },
  },
  {
    field: DelayDeprecatedFieldsEnum.MAX_PENDING_MSGS,
    component: 'InputNumber',
    label: tLabel(DelayDeprecatedFieldsEnum.MAX_PENDING_MSGS),
    required: true,
    componentProps: {
      min: 0,
      placeholder: tPlaceholder(DelayDeprecatedFieldsEnum.MAX_PENDING_MSGS),
    },
  },
];