Skip to content

Commit 56da2c5

Browse files
committed
refactor: dashboard screen
1 parent cb5c32e commit 56da2c5

File tree

4 files changed

+389
-439
lines changed

4 files changed

+389
-439
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import 'package:cookethflow/core/widgets/build_project.dart';
2+
import 'package:cookethflow/providers/flowmanage_provider.dart';
3+
import 'package:flutter/material.dart';
4+
import 'package:phosphor_flutter/phosphor_flutter.dart';
5+
import 'package:provider/provider.dart';
6+
7+
class AddProject extends StatelessWidget {
8+
const AddProject({super.key});
9+
10+
@override
11+
Widget build(BuildContext context) {
12+
return Consumer<FlowmanageProvider>(builder: (context, provider, child) {
13+
return AlertDialog(
14+
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
15+
title: Text(
16+
'Create Project',
17+
style: TextStyle(fontFamily: 'Frederik', fontWeight: FontWeight.bold),
18+
),
19+
content: Column(
20+
mainAxisSize: MainAxisSize.min,
21+
children: [
22+
BuildProject(
23+
icon: PhosphorIconsRegular.plus,
24+
label: 'Start New Project',
25+
onTap: () async {
26+
Navigator.pop(context);
27+
provider.createNewProject(context);
28+
},
29+
),
30+
SizedBox(height: 16),
31+
BuildProject(
32+
icon: PhosphorIconsRegular.fileArrowDown,
33+
label: 'Import Existing Project',
34+
onTap: () async {
35+
Navigator.pop(context);
36+
provider.importExistingProject(context);
37+
},
38+
),
39+
],
40+
),
41+
);
42+
});
43+
}
44+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import 'package:flutter/material.dart';
2+
3+
class BuildProject extends StatelessWidget {
4+
final IconData icon;
5+
final String label;
6+
final VoidCallback onTap;
7+
const BuildProject({
8+
super.key,
9+
required this.icon,
10+
required this.label,
11+
required this.onTap,
12+
});
13+
14+
@override
15+
Widget build(BuildContext context) {
16+
return InkWell(
17+
onTap: onTap,
18+
borderRadius: BorderRadius.circular(8),
19+
child: Container(
20+
padding: EdgeInsets.symmetric(vertical: 16, horizontal: 16),
21+
decoration: BoxDecoration(
22+
border: Border.all(color: Colors.black, width: 1),
23+
borderRadius: BorderRadius.circular(8),
24+
),
25+
child: Row(
26+
children: [
27+
Icon(icon, size: 24),
28+
SizedBox(width: 16),
29+
Text(
30+
label,
31+
style: TextStyle(
32+
fontFamily: 'Frederik',
33+
fontSize: 16,
34+
),
35+
),
36+
],
37+
),
38+
),
39+
);
40+
}
41+
}

0 commit comments

Comments
 (0)