@@ -449,27 +449,30 @@ export const Configuration = observer(
449449 e : React . ChangeEvent < HTMLInputElement > ,
450450 ) => {
451451 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+
454458 setDockerState ( {
455459 ...dockerState ,
456- images : genericDockerImages . map ( ( image ) => image . pg_major_version ) ,
457460 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 ,
462467 data : genericDockerImages ,
463468 } )
464469
465470 formik . setValues ( {
466471 ...formik . values ,
467- dockerImage : currentDockerImage . pg_major_version ,
468- dockerPath : currentDockerImage . location ,
472+ dockerImage : currentDockerImage ,
469473 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 ] ,
473476 sharedPreloadLibraries :
474477 'pg_stat_statements,pg_stat_kcache,pg_cron,pgaudit,anon' ,
475478 } )
@@ -542,27 +545,33 @@ export const Configuration = observer(
542545
543546 if ( customOrGenericImage ( configData ?. dockerImageType ) ) {
544547 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 ]
548559
549560 setDockerState ( {
550561 ...dockerState ,
551- images : genericDockerImages . map (
552- ( image ) => image . pg_major_version ,
553- ) ,
554562 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 ,
559568 data : genericDockerImages ,
560569 } )
561570
562- formik . setFieldValue ( 'dockerTag' , dockerObject ?. tag )
571+ formik . setFieldValue ( 'dockerTag' , currentDockerImage ?. tag )
563572 formik . setFieldValue (
564573 'dockerImage' ,
565- dockerObject ? .pg_major_version ,
574+ currentDockerImage . pg_major_version ,
566575 )
567576 } else {
568577 formik . setFieldValue ( 'dockerImage' , configData ?. dockerPath )
@@ -812,8 +821,8 @@ export const Configuration = observer(
812821 className = { classes . grayText }
813822 style = { { margin : '0.5rem 0 1rem 0' , display : 'block' } }
814823 >
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.
817826 </ span >
818827 < div >
819828 < SelectWithTooltip
0 commit comments