Skip to content

Commit f742af6

Browse files
committed
fix: setstate called during buildstate fixed
1 parent 8bb3de0 commit f742af6

File tree

2 files changed

+28
-23
lines changed

2 files changed

+28
-23
lines changed

lib/features/workspace/providers/workspace_provider.dart

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,12 @@ class WorkspaceProvider extends StateHandler {
118118
return _tempQuillController;
119119
}
120120

121-
IconData nodeIconProvider() {
121+
// Renamed and fixed to be a pure getter without side effects
122+
IconData getNodeIcon() {
122123
if (_currentMode != DrawMode.hand &&
123124
_currentMode != DrawMode.pointer &&
124125
_currentMode != DrawMode.stickyNote &&
125126
_currentMode != DrawMode.textBox) {
126-
_isNodePicked = true;
127-
notifyListeners();
128127
return _currentMode.iconData;
129128
}
130129
return PhosphorIconsRegular.circlesThreePlus;
@@ -781,6 +780,11 @@ class WorkspaceProvider extends StateHandler {
781780
_saveCanvasObjectToDb(_currentlySelectedObjectId!);
782781
}
783782
_currentMode = mode;
783+
// Update _isNodePicked here, based on the new mode
784+
_isNodePicked = (mode != DrawMode.hand &&
785+
mode != DrawMode.pointer &&
786+
mode != DrawMode.stickyNote &&
787+
mode != DrawMode.textBox);
784788
_currentlySelectedObjectId = null;
785789
_interactionMode = InteractionMode.none;
786790
notifyListeners();
@@ -860,7 +864,8 @@ class WorkspaceProvider extends StateHandler {
860864
case DrawMode.hand:
861865
break;
862866
}
863-
_currentMode = DrawMode.pointer;
867+
// No longer changing mode here, as it's handled by changeDrawMode
868+
// _currentMode = DrawMode.pointer;
864869

865870
if (newObject != null) {
866871
_canvasObjects[newObject.id] = newObject;

lib/features/workspace/widgets/toolbar.dart

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ class ToolBar extends StatelessWidget {
3434
decoration: BoxDecoration(
3535
color:
3636
suprovider.isDark
37-
? Color.fromRGBO(48, 48, 48, 1)
37+
? const Color.fromRGBO(48, 48, 48, 1)
3838
: Colors.white,
3939
borderRadius: BorderRadius.circular(12.r),
4040
border: Border.all(
4141
color:
4242
suprovider.isDark
43-
? Color.fromRGBO(75, 75, 75, 1)
43+
? const Color.fromRGBO(75, 75, 75, 1)
4444
: const Color(0xFFD9D9D9),
4545
width: 1.2,
4646
),
@@ -66,22 +66,22 @@ class ToolBar extends StatelessWidget {
6666
},
6767
backgroundColor:
6868
suprovider.isDark
69-
? Color.fromRGBO(48, 48, 48, 1)
69+
? const Color.fromRGBO(48, 48, 48, 1)
7070
: Colors.white,
7171
iconColor:
7272
suprovider.isDark ? Colors.white : Colors.black87,
7373
),
7474
VerticalCustomDivider(),
7575
_toolIcon(
76-
PhosphorIconsRegular.circlesThreePlus,
76+
provider.getNodeIcon(),
7777
'Add new node',
7878
device,
7979
onPressed: () {
8080
_showNodePicker(context, device, suprovider);
8181
},
8282
backgroundColor:
8383
suprovider.isDark
84-
? Color.fromRGBO(48, 48, 48, 1)
84+
? const Color.fromRGBO(48, 48, 48, 1)
8585
: Colors.white,
8686
iconColor:
8787
suprovider.isDark ? Colors.white : Colors.black87,
@@ -102,7 +102,7 @@ class ToolBar extends StatelessWidget {
102102
},
103103
backgroundColor:
104104
suprovider.isDark
105-
? Color.fromRGBO(48, 48, 48, 1)
105+
? const Color.fromRGBO(48, 48, 48, 1)
106106
: Colors.white,
107107
),
108108
VerticalCustomDivider(),
@@ -121,7 +121,7 @@ class ToolBar extends StatelessWidget {
121121
},
122122
backgroundColor:
123123
suprovider.isDark
124-
? Color.fromRGBO(48, 48, 48, 1)
124+
? const Color.fromRGBO(48, 48, 48, 1)
125125
: Colors.white,
126126
),
127127
VerticalCustomDivider(),
@@ -140,7 +140,7 @@ class ToolBar extends StatelessWidget {
140140
},
141141
backgroundColor:
142142
suprovider.isDark
143-
? Color.fromRGBO(48, 48, 48, 1)
143+
? const Color.fromRGBO(48, 48, 48, 1)
144144
: Colors.white,
145145
),
146146
VerticalCustomDivider(),
@@ -151,7 +151,7 @@ class ToolBar extends StatelessWidget {
151151
onPressed: () {},
152152
backgroundColor:
153153
suprovider.isDark
154-
? Color.fromRGBO(48, 48, 48, 1)
154+
? const Color.fromRGBO(48, 48, 48, 1)
155155
: Colors.white,
156156
iconColor:
157157
suprovider.isDark ? Colors.white : Colors.black87,
@@ -170,7 +170,7 @@ class ToolBar extends StatelessWidget {
170170
_showStickyNote(context, device, suprovider),
171171
backgroundColor:
172172
suprovider.isDark
173-
? Color.fromRGBO(48, 48, 48, 1)
173+
? const Color.fromRGBO(48, 48, 48, 1)
174174
: Colors.white,
175175
),
176176
],
@@ -193,22 +193,22 @@ class ToolBar extends StatelessWidget {
193193
},
194194
backgroundColor:
195195
suprovider.isDark
196-
? Color.fromRGBO(48, 48, 48, 1)
196+
? const Color.fromRGBO(48, 48, 48, 1)
197197
: Colors.white,
198198
iconColor:
199199
suprovider.isDark ? Colors.white : Colors.black87,
200200
),
201201
_horizontalDivider(device),
202202
_toolIcon(
203-
provider.nodeIconProvider(),
203+
provider.getNodeIcon(),
204204
'Add new node',
205205
device,
206206
onPressed: () {
207207
_showNodePicker(context, device, suprovider);
208208
},
209209
backgroundColor:
210210
suprovider.isDark
211-
? Color.fromRGBO(48, 48, 48, 1)
211+
? const Color.fromRGBO(48, 48, 48, 1)
212212
: Colors.white,
213213
iconColor:
214214
suprovider.isDark ? Colors.white : Colors.black87,
@@ -229,7 +229,7 @@ class ToolBar extends StatelessWidget {
229229
},
230230
backgroundColor:
231231
suprovider.isDark
232-
? Color.fromRGBO(48, 48, 48, 1)
232+
? const Color.fromRGBO(48, 48, 48, 1)
233233
: Colors.white,
234234
),
235235
_horizontalDivider(device),
@@ -248,7 +248,7 @@ class ToolBar extends StatelessWidget {
248248
},
249249
backgroundColor:
250250
suprovider.isDark
251-
? Color.fromRGBO(48, 48, 48, 1)
251+
? const Color.fromRGBO(48, 48, 48, 1)
252252
: Colors.white,
253253
),
254254
_horizontalDivider(device),
@@ -267,7 +267,7 @@ class ToolBar extends StatelessWidget {
267267
},
268268
backgroundColor:
269269
suprovider.isDark
270-
? Color.fromRGBO(48, 48, 48, 1)
270+
? const Color.fromRGBO(48, 48, 48, 1)
271271
: Colors.white,
272272
),
273273
_horizontalDivider(device),
@@ -278,7 +278,7 @@ class ToolBar extends StatelessWidget {
278278
onPressed: () {},
279279
backgroundColor:
280280
suprovider.isDark
281-
? Color.fromRGBO(48, 48, 48, 1)
281+
? const Color.fromRGBO(48, 48, 48, 1)
282282
: Colors.white,
283283
iconColor:
284284
suprovider.isDark ? Colors.white : Colors.black87,
@@ -296,7 +296,7 @@ class ToolBar extends StatelessWidget {
296296
() => _showStickyNote(context, device, suprovider),
297297
backgroundColor:
298298
suprovider.isDark
299-
? Color.fromRGBO(48, 48, 48, 1)
299+
? const Color.fromRGBO(48, 48, 48, 1)
300300
: Colors.white,
301301
),
302302
],
@@ -493,4 +493,4 @@ class ToolBar extends StatelessWidget {
493493
);
494494
}
495495
}
496-
}
496+
}

0 commit comments

Comments
 (0)