From f5a2a18ffc375ea54d285440c3c30b2b6dd49114 Mon Sep 17 00:00:00 2001 From: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:00:31 +0200 Subject: [PATCH] Add environment types environment order (#8447) --- .../common/GeneralSelect/GeneralSelect.tsx | 17 +-- .../OrderEnvironments/OrderEnvironments.tsx | 8 +- .../OrderEnvironmentsDialog.test.tsx | 71 ++++++++++++- .../OrderEnvironmentsDialog.tsx | 100 +++++++++++++----- frontend/src/openapi/models/index.ts | 1 + .../openapi/models/orderEnvironmentsSchema.ts | 5 +- ...orderEnvironmentsSchemaEnvironmentsItem.ts | 12 +++ 7 files changed, 170 insertions(+), 44 deletions(-) create mode 100644 frontend/src/openapi/models/orderEnvironmentsSchemaEnvironmentsItem.ts diff --git a/frontend/src/component/common/GeneralSelect/GeneralSelect.tsx b/frontend/src/component/common/GeneralSelect/GeneralSelect.tsx index 6dead6b5789e..b5844de7f138 100644 --- a/frontend/src/component/common/GeneralSelect/GeneralSelect.tsx +++ b/frontend/src/component/common/GeneralSelect/GeneralSelect.tsx @@ -51,6 +51,7 @@ function GeneralSelect({ classes, fullWidth, visuallyHideLabel, + labelId, ...rest }: IGeneralSelectProps) { const onSelectChange = (event: SelectChangeEvent) => { @@ -65,12 +66,15 @@ function GeneralSelect({ classes={classes} fullWidth={fullWidth} > - - {label} - + {label ? ( + + {label} + + ) : null} { - setEnvironmentNames((names) => { - const newValues = [...names]; - newValues[i] = event.target.value; - return newValues; - }); - }} - error={Boolean(error)} - errorText={error} - /> + + ({ + key: type, + label: type, + }), + )} + onChange={(type) => { + const newEnvironments = [ + ...environments, + ]; + newEnvironments[i].type = type; + setEnvironments(newEnvironments); + }} + /> + { + const newEnvironments = [ + ...environments, + ]; + newEnvironments[i].name = + e.target.value; + setEnvironments(newEnvironments); + }} + error={!!error} + helperText={error} + /> + ); })} diff --git a/frontend/src/openapi/models/index.ts b/frontend/src/openapi/models/index.ts index 04ae7de1c66b..ad6e812bef0a 100644 --- a/frontend/src/openapi/models/index.ts +++ b/frontend/src/openapi/models/index.ts @@ -863,6 +863,7 @@ export * from './oidcSettingsSchemaOneOfFourDefaultRootRole'; export * from './oidcSettingsSchemaOneOfFourIdTokenSigningAlgorithm'; export * from './oidcSettingsSchemaOneOfIdTokenSigningAlgorithm'; export * from './orderEnvironmentsSchema'; +export * from './orderEnvironmentsSchemaEnvironmentsItem'; export * from './outdatedSdksSchema'; export * from './outdatedSdksSchemaSdksItem'; export * from './overrideSchema'; diff --git a/frontend/src/openapi/models/orderEnvironmentsSchema.ts b/frontend/src/openapi/models/orderEnvironmentsSchema.ts index dda45a8aa562..e7eb59195bcc 100644 --- a/frontend/src/openapi/models/orderEnvironmentsSchema.ts +++ b/frontend/src/openapi/models/orderEnvironmentsSchema.ts @@ -3,11 +3,12 @@ * Do not edit manually. * See `gen:api` script in package.json */ +import type { OrderEnvironmentsSchemaEnvironmentsItem } from './orderEnvironmentsSchemaEnvironmentsItem'; /** * A request for hosted customers to order new environments in Unleash. */ export interface OrderEnvironmentsSchema { - /** An array of environment names to be ordered. */ - environments: string[]; + /** An array of environments to be ordered, each with a name and type. */ + environments: OrderEnvironmentsSchemaEnvironmentsItem[]; } diff --git a/frontend/src/openapi/models/orderEnvironmentsSchemaEnvironmentsItem.ts b/frontend/src/openapi/models/orderEnvironmentsSchemaEnvironmentsItem.ts new file mode 100644 index 000000000000..94d06e6e4f40 --- /dev/null +++ b/frontend/src/openapi/models/orderEnvironmentsSchemaEnvironmentsItem.ts @@ -0,0 +1,12 @@ +/** + * Generated by Orval + * Do not edit manually. + * See `gen:api` script in package.json + */ + +export type OrderEnvironmentsSchemaEnvironmentsItem = { + /** The name of the environment. */ + name: string; + /** The type of the environment. */ + type: string; +};