in ui/lib/modules/my_services/my_service.dart [63:166]
Widget build(BuildContext context) {
return Scaffold(
appBar: App_AppBar(),
drawer: AppDrawer(),
body: SingleChildScrollView(
child: Container(
margin: EdgeInsets.all(100),
padding: EdgeInsets.all(25),
color: Colors.white,
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// << SERVICE SUMMARY >>
ServiceSummary(service: service),
// << CLOSE BUTTON >>
IconButton(
style: TextButton.styleFrom(
textStyle: Theme.of(context).textTheme.labelLarge,
),
onPressed: () {
Navigator.of(context).pop();
},
icon: Icon(
Icons.close,
color: Theme.of(context).primaryColor,
),
tooltip: "Close",
)
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
// << REPO LINK >>
SummaryItem(
label: "Repository",
child: Text.rich(
TextSpan(
style: TextStyle(
color: Theme.of(context).primaryColor,
decoration: TextDecoration.underline),
text: service.instanceRepo,
recognizer: TapGestureRecognizer()
..onTap = () async {
launchUrl(Uri.parse(service.instanceRepo));
},
),
),
),
],
),
Divider(),
// << CLOUD SHELL || WORKSTATION BUTTON >>
service.workstationConfig.isNotEmpty
? WorkStationWidget(service)
: LaunchInCloudShellButton(service: service),
Divider(),
// << VULNERABILITIES >>
VulnerabilityWidget(service: service),
Divider(),
// << RECOMMENDATIONS >>
if (_serviceUses(["cloudrun"]))
RecommendationsWidget(service: service),
Divider(),
// << BUILD HISTORY >>
BuildHistoryWidget(service: service),
// << RESOURCES >>
ServiceResourcesWidget(service: service),
// << TEMPLATE DETAILS >>
TemplateDetailsWidget(service: service),
Divider(),
// << DELETE BUTTON >>
IconButton(
tooltip: 'Delete',
onPressed: () async {
await ref
.read(servicesRepositoryProvider)
.deleteService(service);
ref.invalidate(servicesProvider);
Navigator.of(context).pop();
},
icon: Icon(
Icons.delete,
color: Colors.red,
),
),
],
),
),
),
);
}