@openshift-assisted/ui-lib 2.17.1-cim → 2.17.3-cim

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.d.ts.map +1 -1
  2. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.d.ts +0 -1
  3. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.d.ts.map +1 -1
  4. package/build/@types/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.d.ts.map +1 -1
  5. package/build/@types/cim/components/ClusterDeployment/use-networking-formik.d.ts.map +1 -1
  6. package/build/@types/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsStep.d.ts.map +1 -1
  7. package/build/@types/cim/components/InfraEnv/InfraEnvFormPage.d.ts.map +1 -1
  8. package/build/@types/cim/components/helpers/versions.d.ts +1 -1
  9. package/build/@types/cim/components/helpers/versions.d.ts.map +1 -1
  10. package/build/@types/cim/components/modals/CimConfiguration/CimConfigurationModal.d.ts.map +1 -1
  11. package/build/@types/cim/components/modals/EditProxyModal.d.ts.map +1 -1
  12. package/build/@types/cim/components/modals/EditSSHKeyModal.d.ts.map +1 -1
  13. package/build/@types/common/components/clusterConfiguration/DiscoveryImageConfigForm.d.ts.map +1 -1
  14. package/build/@types/common/components/clusterWizard/clusterDetailsValidation.d.ts.map +1 -1
  15. package/build/@types/common/components/hosts/AdditionalNTPSourcesDialog.d.ts.map +1 -1
  16. package/build/@types/common/components/hosts/EditHostForm.d.ts.map +1 -1
  17. package/build/@types/common/components/hosts/MassChangeHostnameModal.d.ts.map +1 -1
  18. package/build/@types/common/components/ui/formik/index.d.ts +0 -2
  19. package/build/@types/common/components/ui/formik/index.d.ts.map +1 -1
  20. package/build/@types/common/index.d.ts +1 -0
  21. package/build/@types/common/index.d.ts.map +1 -1
  22. package/build/@types/common/utils.d.ts +2 -2
  23. package/build/@types/common/utils.d.ts.map +1 -1
  24. package/build/@types/common/validationSchemas/addressValidation.d.ts +18 -0
  25. package/build/@types/common/validationSchemas/addressValidation.d.ts.map +1 -0
  26. package/build/@types/common/validationSchemas/clusterDetailsValidation.d.ts +8 -0
  27. package/build/@types/common/validationSchemas/clusterDetailsValidation.d.ts.map +1 -0
  28. package/build/@types/common/{components/ui/formik → validationSchemas}/constants.d.ts +1 -3
  29. package/build/@types/common/validationSchemas/constants.d.ts.map +1 -0
  30. package/build/@types/common/validationSchemas/hostnameValidation.d.ts +4 -0
  31. package/build/@types/common/validationSchemas/hostnameValidation.d.ts.map +1 -0
  32. package/build/@types/common/validationSchemas/index.d.ts +11 -0
  33. package/build/@types/common/validationSchemas/index.d.ts.map +1 -0
  34. package/build/@types/common/validationSchemas/networkingValidation.d.ts +18 -0
  35. package/build/@types/common/validationSchemas/networkingValidation.d.ts.map +1 -0
  36. package/build/@types/common/validationSchemas/ntpValidation.d.ts +4 -0
  37. package/build/@types/common/validationSchemas/ntpValidation.d.ts.map +1 -0
  38. package/build/@types/common/validationSchemas/proxyValidation.d.ts +11 -0
  39. package/build/@types/common/validationSchemas/proxyValidation.d.ts.map +1 -0
  40. package/build/@types/common/validationSchemas/pullSecretValidation.d.ts +4 -0
  41. package/build/@types/common/validationSchemas/pullSecretValidation.d.ts.map +1 -0
  42. package/build/@types/common/validationSchemas/regexes.d.ts +14 -0
  43. package/build/@types/common/validationSchemas/regexes.d.ts.map +1 -0
  44. package/build/@types/common/validationSchemas/sshValidation.d.ts +5 -0
  45. package/build/@types/common/validationSchemas/sshValidation.d.ts.map +1 -0
  46. package/build/@types/common/validationSchemas/utils.d.ts +7 -0
  47. package/build/@types/common/validationSchemas/utils.d.ts.map +1 -0
  48. package/build/@types/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.d.ts.map +1 -1
  49. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.d.ts.map +1 -1
  50. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.d.ts +2 -1
  51. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.d.ts.map +1 -1
  52. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.d.ts.map +1 -1
  53. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts +2 -1
  54. package/build/@types/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.d.ts.map +1 -1
  55. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHosts.d.ts.map +1 -1
  56. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.d.ts +2 -1
  57. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.d.ts.map +1 -1
  58. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/YamlView/YamlView.d.ts.map +1 -1
  59. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.d.ts +2 -1
  60. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.d.ts.map +1 -1
  61. package/build/@types/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.d.ts.map +1 -1
  62. package/build/@types/ocm/components/hosts/UpdateDay2ApiVipForm.d.ts.map +1 -1
  63. package/build/cjs/cim/components/Agent/BMCForm.js +3 -3
  64. package/build/cjs/cim/components/Agent/BMCForm.js.map +1 -1
  65. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.js +9 -15
  66. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.js.map +1 -1
  67. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js +8 -6
  68. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js.map +1 -1
  69. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.js +1 -3
  70. package/build/cjs/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.js.map +1 -1
  71. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js +16 -15
  72. package/build/cjs/cim/components/ClusterDeployment/use-networking-formik.js.map +1 -1
  73. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.js +2 -2
  74. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.js.map +1 -1
  75. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsStep.js +2 -11
  76. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsStep.js.map +1 -1
  77. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.js +8 -8
  78. package/build/cjs/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.js.map +1 -1
  79. package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js +8 -6
  80. package/build/cjs/cim/components/InfraEnv/InfraEnvFormPage.js.map +1 -1
  81. package/build/cjs/cim/components/helpers/versions.js +42 -27
  82. package/build/cjs/cim/components/helpers/versions.js.map +1 -1
  83. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js +9 -3
  84. package/build/cjs/cim/components/modals/CimConfiguration/CimConfigurationModal.js.map +1 -1
  85. package/build/cjs/cim/components/modals/EditProxyModal.js +5 -3
  86. package/build/cjs/cim/components/modals/EditProxyModal.js.map +1 -1
  87. package/build/cjs/cim/components/modals/EditPullSecretModal.js +1 -1
  88. package/build/cjs/cim/components/modals/EditPullSecretModal.js.map +1 -1
  89. package/build/cjs/cim/components/modals/EditSSHKeyModal.js +3 -3
  90. package/build/cjs/cim/components/modals/EditSSHKeyModal.js.map +1 -1
  91. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js +7 -6
  92. package/build/cjs/common/components/clusterConfiguration/DiscoveryImageConfigForm.js.map +1 -1
  93. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js +8 -8
  94. package/build/cjs/common/components/clusterWizard/clusterDetailsValidation.js.map +1 -1
  95. package/build/cjs/common/components/hosts/AdditionalNTPSourcesDialog.js +2 -1
  96. package/build/cjs/common/components/hosts/AdditionalNTPSourcesDialog.js.map +1 -1
  97. package/build/cjs/common/components/hosts/EditHostForm.js +3 -2
  98. package/build/cjs/common/components/hosts/EditHostForm.js.map +1 -1
  99. package/build/cjs/common/components/hosts/MassChangeHostnameModal.js +6 -5
  100. package/build/cjs/common/components/hosts/MassChangeHostnameModal.js.map +1 -1
  101. package/build/cjs/common/components/ui/formik/index.js +0 -2
  102. package/build/cjs/common/components/ui/formik/index.js.map +1 -1
  103. package/build/cjs/common/config/docs_links.js +1 -1
  104. package/build/cjs/common/index.js +1 -0
  105. package/build/cjs/common/index.js.map +1 -1
  106. package/build/cjs/common/utils.js +5 -3
  107. package/build/cjs/common/utils.js.map +1 -1
  108. package/build/cjs/common/validationSchemas/addressValidation.js +246 -0
  109. package/build/cjs/common/validationSchemas/addressValidation.js.map +1 -0
  110. package/build/cjs/common/validationSchemas/clusterDetailsValidation.js +104 -0
  111. package/build/cjs/common/validationSchemas/clusterDetailsValidation.js.map +1 -0
  112. package/build/cjs/common/{components/ui/formik → validationSchemas}/constants.js +3 -5
  113. package/build/cjs/common/validationSchemas/constants.js.map +1 -0
  114. package/build/cjs/common/validationSchemas/hostnameValidation.js +36 -0
  115. package/build/cjs/common/validationSchemas/hostnameValidation.js.map +1 -0
  116. package/build/cjs/common/validationSchemas/index.js +17 -0
  117. package/build/cjs/common/validationSchemas/index.js.map +1 -0
  118. package/build/cjs/common/validationSchemas/networkingValidation.js +74 -0
  119. package/build/cjs/common/validationSchemas/networkingValidation.js.map +1 -0
  120. package/build/cjs/common/validationSchemas/ntpValidation.js +25 -0
  121. package/build/cjs/common/validationSchemas/ntpValidation.js.map +1 -0
  122. package/build/cjs/common/validationSchemas/proxyValidation.js +43 -0
  123. package/build/cjs/common/validationSchemas/proxyValidation.js.map +1 -0
  124. package/build/cjs/common/validationSchemas/pullSecretValidation.js +21 -0
  125. package/build/cjs/common/validationSchemas/pullSecretValidation.js.map +1 -0
  126. package/build/cjs/common/validationSchemas/regexes.js +17 -0
  127. package/build/cjs/common/validationSchemas/regexes.js.map +1 -0
  128. package/build/cjs/common/validationSchemas/sshValidation.js +32 -0
  129. package/build/cjs/common/validationSchemas/sshValidation.js.map +1 -0
  130. package/build/cjs/common/validationSchemas/utils.js +40 -0
  131. package/build/cjs/common/validationSchemas/utils.js.map +1 -0
  132. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js +7 -6
  133. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js.map +1 -1
  134. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js +4 -2
  135. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.js.map +1 -1
  136. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.js +7 -6
  137. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.js.map +1 -1
  138. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js +2 -1
  139. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.js.map +1 -1
  140. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js +11 -11
  141. package/build/cjs/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.js.map +1 -1
  142. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHosts.js +3 -1
  143. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHosts.js.map +1 -1
  144. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.js +6 -6
  145. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.js.map +1 -1
  146. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/YamlView/YamlView.js +3 -1
  147. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/YamlView/YamlView.js.map +1 -1
  148. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.js +12 -12
  149. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.js.map +1 -1
  150. package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js +4 -3
  151. package/build/cjs/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.js.map +1 -1
  152. package/build/cjs/ocm/components/hosts/UpdateDay2ApiVipForm.js +2 -1
  153. package/build/cjs/ocm/components/hosts/UpdateDay2ApiVipForm.js.map +1 -1
  154. package/lib/cim/components/Agent/BMCForm.tsx +3 -3
  155. package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsForm.tsx +8 -18
  156. package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.tsx +7 -10
  157. package/lib/cim/components/ClusterDeployment/hostSelection/ClusterDeploymentHostSelectionStep.tsx +1 -3
  158. package/lib/cim/components/ClusterDeployment/use-networking-formik.ts +19 -15
  159. package/lib/cim/components/Hypershift/HostedClusterWizard/DetailsStep/DetailsStep.tsx +2 -2
  160. package/lib/cim/components/Hypershift/HostedClusterWizard/HostsStep/HostsStep.tsx +2 -13
  161. package/lib/cim/components/Hypershift/HostedClusterWizard/NetworkStep/NetworkStep.tsx +8 -8
  162. package/lib/cim/components/InfraEnv/InfraEnvFormPage.tsx +8 -6
  163. package/lib/cim/components/helpers/versions.ts +51 -34
  164. package/lib/cim/components/modals/CimConfiguration/CimConfigurationModal.tsx +9 -3
  165. package/lib/cim/components/modals/EditProxyModal.tsx +6 -3
  166. package/lib/cim/components/modals/EditPullSecretModal.tsx +1 -1
  167. package/lib/cim/components/modals/EditSSHKeyModal.tsx +8 -6
  168. package/lib/common/components/clusterConfiguration/DiscoveryImageConfigForm.tsx +9 -8
  169. package/lib/common/components/clusterWizard/clusterDetailsValidation.ts +21 -11
  170. package/lib/common/components/hosts/AdditionalNTPSourcesDialog.tsx +3 -6
  171. package/lib/common/components/hosts/EditHostForm.tsx +2 -8
  172. package/lib/common/components/hosts/MassChangeHostnameModal.tsx +4 -6
  173. package/lib/common/components/ui/formik/index.tsx +0 -2
  174. package/lib/common/config/docs_links.ts +1 -1
  175. package/lib/common/index.ts +2 -0
  176. package/lib/common/utils.ts +5 -7
  177. package/lib/common/{components/ui/formik → validationSchemas}/_validationSchemas.test.ts +51 -39
  178. package/lib/common/validationSchemas/addressValidation.tsx +349 -0
  179. package/lib/common/validationSchemas/clusterDetailsValidation.tsx +168 -0
  180. package/lib/common/{components/ui/formik → validationSchemas}/constants.tsx +3 -6
  181. package/lib/common/validationSchemas/hostnameValidation.tsx +46 -0
  182. package/lib/common/validationSchemas/index.tsx +11 -0
  183. package/lib/common/validationSchemas/networkingValidation.tsx +113 -0
  184. package/lib/common/validationSchemas/ntpValidation.tsx +30 -0
  185. package/lib/common/validationSchemas/proxyValidation.tsx +67 -0
  186. package/lib/common/validationSchemas/pullSecretValidation.tsx +24 -0
  187. package/lib/common/validationSchemas/regexes.tsx +22 -0
  188. package/lib/common/validationSchemas/sshValidation.tsx +46 -0
  189. package/lib/common/validationSchemas/utils.tsx +36 -0
  190. package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +17 -15
  191. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifests.tsx +4 -2
  192. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/customManifestsValidationSchema.tsx +31 -31
  193. package/lib/ocm/components/clusterConfiguration/networkConfiguration/NetworkConfigurationForm.tsx +9 -2
  194. package/lib/ocm/components/clusterConfiguration/networkConfiguration/networkConfigurationValidation.ts +14 -16
  195. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/FormViewHosts.tsx +3 -1
  196. package/lib/ocm/components/clusterConfiguration/staticIp/components/FormViewHosts/formViewHostsValidationSchema.tsx +11 -6
  197. package/lib/ocm/components/clusterConfiguration/staticIp/components/YamlView/YamlView.tsx +5 -1
  198. package/lib/ocm/components/clusterConfiguration/staticIp/components/YamlView/yamlViewValidationSchema.tsx +33 -28
  199. package/lib/ocm/components/clusterWizard/disconnected/OptionalConfigurationsStep.tsx +5 -3
  200. package/lib/ocm/components/hosts/UpdateDay2ApiVipForm.tsx +3 -7
  201. package/package.json +3 -3
  202. package/build/@types/common/components/ui/formik/constants.d.ts.map +0 -1
  203. package/build/@types/common/components/ui/formik/validationSchemas.d.ts +0 -50
  204. package/build/@types/common/components/ui/formik/validationSchemas.d.ts.map +0 -1
  205. package/build/cjs/common/components/ui/formik/constants.js.map +0 -1
  206. package/build/cjs/common/components/ui/formik/validationSchemas.js +0 -553
  207. package/build/cjs/common/components/ui/formik/validationSchemas.js.map +0 -1
  208. package/lib/common/components/ui/formik/validationSchemas.ts +0 -803
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import * as Yup from 'yup';
3
+ import { TFunction } from 'i18next';
3
4
  import {
4
5
  Alert,
5
6
  Button,
@@ -20,11 +21,12 @@ import { EditSSHKeyFormikValues } from './types';
20
21
  import { getWarningMessage } from './utils';
21
22
  import { useTranslation } from '../../../common/hooks/use-translation-wrapper';
22
23
 
23
- const validationSchema = Yup.object({
24
- sshPublicKey: sshPublicKeyValidationSchema.required(
25
- 'An SSH key is required to debug hosts as they register.',
26
- ),
27
- });
24
+ const validationSchema = (t: TFunction) =>
25
+ Yup.object({
26
+ sshPublicKey: sshPublicKeyValidationSchema(t).required(
27
+ t('ai:An SSH key is required to debug hosts as they register.'),
28
+ ),
29
+ });
28
30
 
29
31
  export type EditSSHKeyModalProps = {
30
32
  isOpen: boolean;
@@ -61,7 +63,7 @@ const EditSSHKeyModal: React.FC<EditSSHKeyModalProps> = ({
61
63
  initialValues={{
62
64
  sshPublicKey: infraEnv.spec?.sshAuthorizedKey || '',
63
65
  }}
64
- validationSchema={validationSchema}
66
+ validationSchema={validationSchema(t)}
65
67
  onSubmit={async (values) => {
66
68
  try {
67
69
  await onSubmit(values, infraEnv);
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import * as Yup from 'yup';
3
+ import { TFunction } from 'i18next';
3
4
  import {
4
5
  Button,
5
6
  Form,
@@ -17,12 +18,12 @@ import {
17
18
  ImageType,
18
19
  Proxy,
19
20
  } from '@openshift-assisted/types/assisted-installer-service';
21
+ import { AlertFormikError } from '../../../common/components/ui';
20
22
  import {
21
- AlertFormikError,
22
23
  httpProxyValidationSchema,
23
24
  noProxyValidationSchema,
24
25
  sshPublicKeyValidationSchema,
25
- } from '../../../common/components/ui';
26
+ } from '../../validationSchemas';
26
27
  import { ProxyFieldsType, StatusErrorType } from '../../types';
27
28
  import ProxyFields from './ProxyFields';
28
29
  import UploadSSH from './UploadSSH';
@@ -55,13 +56,13 @@ export const StaticIPInfo = ({ docVersion }: { docVersion?: string }) => {
55
56
 
56
57
  export type DiscoveryImageFormValues = ImageCreateParams & ProxyFieldsType;
57
58
 
58
- const getValidationSchema = (allowEmpty: boolean) =>
59
+ const getValidationSchema = (allowEmpty: boolean, t: TFunction) =>
59
60
  Yup.lazy((values: DiscoveryImageFormValues) =>
60
61
  Yup.object<DiscoveryImageFormValues>().shape({
61
- sshPublicKey: sshPublicKeyValidationSchema,
62
- httpProxy: httpProxyValidationSchema({ values, pairValueName: 'httpsProxy', allowEmpty }),
63
- httpsProxy: httpProxyValidationSchema({ values, pairValueName: 'httpProxy', allowEmpty }), // share the schema, httpS is currently not supported
64
- noProxy: noProxyValidationSchema,
62
+ sshPublicKey: sshPublicKeyValidationSchema(t),
63
+ httpProxy: httpProxyValidationSchema({ values, pairValueName: 'httpsProxy', allowEmpty, t }),
64
+ httpsProxy: httpProxyValidationSchema({ values, pairValueName: 'httpProxy', allowEmpty, t }), // share the schema, httpS is currently not supported
65
+ noProxy: noProxyValidationSchema(t),
65
66
  }),
66
67
  );
67
68
 
@@ -108,7 +109,7 @@ export const DiscoveryImageConfigForm: React.FC<DiscoveryImageConfigFormProps> =
108
109
  <Formik
109
110
  initialValues={initialValues}
110
111
  initialStatus={{ error: null }}
111
- validationSchema={getValidationSchema(!!allowEmpty)}
112
+ validationSchema={getValidationSchema(!!allowEmpty, t)}
112
113
  onSubmit={handleSubmit}
113
114
  >
114
115
  {({ submitForm, isSubmitting, status }) => {
@@ -7,13 +7,13 @@ import {
7
7
  } from '@openshift-assisted/types/assisted-installer-service';
8
8
  import { getDefaultCpuArchitecture, OpenshiftVersionOptionType } from '../../types';
9
9
  import { TangServer } from '../clusterConfiguration/DiskEncryptionFields/DiskEncryptionValues';
10
+ import { getDefaultOpenShiftVersion } from '../ui';
10
11
  import {
11
12
  baseDomainValidationSchema,
12
13
  dnsNameValidationSchema,
13
- getDefaultOpenShiftVersion,
14
14
  nameValidationSchema,
15
15
  pullSecretValidationSchema,
16
- } from '../ui';
16
+ } from '../../validationSchemas';
17
17
  import { ClusterDetailsValues } from './types';
18
18
 
19
19
  const emptyTangServers = (): TangServer[] => {
@@ -98,22 +98,32 @@ export const getClusterDetailsValidationSchema = ({
98
98
  t: TFunction;
99
99
  }) =>
100
100
  Yup.lazy((values: { baseDnsDomain: string; isSNODevPreview: boolean }) => {
101
- const validateName = () =>
102
- nameValidationSchema(t, usedClusterNames, values.baseDnsDomain, validateUniqueName, isOcm);
103
101
  if (pullSecretSet) {
104
102
  return Yup.object({
105
- name: validateName(),
103
+ name: nameValidationSchema(
104
+ t,
105
+ usedClusterNames,
106
+ values.baseDnsDomain,
107
+ validateUniqueName,
108
+ isOcm,
109
+ ),
106
110
  baseDnsDomain: isOcm
107
- ? baseDomainValidationSchema.required(t('ai:Required field'))
108
- : dnsNameValidationSchema.required(t('ai:Required field')),
111
+ ? baseDomainValidationSchema(t).required(t('ai:Required field'))
112
+ : dnsNameValidationSchema(t).required(t('ai:Required field')),
109
113
  });
110
114
  }
111
115
  return Yup.object({
112
- name: validateName(),
116
+ name: nameValidationSchema(
117
+ t,
118
+ usedClusterNames,
119
+ values.baseDnsDomain,
120
+ validateUniqueName,
121
+ isOcm,
122
+ ),
113
123
  baseDnsDomain: isOcm
114
- ? baseDomainValidationSchema.required(t('ai:Required field'))
115
- : dnsNameValidationSchema.required(t('ai:Required field')),
116
- pullSecret: pullSecretValidationSchema.required(t('ai:Required field')),
124
+ ? baseDomainValidationSchema(t).required(t('ai:Required field'))
125
+ : dnsNameValidationSchema(t).required(t('ai:Required field')),
126
+ pullSecret: pullSecretValidationSchema(t).required(t('ai:Required field')),
117
127
  diskEncryptionTangServers: Yup.array().when('diskEncryptionMode', {
118
128
  is: (diskEncryptionMode: DiskEncryption['mode']) => {
119
129
  return diskEncryptionMode === 'tang';
@@ -11,11 +11,8 @@ import {
11
11
  ModalVariant,
12
12
  ModalHeader,
13
13
  } from '@patternfly/react-core';
14
- import {
15
- ntpSourceValidationSchema,
16
- AdditionalNTPSourcesField,
17
- StatusErrorType,
18
- } from '../../../common';
14
+ import { AdditionalNTPSourcesField, StatusErrorType } from '../../../common';
15
+ import { ntpSourceValidationSchema } from '../../validationSchemas/ntpValidation';
19
16
  import { AlertFormikError } from '../../../common/components/ui';
20
17
  import { useTranslation } from '../../hooks/use-translation-wrapper';
21
18
  import {
@@ -43,7 +40,7 @@ const AdditionalNTPSourcesForm = ({
43
40
 
44
41
  const getValidationSchema = (t: TFunction) =>
45
42
  Yup.object().shape({
46
- additionalNtpSource: ntpSourceValidationSchema.required(t('ai:Required field')),
43
+ additionalNtpSource: ntpSourceValidationSchema(t).required(t('ai:Required field')),
47
44
  });
48
45
 
49
46
  const { t } = useTranslation();
@@ -14,14 +14,8 @@ import {
14
14
  import { Formik } from 'formik';
15
15
  import { TFunction } from 'i18next';
16
16
  import { Host, Inventory } from '@openshift-assisted/types/assisted-installer-service';
17
- import {
18
- richHostnameValidationSchema,
19
- RichInputField,
20
- StaticTextField,
21
- hostnameValidationMessages,
22
- getRichTextValidation,
23
- AlertFormikError,
24
- } from '../ui';
17
+ import { RichInputField, StaticTextField, getRichTextValidation, AlertFormikError } from '../ui';
18
+ import { richHostnameValidationSchema, hostnameValidationMessages } from '../../validationSchemas';
25
19
  import { canHostnameBeChanged } from './utils';
26
20
  import GridGap from '../ui/GridGap';
27
21
  import { EditHostFormValues } from './types';
@@ -23,14 +23,12 @@ import { t_global_icon_color_status_info_default as blueInfoColor } from '@patte
23
23
  import { InfoCircleIcon } from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
24
24
  import { TFunction } from 'i18next';
25
25
 
26
+ import { RichInputField, getRichTextValidation, ModalProgress } from '../ui';
26
27
  import {
27
- RichInputField,
28
- getRichTextValidation,
29
- richHostnameValidationSchema,
30
- hostnameValidationMessages,
31
- ModalProgress,
32
28
  FORBIDDEN_HOSTNAMES,
33
- } from '../ui';
29
+ hostnameValidationMessages,
30
+ richHostnameValidationSchema,
31
+ } from '../../validationSchemas';
34
32
  import { Host } from '@openshift-assisted/types/assisted-installer-service';
35
33
  import { getHostname as getHostnameUtils, getInventory } from './utils';
36
34
  import { ActionCheck } from './types';
@@ -21,6 +21,4 @@ export { default as SelectFieldWithSearch } from './SelectFieldWithSearch';
21
21
 
22
22
  export * from './utils';
23
23
  export * from './PullSecretField';
24
- export * from './validationSchemas';
25
24
  export * from './LabelField';
26
- export * from './constants';
@@ -1,6 +1,6 @@
1
1
  import { isMajorMinorVersionEqualOrGreater } from '../utils';
2
2
 
3
- const LATEST_OPENSHIFT_DOCS_VERSION = '4.19';
3
+ const LATEST_OPENSHIFT_DOCS_VERSION = '4.21';
4
4
  const MIN_OPENSHIFT_DOCS_VERSION = '4.14';
5
5
 
6
6
  const getDocsOpenshiftVersion = (ocpVersion?: string): string => {
@@ -7,4 +7,6 @@ export * from './reducers';
7
7
  export * from './selectors';
8
8
  export * from './hooks';
9
9
  export * from './utils';
10
+ export * from './validationSchemas';
11
+
10
12
  export { ResourceUIState } from './types/resource-ui-state';
@@ -2,13 +2,12 @@ import filesize from 'filesize.js';
2
2
  import camelCase from 'lodash-es/camelCase.js';
3
3
  import isString from 'lodash-es/isString.js';
4
4
  import { loadAll } from 'js-yaml';
5
+ import { TFunction } from 'i18next';
5
6
  import { MAX_FILE_SIZE_BYTES, MAX_FILE_SIZE_OFFSET_FACTOR } from './configurations';
6
7
 
7
8
  export const FILENAME_REGEX = /^[^\/]*\.(json|ya?ml(\.patch_?[a-zA-Z0-9_]*)?)$/;
8
9
 
9
10
  export const FILE_TYPE_MESSAGE = 'Unsupported file type. Please provide a valid YAML file.';
10
- export const INCORRECT_TYPE_FILE_MESSAGE =
11
- 'File type is not supported. File type must be yaml, yml ,json , yaml.patch. or yml.patch.';
12
11
 
13
12
  export const getErrorMessage = (error: unknown): string => {
14
13
  if (error instanceof Error) {
@@ -60,11 +59,10 @@ export const fileSize: typeof filesize = (...args) =>
60
59
  .toUpperCase()
61
60
  .replace(/I/, 'i');
62
61
 
63
- export const getMaxFileSizeMessage = `File size is too big. The file size must be less than ${fileSize(
64
- MAX_FILE_SIZE_BYTES,
65
- 0,
66
- 'si',
67
- )}.`;
62
+ export const getMaxFileSizeMessage = (t: TFunction) =>
63
+ t('ai:File size is too big. The file size must be less than {{value}}.', {
64
+ value: fileSize(MAX_FILE_SIZE_BYTES, 0, 'si'),
65
+ });
68
66
 
69
67
  export const validateFileName = (fileName: string) => {
70
68
  return new RegExp(FILENAME_REGEX).test(fileName || '');
@@ -10,7 +10,7 @@ import {
10
10
  nameValidationSchema,
11
11
  noProxyValidationSchema,
12
12
  pullSecretValidationSchema,
13
- } from './validationSchemas';
13
+ } from './..';
14
14
  import { TFunction } from 'react-i18next';
15
15
  import { CLUSTER_NAME_MAX_LENGTH } from './constants';
16
16
 
@@ -32,7 +32,7 @@ describe('validationSchemas', () => {
32
32
 
33
33
  await Promise.all(
34
34
  valid.map((value) =>
35
- noProxyValidationSchema
35
+ noProxyValidationSchema(t)
36
36
  .validate(value)
37
37
  .catch(() => expect(value).toBe('was rejected but is valid')),
38
38
  ),
@@ -45,10 +45,12 @@ describe('validationSchemas', () => {
45
45
  let counter = 0;
46
46
  await Promise.all(
47
47
  invalid.map((value) =>
48
- noProxyValidationSchema.validate(value).then(
49
- () => expect(value).toBe('should be rejected since it is invalid'),
50
- () => counter++,
51
- ),
48
+ noProxyValidationSchema(t)
49
+ .validate(value)
50
+ .then(
51
+ () => expect(value).toBe('should be rejected since it is invalid'),
52
+ () => counter++,
53
+ ),
52
54
  ),
53
55
  );
54
56
 
@@ -106,7 +108,7 @@ describe('validationSchemas', () => {
106
108
 
107
109
  await Promise.all(
108
110
  valid.map((value) =>
109
- pullSecretValidationSchema
111
+ pullSecretValidationSchema(t)
110
112
  .validate(value)
111
113
  .catch((msg: string) => expect(value).toBe(`was rejected but is valid: ${msg}`)),
112
114
  ),
@@ -115,10 +117,12 @@ describe('validationSchemas', () => {
115
117
  let counter = 0;
116
118
  await Promise.all(
117
119
  invalid.map((value) =>
118
- pullSecretValidationSchema.validate(value).then(
119
- () => expect(value).toBe('should be rejected since it is invalid'),
120
- () => counter++,
121
- ),
120
+ pullSecretValidationSchema(t)
121
+ .validate(value)
122
+ .then(
123
+ () => expect(value).toBe('should be rejected since it is invalid'),
124
+ () => counter++,
125
+ ),
122
126
  ),
123
127
  );
124
128
 
@@ -147,7 +151,7 @@ describe('validationSchemas', () => {
147
151
 
148
152
  await Promise.all(
149
153
  valid.map((value) =>
150
- ipValidationSchema
154
+ ipValidationSchema(t)
151
155
  .validate(value)
152
156
  .catch((msg: string) => expect(value).toBe(`was rejected but is valid: ${msg}`)),
153
157
  ),
@@ -156,10 +160,12 @@ describe('validationSchemas', () => {
156
160
  let counter = 0;
157
161
  await Promise.all(
158
162
  invalid.map((value) =>
159
- ipValidationSchema.validate(value).then(
160
- () => expect(value).toBe('should be rejected since it is invalid'),
161
- () => counter++,
162
- ),
163
+ ipValidationSchema(t)
164
+ .validate(value)
165
+ .then(
166
+ () => expect(value).toBe('should be rejected since it is invalid'),
167
+ () => counter++,
168
+ ),
163
169
  ),
164
170
  );
165
171
 
@@ -182,7 +188,7 @@ describe('validationSchemas', () => {
182
188
 
183
189
  await Promise.all(
184
190
  valid.map((value) =>
185
- macAddressValidationSchema
191
+ macAddressValidationSchema(t)
186
192
  .validate(value)
187
193
  .catch((msg: string) => expect(value).toBe(`was rejected but is valid: ${msg}`)),
188
194
  ),
@@ -191,10 +197,12 @@ describe('validationSchemas', () => {
191
197
  let counter = 0;
192
198
  await Promise.all(
193
199
  invalid.map((value) =>
194
- macAddressValidationSchema.validate(value).then(
195
- () => expect(value).toBe('should be rejected since it is invalid'),
196
- () => counter++,
197
- ),
200
+ macAddressValidationSchema(t)
201
+ .validate(value)
202
+ .then(
203
+ () => expect(value).toBe('should be rejected since it is invalid'),
204
+ () => counter++,
205
+ ),
198
206
  ),
199
207
  );
200
208
 
@@ -211,7 +219,7 @@ describe('validationSchemas', () => {
211
219
  '192.0.0.0/8' /* Overlap */,
212
220
  ];
213
221
 
214
- const validationSchema = ipBlockValidationSchema(['192.168.1.0']);
222
+ const validationSchema = ipBlockValidationSchema(['192.168.1.0'], t);
215
223
  await Promise.all(
216
224
  valid.map((value) =>
217
225
  validationSchema
@@ -249,7 +257,7 @@ describe('validationSchemas', () => {
249
257
 
250
258
  await Promise.all(
251
259
  valid.map((value) =>
252
- dnsNameValidationSchema
260
+ dnsNameValidationSchema(t)
253
261
  .validate(value)
254
262
  .catch((msg: string) => expect(value).toBe(`was rejected but is valid: ${msg}`)),
255
263
  ),
@@ -258,10 +266,12 @@ describe('validationSchemas', () => {
258
266
  let counter = 0;
259
267
  await Promise.all(
260
268
  invalid.map((value) =>
261
- dnsNameValidationSchema.validate(value).then(
262
- () => expect(value).toBe('should be rejected since it is invalid'),
263
- () => counter++,
264
- ),
269
+ dnsNameValidationSchema(t)
270
+ .validate(value)
271
+ .then(
272
+ () => expect(value).toBe('should be rejected since it is invalid'),
273
+ () => counter++,
274
+ ),
265
275
  ),
266
276
  );
267
277
 
@@ -272,7 +282,7 @@ describe('validationSchemas', () => {
272
282
  const valid = [16, 25];
273
283
  const invalid = ['', 'a', 0, 1, 33, 15, 26];
274
284
 
275
- const validationSchema = hostPrefixValidationSchema('192.168.0.0/16');
285
+ const validationSchema = hostPrefixValidationSchema('192.168.0.0/16', t);
276
286
  await Promise.all(
277
287
  valid.map((value) =>
278
288
  validationSchema
@@ -298,7 +308,7 @@ describe('validationSchemas', () => {
298
308
  const valid = [8, 32, 128];
299
309
  const invalid = ['', 'a', 0, 1, 7, 129];
300
310
 
301
- const validationSchema = hostPrefixValidationSchema('2002::1234:abcd:ffff:c0a8:101/64');
311
+ const validationSchema = hostPrefixValidationSchema('2002::1234:abcd:ffff:c0a8:101/64', t);
302
312
  await Promise.all(
303
313
  valid.map((value) =>
304
314
  validationSchema
@@ -330,7 +340,7 @@ describe('validationSchemas', () => {
330
340
 
331
341
  await Promise.all(
332
342
  valid.map((value) =>
333
- baseDomainValidationSchema
343
+ baseDomainValidationSchema(t)
334
344
  .validate(value)
335
345
  .catch(() => expect(value).toBe(`was rejected but is valid`)),
336
346
  ),
@@ -339,10 +349,12 @@ describe('validationSchemas', () => {
339
349
  let counter = 0;
340
350
  await Promise.all(
341
351
  invalid.map((value) =>
342
- baseDomainValidationSchema.validate(value).then(
343
- () => expect(value).toBe('should be rejected since it is invalid'),
344
- () => counter++,
345
- ),
352
+ baseDomainValidationSchema(t)
353
+ .validate(value)
354
+ .then(
355
+ () => expect(value).toBe('should be rejected since it is invalid'),
356
+ () => counter++,
357
+ ),
346
358
  ),
347
359
  );
348
360
 
@@ -351,7 +363,7 @@ describe('validationSchemas', () => {
351
363
 
352
364
  describe('dualStackValidationSchema', () => {
353
365
  describe('OCP < 4.12 (legacy behavior)', () => {
354
- const schema = dualStackValidationSchema('machine networks', '4.11');
366
+ const schema = dualStackValidationSchema('machine networks', t, '4.11');
355
367
 
356
368
  test('validates IPv4 as primary and IPv6 as secondary', async () => {
357
369
  const validValues = [[{ cidr: '192.168.1.0/24' }, { cidr: '2001:db8::/64' }]];
@@ -373,7 +385,7 @@ describe('validationSchemas', () => {
373
385
  });
374
386
 
375
387
  describe('OCP >= 4.12 (new behavior)', () => {
376
- const schema = dualStackValidationSchema('machine networks', '4.12');
388
+ const schema = dualStackValidationSchema('machine networks', t, '4.12');
377
389
 
378
390
  test('validates IPv4 as primary and IPv6 as secondary', async () => {
379
391
  const validValues = [[{ cidr: '192.168.1.0/24' }, { cidr: '2001:db8::/64' }]];
@@ -393,7 +405,7 @@ describe('validationSchemas', () => {
393
405
  });
394
406
 
395
407
  describe('no version specified (defaults to legacy behavior)', () => {
396
- const schema = dualStackValidationSchema('machine networks');
408
+ const schema = dualStackValidationSchema('machine networks', t);
397
409
 
398
410
  test('validates IPv4 as primary and IPv6 as secondary', async () => {
399
411
  const validValues = [[{ cidr: '192.168.1.0/24' }, { cidr: '2001:db8::/64' }]];
@@ -416,7 +428,7 @@ describe('validationSchemas', () => {
416
428
 
417
429
  describe('edge cases', () => {
418
430
  test('validates maximum 2 networks', async () => {
419
- const schema = dualStackValidationSchema('machine networks', '4.12');
431
+ const schema = dualStackValidationSchema('machine networks', t, '4.12');
420
432
  const invalidValue = [
421
433
  { cidr: '192.168.1.0/24' },
422
434
  { cidr: '2001:db8::/64' },
@@ -424,7 +436,7 @@ describe('validationSchemas', () => {
424
436
  ];
425
437
 
426
438
  await expect(schema.validate(invalidValue)).rejects.toThrow(
427
- 'Maximum number of machine networks subnets in dual stack is 2',
439
+ 'ai:Maximum number of {{field}} subnets in dual stack is 2',
428
440
  );
429
441
  });
430
442
  });