Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 6x 6x 6x 1x 1x 1x 1x 1x 1x | /* * Copyright 2021 Harness Inc. All rights reserved. * Use of this source code is governed by the PolyForm Shield 1.0.0 license * that can be found in the licenses directory at the root of this repository, also available at * https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt. */ import React from 'react' import { Layout, SelectOption } from '@wings-software/uicore' import { Toothpick, TimeSelect } from '@common/components' import { useStrings } from 'framework/strings' import ExpressionBreakdown, { ActiveInputs } from './ExpressionBreakdown' import Expression from './Expression' import Spacer from './Spacer' import { monthOptions, nthDayOptions, getUpdatedExpression, getMilitaryHours, getDayOptionsToMonth, defaultYearlyValues } from './ScheduleUtils' import css from './YearlyTab.module.scss' interface YearlyTabInterface { formikProps: any } export default function YearlyTab(props: YearlyTabInterface): JSX.Element { const { formikProps: { values: { dayOfMonth, month, minutes, hours, amPm, expression }, values }, formikProps } = props const { getString } = useStrings() return ( <div className={css.yearlyTab}> <Layout.Vertical> <Toothpick label={getString('triggers.schedulePanel.runOnSpecificDayMonth')} startValue={month} handleStartValueChange={option => { const dayOfMonthResetExpression = getUpdatedExpression({ expression, value: defaultYearlyValues.dayOfMonth, id: 'dayOfMonth' }) formikProps.setValues({ ...values, month: option.value, dayOfMonth: defaultYearlyValues.dayOfMonth, expression: getUpdatedExpression({ expression: dayOfMonthResetExpression, value: option.value as string, id: 'month' }) }) }} endValue={dayOfMonth} handleEndValueChange={option => formikProps.setValues({ ...values, dayOfMonth: option.value, expression: getUpdatedExpression({ expression, value: option.value as string, id: 'dayOfMonth' }) }) } startOptions={monthOptions} endOptions={getDayOptionsToMonth({ monthNo: month, options: nthDayOptions })} adjoiningText={getString('triggers.schedulePanel.onThe')} /> <TimeSelect label={getString('triggers.schedulePanel.runAt')} hoursValue={hours} minutesValue={minutes} amPmValue={amPm} handleHoursSelect={(option: SelectOption) => formikProps.setValues({ ...values, hours: option.value, expression: getUpdatedExpression({ expression, value: getMilitaryHours({ hours: option.value as string, amPm }), id: 'hours' }) }) } handleMinutesSelect={(option: SelectOption) => formikProps.setValues({ ...values, minutes: option.value, expression: getUpdatedExpression({ expression, value: option.value as string, id: 'minutes' }) }) } handleAmPmSelect={(option: SelectOption) => { const newHours = getMilitaryHours({ hours: values.hours, amPm: option.value as string }) formikProps.setValues({ ...values, amPm: option.value, expression: getUpdatedExpression({ expression, value: newHours, id: 'hours' }) }) }} hideSeconds={true} /> <Spacer paddingTop="var(--spacing-large)" /> <ExpressionBreakdown formikValues={values} activeInputs={[ActiveInputs.MINUTES, ActiveInputs.HOURS, ActiveInputs.DAY_OF_MONTH, ActiveInputs.MONTH]} /> <Spacer /> <Expression formikProps={formikProps} /> </Layout.Vertical> </div> ) } |