Files
Prod/lib/widgets/projectCard.dart
Phani Pavan K 85bc4450f9
All checks were successful
Build CI / Build (linux-arm64) (push) Successful in 1m48s
Build CI / Build (linux-amd64) (push) Successful in 7m3s
beautified editor list
2026-02-13 19:54:45 +05:30

64 lines
1.9 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);
},
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(),
],
),
),
);
}
}