Files
Prod/lib/widgets/projectCard.dart
Phani Pavan K ec3e69ffa9
All checks were successful
Build CI / AMD64 Build (push) Successful in 3m23s
Build CI / ARM64 Build (push) Successful in 7m16s
added prj editing page, must change to dialog bcz page too big
2026-02-15 19:06:15 +05:30

68 lines
2.1 KiB
Dart

import "package:flutter/material.dart";
import "package:prod/models/editor.dart";
import "package:prod/models/globalModel.dart";
import "package:prod/models/project.dart";
import "package:provider/provider.dart";
import "package:yaru/yaru.dart";
import "package:process_run/shell.dart";
class ProjectCard extends StatelessWidget {
const ProjectCard(this.id, {super.key});
final int id;
@override
Widget build(BuildContext context) {
GlobalModel gm = Provider.of<GlobalModel>(context);
final Project prj = gm.nthPrj(id);
return YaruBanner(
padding: .only(
left: kYaruPagePadding,
top: kYaruPagePadding * 0.5,
bottom: kYaruPagePadding,
right: kYaruPagePadding,
),
onHover: (st) => gm.setHoverShow(id, st),
onTap: () {
// var shell = Shell();
// Editor edt1 = gm.editors[0];
// String comm = edt1.commandTemplate.replaceAll("\$path", prj.path.path);
// shell.run(comm);
// ScaffoldMessenger.of(context).showSnackBar(
// SnackBar(content: Text("Launched "), duration: Duration(seconds: 3)),
// );
Navigator.pushNamed(context, "/manageprj", arguments: id);
},
child: Center(
child: Column(
mainAxisAlignment: .start,
crossAxisAlignment: .start,
children: [
Text(
"${prj.name}",
style: TextStyle(fontSize: 30),
overflow: .ellipsis,
),
Row(
spacing: 10,
children: [
Text("${prj.language}"),
prj.isGit ? Icon(Icons.commit) : Container(),
],
),
gm.getHoverShow(id) ? Text("${prj.path.path}") : Container(),
// gm.getHoverShow(id)
// ? IconButton(
// icon: Icon(Icons.close),
// onPressed: () => gm.delPrj(id),
// style: IconButton.styleFrom(
// overlayColor: Color(0xffff0000),
// ),
// )
// : Container(),
],
),
),
);
}
}