@@ -22,12 +22,14 @@ import {
2222 Button ,
2323 FormLayout ,
2424 Grid ,
25+ HelpTip ,
2526 InputBox ,
2627 LifecycleConfigIcon ,
2728 ProgressBar ,
2829 RadioGroup ,
2930 Select ,
3031 Switch ,
32+ Tooltip ,
3133} from "mds" ;
3234import { useSelector } from "react-redux" ;
3335import { api } from "api" ;
@@ -120,8 +122,11 @@ const AddLifecycleModal = ({
120122 if ( ! lifecycleDays || parseInt ( lifecycleDays ) === 0 ) {
121123 valid = false ;
122124 }
125+ if ( parseInt ( lifecycleDays ) > 2147483647 ) {
126+ //values over int32 cannot be parsed
127+ valid = false ;
128+ }
123129 setIsFormValid ( valid ) ;
124- console . log ( "set to valid: " , valid , " lifecycledays: " , lifecycleDays ) ;
125130 } , [ ilmType , lifecycleDays , storageClass ] ) ;
126131
127132 useEffect ( ( ) => {
@@ -269,6 +274,10 @@ const AddLifecycleModal = ({
269274 label = "Object Version"
270275 onChange = { ( value ) => {
271276 setTargetVersion ( value as "current" | "noncurrent" ) ;
277+ console . log (
278+ "setTargetVersion(value as 'current' | 'noncurrent'):" ,
279+ value ,
280+ ) ;
272281 } }
273282 options = { [
274283 { value : "current" , label : "Current Version" } ,
@@ -292,6 +301,13 @@ const AddLifecycleModal = ({
292301 ) }
293302
294303 < InputBox
304+ error = {
305+ targetVersion === "current" || ilmType !== "expiry"
306+ ? ""
307+ : ! isFormValid
308+ ? "Number of noncurrent versions to retain must be greater than zero"
309+ : ""
310+ }
295311 id = "expiry_days"
296312 name = "expiry_days"
297313 onChange = { ( e : React . ChangeEvent < HTMLInputElement > ) => {
@@ -303,20 +319,28 @@ const AddLifecycleModal = ({
303319 label = "After"
304320 value = { lifecycleDays }
305321 overlayObject = {
306- < InputUnitMenu
307- id = { "expire-current-unit" }
308- unitSelected = { expiryUnit }
309- unitsList = { [
310- { label : "Days" , value : "days" } ,
311- { label : "Versions" , value : "versions" } ,
312- ] }
313- disabled = {
314- targetVersion !== "noncurrent" || ilmType !== "expiry"
322+ < Tooltip
323+ tooltip = {
324+ ilmType === "expiry" &&
325+ targetVersion === "noncurrent" &&
326+ "Select expiry based on days or number of newer noncurrent versions"
315327 }
316- onUnitChange = { ( newValue ) => {
317- setExpiryUnit ( newValue ) ;
318- } }
319- />
328+ >
329+ < InputUnitMenu
330+ id = { "expire-current-unit" }
331+ unitSelected = { expiryUnit }
332+ unitsList = { [
333+ { label : "Days" , value : "days" } ,
334+ { label : "Versions" , value : "versions" } ,
335+ ] }
336+ disabled = {
337+ targetVersion !== "noncurrent" || ilmType !== "expiry"
338+ }
339+ onUnitChange = { ( newValue ) => {
340+ setExpiryUnit ( newValue ) ;
341+ } }
342+ />
343+ </ Tooltip >
320344 }
321345 />
322346
0 commit comments