@@ -449,27 +449,30 @@ export const Configuration = observer(
449
449
e : React . ChangeEvent < HTMLInputElement > ,
450
450
) => {
451
451
if ( e . target . value === 'Generic Postgres' ) {
452
- const currentDockerImage =
453
- genericDockerImages [ genericDockerImages . length - 1 ]
452
+ const genericImageVersions = genericDockerImages
453
+ . map ( ( image ) => image . pg_major_version )
454
+ . filter ( ( value , index , self ) => self . indexOf ( value ) === index )
455
+ . sort ( ( a , b ) => Number ( a ) - Number ( b ) )
456
+ const currentDockerImage = genericImageVersions . slice ( - 1 ) [ 0 ]
457
+
454
458
setDockerState ( {
455
459
...dockerState ,
456
- images : genericDockerImages . map ( ( image ) => image . pg_major_version ) ,
457
460
tags : genericDockerImages
458
- . filter ( ( image ) =>
459
- image . tag . startsWith ( currentDockerImage . pg_major_version ) ,
460
- )
461
- . map ( ( image ) => image . tag ) ,
461
+ . map ( ( image ) => image . tag )
462
+ . filter ( ( tag ) => tag . startsWith ( currentDockerImage ) ) ,
463
+ locations : genericDockerImages
464
+ . map ( ( image ) => image . location )
465
+ . filter ( ( location ) => location ?. includes ( currentDockerImage ) ) ,
466
+ images : genericImageVersions ,
462
467
data : genericDockerImages ,
463
468
} )
464
469
465
470
formik . setValues ( {
466
471
...formik . values ,
467
- dockerImage : currentDockerImage . pg_major_version ,
468
- dockerPath : currentDockerImage . location ,
472
+ dockerImage : currentDockerImage ,
469
473
dockerImageType : e . target . value ,
470
- dockerTag : genericDockerImages . filter ( ( image ) =>
471
- image . tag . startsWith ( currentDockerImage . pg_major_version ) ,
472
- ) [ 0 ] . tag ,
474
+ dockerTag : genericDockerImages . map ( ( image ) => image . tag ) [ 0 ] ,
475
+ dockerPath : genericDockerImages . map ( ( image ) => image . location ) [ 0 ] ,
473
476
sharedPreloadLibraries :
474
477
'pg_stat_statements,pg_stat_kcache,pg_cron,pgaudit,anon' ,
475
478
} )
@@ -542,27 +545,33 @@ export const Configuration = observer(
542
545
543
546
if ( customOrGenericImage ( configData ?. dockerImageType ) ) {
544
547
if ( configData ?. dockerImageType === 'Generic Postgres' ) {
545
- const dockerObject = genericDockerImages . filter (
546
- ( image ) => image . location === configData . dockerPath ,
547
- ) [ 0 ]
548
+ const genericImageVersions = genericDockerImages
549
+ . map ( ( image ) => image . pg_major_version )
550
+ . filter ( ( value , index , self ) => self . indexOf ( value ) === index )
551
+ . sort ( ( a , b ) => Number ( a ) - Number ( b ) )
552
+ const currentDockerImage =
553
+ genericDockerImages . filter (
554
+ ( image ) => image . location === configData ?. dockerPath ,
555
+ ) [ 0 ] ||
556
+ genericDockerImages . filter ( ( image ) =>
557
+ configData ?. dockerPath ?. includes ( image . pg_major_version ) ,
558
+ ) [ 0 ]
548
559
549
560
setDockerState ( {
550
561
...dockerState ,
551
- images : genericDockerImages . map (
552
- ( image ) => image . pg_major_version ,
553
- ) ,
554
562
tags : genericDockerImages
555
- . filter ( ( image ) =>
556
- image . tag . startsWith ( dockerObject ?. pg_major_version ) ,
557
- )
558
- . map ( ( image ) => image . tag ) ,
563
+ . map ( ( image ) => image . tag )
564
+ . filter ( ( tag ) =>
565
+ tag . startsWith ( currentDockerImage . pg_major_version ) ,
566
+ ) ,
567
+ images : genericImageVersions ,
559
568
data : genericDockerImages ,
560
569
} )
561
570
562
- formik . setFieldValue ( 'dockerTag' , dockerObject ?. tag )
571
+ formik . setFieldValue ( 'dockerTag' , currentDockerImage ?. tag )
563
572
formik . setFieldValue (
564
573
'dockerImage' ,
565
- dockerObject ? .pg_major_version ,
574
+ currentDockerImage . pg_major_version ,
566
575
)
567
576
} else {
568
577
formik . setFieldValue ( 'dockerImage' , configData ?. dockerPath )
@@ -812,8 +821,8 @@ export const Configuration = observer(
812
821
className = { classes . grayText }
813
822
style = { { margin : '0.5rem 0 1rem 0' , display : 'block' } }
814
823
>
815
- DBLab manages various database containers, such as clones. This
816
- section defines default container settings.
824
+ DBLab manages various database containers, such as clones.
825
+ This section defines default container settings.
817
826
</ span >
818
827
< div >
819
828
< SelectWithTooltip
0 commit comments