@@ -130,6 +130,7 @@ class _DartPadAppState extends State<DartPadApp> {
130
130
final channelParam = state.uri.queryParameters['channel' ];
131
131
final embedMode = state.uri.queryParameters['embed' ] == 'true' ;
132
132
final runOnLoad = state.uri.queryParameters['run' ] == 'true' ;
133
+ final useGenui = state.uri.queryParameters['genui' ] == 'true' ;
133
134
134
135
return DartPadMainPage (
135
136
initialChannel: channelParam,
@@ -139,6 +140,7 @@ class _DartPadAppState extends State<DartPadApp> {
139
140
builtinSampleId: builtinSampleId,
140
141
flutterSampleId: flutterSampleId,
141
142
handleBrightnessChanged: handleBrightnessChanged,
143
+ useGenui: useGenui,
142
144
);
143
145
}
144
146
@@ -206,6 +208,7 @@ class DartPadMainPage extends StatefulWidget {
206
208
final String ? gistId;
207
209
final String ? builtinSampleId;
208
210
final String ? flutterSampleId;
211
+ final bool useGenui;
209
212
210
213
DartPadMainPage ({
211
214
required this .initialChannel,
@@ -215,6 +218,7 @@ class DartPadMainPage extends StatefulWidget {
215
218
this .gistId,
216
219
this .builtinSampleId,
217
220
this .flutterSampleId,
221
+ this .useGenui = false ,
218
222
}) : super (
219
223
key: ValueKey (
220
224
'sample:$builtinSampleId gist:$gistId flutter:$flutterSampleId ' ,
@@ -298,6 +302,10 @@ class _DartPadMainPageState extends State<DartPadMainPage>
298
302
}
299
303
});
300
304
appModel.compilingState.addListener (_handleRunStarted);
305
+
306
+ debugPrint (
307
+ 'initialized: useGenui = ${widget .useGenui }, channel = $channel .' ,
308
+ );
301
309
}
302
310
303
311
@override
@@ -697,13 +705,20 @@ class DartPadAppBar extends StatelessWidget implements PreferredSizeWidget {
697
705
LocalStorage .instance.saveLastCreateCodePrompt (promptResponse.prompt);
698
706
699
707
try {
700
- final stream = appServices.generateCode (
701
- GenerateCodeRequest (
702
- appType: promptResponse.appType,
703
- prompt: promptResponse.prompt,
704
- attachments: promptResponse.attachments,
705
- ),
706
- );
708
+ final Stream <String > stream;
709
+ if (widget.useGenui) {
710
+ stream = appServices.generateUi (
711
+ GenerateUiRequest (prompt: promptResponse.prompt),
712
+ );
713
+ } else {
714
+ stream = appServices.generateCode (
715
+ GenerateCodeRequest (
716
+ appType: promptResponse.appType,
717
+ prompt: promptResponse.prompt,
718
+ attachments: promptResponse.attachments,
719
+ ),
720
+ );
721
+ }
707
722
708
723
final generateResponse = await showDialog <String >(
709
724
context: context,
0 commit comments