Skip to content

Commit dfbee43

Browse files
authored
Merge pull request #34 from swarno-tech/rewrite
final workspace
2 parents ea3cf13 + 35c4067 commit dfbee43

File tree

8 files changed

+138
-75
lines changed

8 files changed

+138
-75
lines changed

lib/features/workspace/pages/desktop/workspace_desktop.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class WorkspaceDesktop extends StatelessWidget {
3737
const WorkspaceDrawer(),
3838
SizedBox(width: 20.w),
3939
Positioned(top: 0, left: 0.21.sw, child: UndoRedoButton(su: suprovider,)),
40-
Positioned(top: 0, right: 0.001.sw, child: ExportProjectButton()),
40+
Positioned(top: 0, right: 0.001.sw, child: ExportProjectButton(su: suprovider,)),
4141

4242
Positioned(right: 0, top: 0.10.sh, child: ToolBar()),
4343

lib/features/workspace/pages/mobile/workspace_mobile.dart

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ class WorkspaceMobile extends StatelessWidget {
2626
Widget build(BuildContext context) {
2727
rh.DeviceType device = rh.ResponsiveLayoutHelper.getDeviceType(context);
2828

29-
return Consumer2<WorkspaceProvider,SupabaseService>(
30-
builder: (context, provider,suprovider, child) {
29+
return Consumer2<WorkspaceProvider, SupabaseService>(
30+
builder: (context, provider, suprovider, child) {
3131
return Scaffold(
3232
backgroundColor: provider.currentWorkspaceColor,
3333
body: Padding(
@@ -37,7 +37,11 @@ class WorkspaceMobile extends StatelessWidget {
3737
children: [
3838
const CanvasPage(),
3939
workspaceDrawerMob(device),
40-
Positioned(top: 120.h, right: 0.h, child: UndoRedoButton(su: suprovider,)),
40+
Positioned(
41+
top: 120.h,
42+
right: 0.h,
43+
child: UndoRedoButton(su: suprovider),
44+
),
4145
Padding(
4246
padding: EdgeInsets.only(bottom: 40.h),
4347
child: Align(
@@ -103,9 +107,9 @@ class WorkspaceMobile extends StatelessWidget {
103107
}
104108
}
105109

106-
Widget workspaceDrawerMob(rh.DeviceType device,) {
107-
return Consumer<WorkspaceProvider>(
108-
builder: (context, provider, child) {
110+
Widget workspaceDrawerMob(rh.DeviceType device) {
111+
return Consumer2<WorkspaceProvider, SupabaseService>(
112+
builder: (context, provider, suprovider, child) {
109113
Color defaultBorderColor = const Color(0xFFD9D9D9);
110114

111115
// Check if currentWorkspace is set before accessing its properties
@@ -172,7 +176,7 @@ Widget workspaceDrawerMob(rh.DeviceType device,) {
172176
onPressed: () {
173177
showDialog(
174178
context: context,
175-
builder: (context) => ExportDialog(),
179+
builder: (context) => ExportDialog(su: suprovider),
176180
);
177181
},
178182
style: ElevatedButton.styleFrom(

lib/features/workspace/pages/tablet/workspace_tablet.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class WorkspaceTablet extends StatelessWidget {
3939
Positioned(
4040
top: 0,
4141
right: 0.001.sw,
42-
child: ExportProjectButton(),
42+
child: ExportProjectButton(su: suprovider,),
4343
),
4444

4545
// Container(

lib/features/workspace/widgets/export_dialog.dart

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
import 'package:cookethflow/core/providers/supabase_provider.dart';
12
import 'package:flutter/material.dart';
23
import 'package:flutter_screenutil/flutter_screenutil.dart';
34
import 'package:phosphor_flutter/phosphor_flutter.dart';
45
import 'package:cookethflow/core/helpers/responsive_layout.helper.dart' as rh;
56

67
class ExportDialog extends StatefulWidget {
7-
const ExportDialog({super.key});
8+
final SupabaseService su;
9+
const ExportDialog({super.key, required this.su});
810

911
@override
1012
State<ExportDialog> createState() => _ExportDialogState();
@@ -24,7 +26,8 @@ class _ExportDialogState extends State<ExportDialog> {
2426
width: 320.w,
2527
padding: EdgeInsets.all(24.r),
2628
decoration: BoxDecoration(
27-
color: Colors.white,
29+
color:
30+
widget.su.isDark ? Color.fromRGBO(48, 48, 48, 1) : Colors.white,
2831
borderRadius: BorderRadius.circular(16.r),
2932
boxShadow: [
3033
BoxShadow(
@@ -52,14 +55,26 @@ class _ExportDialogState extends State<ExportDialog> {
5255
? 22.sp
5356
: 60.sp,
5457
fontWeight: FontWeight.w600,
55-
color: const Color(0xFF111827),
58+
color:
59+
widget.su.isDark
60+
? Colors.white
61+
: const Color(0xFF111827),
5662
),
5763
),
5864
IconButton(
59-
icon: Icon(PhosphorIconsRegular.x, size:device == rh.DeviceType.desktop ? 24.sp : device == rh.DeviceType.tab ? 24.sp : 55.sp),
65+
icon: Icon(
66+
PhosphorIconsRegular.x,
67+
size:
68+
device == rh.DeviceType.desktop
69+
? 24.sp
70+
: device == rh.DeviceType.tab
71+
? 24.sp
72+
: 55.sp,
73+
),
6074
onPressed: () => Navigator.of(context).pop(),
6175
padding: EdgeInsets.zero,
6276
constraints: const BoxConstraints(),
77+
color: widget.su.isDark ? Colors.white : Colors.black,
6378
),
6479
],
6580
),
@@ -71,7 +86,15 @@ class _ExportDialogState extends State<ExportDialog> {
7186
children: [
7287
Text(
7388
'Export as',
74-
style: TextStyle(fontSize:device == rh.DeviceType.desktop ? 16.sp : device == rh.DeviceType.tab ? 16.sp : 45.sp, color: Colors.grey[700]),
89+
style: TextStyle(
90+
fontSize:
91+
device == rh.DeviceType.desktop
92+
? 16.sp
93+
: device == rh.DeviceType.tab
94+
? 16.sp
95+
: 45.sp,
96+
color: widget.su.isDark ? Colors.white : Colors.grey[700],
97+
),
7598
),
7699
Container(
77100
padding: EdgeInsets.symmetric(horizontal: 12.w),
@@ -82,7 +105,15 @@ class _ExportDialogState extends State<ExportDialog> {
82105
child: DropdownButton<String>(
83106
value: _selectedFormat,
84107
underline: const SizedBox.shrink(),
85-
icon: Icon(PhosphorIconsRegular.caretDown, size:device == rh.DeviceType.desktop ? 16.sp : device == rh.DeviceType.tab ? 16.sp : 45.sp),
108+
icon: Icon(
109+
PhosphorIconsRegular.caretDown,
110+
size:
111+
device == rh.DeviceType.desktop
112+
? 16.sp
113+
: device == rh.DeviceType.tab
114+
? 16.sp
115+
: 45.sp,
116+
),
86117
onChanged: (String? newValue) {
87118
if (newValue != null) {
88119
setState(() {
@@ -96,7 +127,18 @@ class _ExportDialogState extends State<ExportDialog> {
96127
value: value,
97128
child: Text(
98129
value,
99-
style: TextStyle(fontSize: device == rh.DeviceType.desktop ? 16.sp : device == rh.DeviceType.tab ? 16.sp : 45.sp),
130+
style: TextStyle(
131+
fontSize:
132+
device == rh.DeviceType.desktop
133+
? 16.sp
134+
: device == rh.DeviceType.tab
135+
? 16.sp
136+
: 45.sp,
137+
color:
138+
widget.su.isDark
139+
? Colors.white
140+
: Colors.black,
141+
),
100142
),
101143
);
102144
}).toList(),
@@ -127,7 +169,12 @@ class _ExportDialogState extends State<ExportDialog> {
127169
child: Text(
128170
'Export Flowchart',
129171
style: TextStyle(
130-
fontSize:device == rh.DeviceType.desktop ? 16.sp : device == rh.DeviceType.tab ? 16.sp : 45.sp,
172+
fontSize:
173+
device == rh.DeviceType.desktop
174+
? 16.sp
175+
: device == rh.DeviceType.tab
176+
? 16.sp
177+
: 45.sp,
131178
fontWeight: FontWeight.w600,
132179
),
133180
),

lib/features/workspace/widgets/export_project_button.dart

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
import 'package:cookethflow/core/helpers/responsive_layout.helper.dart' as rh;
2+
import 'package:cookethflow/core/providers/supabase_provider.dart';
23
import 'package:cookethflow/core/theme/colors.dart';
34
import 'package:cookethflow/features/workspace/widgets/export_dialog.dart';
45
import 'package:flutter/material.dart';
56
import 'package:flutter_screenutil/flutter_screenutil.dart';
67
import 'package:phosphor_flutter/phosphor_flutter.dart';
78

89
class ExportProjectButton extends StatelessWidget {
9-
const ExportProjectButton({super.key});
10+
final SupabaseService su;
11+
const ExportProjectButton({super.key, required this.su});
1012

1113
@override
1214
Widget build(BuildContext context) {
13-
final device = rh.ResponsiveLayoutHelper.getDeviceType(context);
15+
final device = rh.ResponsiveLayoutHelper.getDeviceType(context);
1416
return ElevatedButton(
1517
onPressed: () {
16-
showDialog(context: context, builder: (context) => ExportDialog(),);
18+
showDialog(context: context, builder: (context) => ExportDialog(su: su,));
1719
},
1820
style: ElevatedButton.styleFrom(
1921
elevation: 0,
@@ -30,13 +32,17 @@ class ExportProjectButton extends StatelessWidget {
3032
'Export Flowchart',
3133
style: TextStyle(
3234
fontFamily: 'Fredrik',
33-
fontSize:device == rh.DeviceType.desktop? 18.sp : 25.sp,
35+
fontSize: device == rh.DeviceType.desktop ? 18.sp : 25.sp,
3436
color: Colors.white,
3537
fontWeight: FontWeight.w500,
3638
),
3739
),
3840
SizedBox(width: 16.w),
39-
Icon(PhosphorIconsRegular.export, color: Colors.white, size:device == rh.DeviceType.desktop? 24.sp : 40.sp),
41+
Icon(
42+
PhosphorIconsRegular.export,
43+
color: Colors.white,
44+
size: device == rh.DeviceType.desktop ? 24.sp : 40.sp,
45+
),
4046
],
4147
),
4248
);
Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import 'package:cookethflow/core/providers/supabase_provider.dart';
12
import 'package:cookethflow/core/theme/colors.dart';
23
import 'package:flutter/material.dart';
4+
import 'package:provider/provider.dart';
35

46
class NodeColourPicker extends StatelessWidget {
57
final ValueChanged<Color> onColorSelected;
@@ -13,16 +15,14 @@ class NodeColourPicker extends StatelessWidget {
1315

1416
@override
1517
Widget build(BuildContext context) {
18+
final su = context.read<SupabaseService>();
1619
return Dialog(
17-
insetPadding: const EdgeInsets.symmetric(
18-
horizontal: 20,
19-
vertical: 20,
20-
),
20+
insetPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 20),
2121
child: Container(
2222
width: 320, // Adjusted width as mode buttons are removed
2323
padding: const EdgeInsets.all(20),
2424
decoration: BoxDecoration(
25-
color: Colors.white,
25+
color:su.isDark?Color.fromRGBO(48, 48, 48, 1): Colors.white,
2626
borderRadius: BorderRadius.circular(12),
2727
border: Border.all(color: const Color(0xFFE0E0E0), width: 1),
2828
),
@@ -34,18 +34,15 @@ class NodeColourPicker extends StatelessWidget {
3434
Row(
3535
mainAxisAlignment: MainAxisAlignment.spaceBetween,
3636
children: [
37-
const Text(
37+
Text(
3838
'Change Color',
39-
style: TextStyle(
40-
fontSize: 18,
41-
fontWeight: FontWeight.w600,
42-
),
39+
style: TextStyle(fontSize: 18, fontWeight: FontWeight.w600, color: su.isDark?Colors.white:Colors.black),
4340
),
4441
IconButton(
45-
icon: const Icon(
42+
icon: Icon(
4643
Icons.close,
4744
size: 24,
48-
color: Colors.black54,
45+
color:su.isDark?Colors.white: Colors.black54,
4946
),
5047
onPressed: () => Navigator.pop(context),
5148
padding: EdgeInsets.zero,
@@ -62,25 +59,29 @@ class NodeColourPicker extends StatelessWidget {
6259
Wrap(
6360
spacing: 12, // Horizontal gap between color boxes
6461
runSpacing: 12, // Vertical gap between rows
65-
children: secondaryColors
66-
.map((color) => _buildColorBox(
67-
color,
68-
isSelected: initialColor?.value == color.value,
69-
))
70-
.toList(),
62+
children:
63+
secondaryColors
64+
.map(
65+
(color) => _buildColorBox(
66+
color,
67+
isSelected: initialColor?.value == color.value,
68+
),
69+
)
70+
.toList(),
7171
),
7272
const SizedBox(height: 12),
7373
// Bottom row
7474
Wrap(
7575
spacing: 12, // Horizontal gap between color boxes
7676
runSpacing: 12,
77-
children: tertiaryColors.asMap().entries.map((entry) {
78-
Color color = entry.value;
79-
return _buildColorBox(
80-
color,
81-
isSelected: initialColor?.value == color.value,
82-
);
83-
}).toList(),
77+
children:
78+
tertiaryColors.asMap().entries.map((entry) {
79+
Color color = entry.value;
80+
return _buildColorBox(
81+
color,
82+
isSelected: initialColor?.value == color.value,
83+
);
84+
}).toList(),
8485
),
8586
],
8687
),
@@ -90,10 +91,7 @@ class NodeColourPicker extends StatelessWidget {
9091
);
9192
}
9293

93-
Widget _buildColorBox(
94-
Color color, {
95-
bool isSelected = false,
96-
}) {
94+
Widget _buildColorBox(Color color, {bool isSelected = false}) {
9795
return GestureDetector(
9896
onTap: () {
9997
onColorSelected(color);
@@ -104,14 +102,16 @@ class NodeColourPicker extends StatelessWidget {
104102
decoration: BoxDecoration(
105103
color: color,
106104
borderRadius: BorderRadius.circular(4), // Added border radius
107-
border: isSelected
108-
? Border.all(
109-
color: Colors.blue,
110-
width: 2.5,
111-
strokeAlign: BorderSide.strokeAlignOutside)
112-
: Border.all(color: Colors.grey.shade300, width: 1),
105+
border:
106+
isSelected
107+
? Border.all(
108+
color: Colors.blue,
109+
width: 2.5,
110+
strokeAlign: BorderSide.strokeAlignOutside,
111+
)
112+
: Border.all(color: Colors.grey.shade300, width: 1),
113113
),
114114
),
115115
);
116116
}
117-
}
117+
}

0 commit comments

Comments
 (0)