in ui/lib/modules/catalog/widgets/cloud_workstation_widget.dart [173:234]
Widget _workstationConfig(String projectId, String region) {
String cluster = ref.watch(clusterDropdownProvider);
Text configNotFound = Text("Configurations not found");
if (cluster == "Select a cluster")
return configNotFound;
final workstationConfigsList = ref.watch(WorkstationConfigsProvider(
projectId: projectId, region: region, clusterName: cluster));
return Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(left: 0.0),
child: Text("Configuration"),
),
Row(
children: [
workstationConfigsList.when(
loading: () => Container(),
error: (err, stack) => Container(),
data: (configsList) {
if (configsList.isNotEmpty) {
var configNames = configsList
.map<String>((config) => config.name
.substring(config.name.lastIndexOf('/') + 1))
.toList();
var selectConfigurationText = "Select a configuration";
return SizedBox(
width: 300,
child: DropdownButtonFormField<String>(
validator: (value) {
return null;
},
hint: Text(selectConfigurationText),
value: selectConfigurationText,
icon: const Icon(Icons.arrow_drop_down),
style: const TextStyle(color: Colors.black),
onChanged: (String? value) {
widget.onTextFormUpdate(value!, "_WS_CONFIG");
},
items: [selectConfigurationText, ...configNames]
.map<DropdownMenuItem<String>>((String configName) {
return DropdownMenuItem<String>(
value: configName,
child: Text(configName),
);
}).toList(),
),
);
} else {
return configNotFound;
}
}),
],
),
],
);
}