import "dart:io"; import "package:flutter/material.dart"; import "package:prod/models/globalModel.dart"; import "package:prod/models/project.dart"; import "package:provider/provider.dart"; class ManageProject extends StatelessWidget { const ManageProject({super.key}); @override Widget build(BuildContext context) { final id = ModalRoute.of(context)?.settings.arguments as int; GlobalModel gm = Provider.of(context); final Project prj = gm.nthPrj(id); TextEditingController nameController = TextEditingController(); TextEditingController pathController = TextEditingController(); TextEditingController langController = TextEditingController(); nameController.text = prj.name; pathController.text = prj.path.path; langController.text = prj.language; return Scaffold( appBar: AppBar(title: Text("/ PROject Dashboard / Editing ${prj.name} ")), body: Container( // constraints: BoxConstraints(maxWidth: 500), child: CustomScrollView( slivers: [ SliverAppBar( // title: gm.isEdited ? Text("Unsaved Changes") : null, pinned: false, snap: false, floating: false, automaticallyImplyLeading: false, automaticallyImplyActions: false, backgroundColor: Colors.transparent, shape: LinearBorder(), ), SliverToBoxAdapter( child: TextField( style: TextStyle(fontSize: 50), controller: nameController, textAlign: .center, // onEditingComplete: () => gm.updateEdited(true), decoration: InputDecoration( border: .none, enabledBorder: .none, fillColor: Colors.transparent, ), ), ), SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.all(8.0), child: TextField( style: TextStyle(fontSize: 30), controller: pathController, textAlign: .center, // onEditingComplete: () => gm.updateEdited(true), decoration: InputDecoration( border: .none, // enabledBorder: .none, fillColor: Colors.transparent, ), ), ), ), SliverToBoxAdapter( child: TextField( style: TextStyle(fontSize: 30), controller: langController, textAlign: .center, // onEditingComplete: () => gm.updateEdited(true), decoration: InputDecoration( border: .none, enabledBorder: .none, fillColor: Colors.transparent, ), ), ), SliverList.list( children: [ Row( children: [ OutlinedButton( child: Text("Delete"), onPressed: () { Navigator.pop(context); gm.delPrj(id); ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text("Deleted ${prj.name}"), duration: Duration(milliseconds: 2350), ), ); }, ), OutlinedButton( child: Text("Cancel"), onPressed: () => Navigator.pop(context), ), OutlinedButton( child: Text("Save"), onPressed: () { gm.updatePrj( id, Project( nameController.text, langController.text, File(pathController.text), prj.editors, prj.isGit, prj.enableTerminal, ), ); ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text("Updated Project Details"), duration: Duration(milliseconds: 2500), ), ); }, // gm.updateEdited(false); ), ], ), ], ), // SliverList.builder( // itemCount: 3, // itemBuilder: (context, index) { // return Placeholder(); // }, // ), ], ), ), ); } }