in components/frontend_flutterflow/src/lib/pages/query/query_widget.dart [55:700]
Widget build(BuildContext context) {
context.watch<FFAppState>();
return GestureDetector(
onTap: () => FocusScope.of(context).requestFocus(_model.unfocusNode),
child: Scaffold(
key: scaffoldKey,
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
body: SafeArea(
top: true,
child: Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Color(0xFFf0f4f9), Color(0xFFf0f4f9)],
stops: [0.0, 1.0],
begin: AlignmentDirectional(-0.64, 1.0),
end: AlignmentDirectional(0.64, -1.0),
),
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 0.0, 0.0),
child: InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
hoverColor: Colors.transparent,
highlightColor: Colors.transparent,
onTap: () async {
context.pushNamed('Landing');
},
child: wrapWithModel(
model: _model.logoHeaderModel,
updateCallback: () => setState(() {}),
child: LogoHeaderWidget(),
),
),
),
Expanded(
child: Align(
alignment: AlignmentDirectional(0.0, 0.0),
child: Container(
width: double.infinity,
height: double.infinity,
constraints: BoxConstraints(
maxWidth: 1200.0,
),
decoration: BoxDecoration(),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
15.0, 0.0, 15.0, 0.0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0, 30.0, 0.0, 30.0),
child: Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Expanded(
child: Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
blurRadius: 5.0,
color: Color(0x00FFFFFF),
offset: Offset(1.0, 2.0),
)
],
gradient: LinearGradient(
colors: [
Color(0xFFFFFFFF),
Color(0xFFFFFFFF)
],
stops: [0.0, 1.0],
begin: AlignmentDirectional(
-0.64, 1.0),
end: AlignmentDirectional(
0.64, -1.0),
),
borderRadius:
BorderRadius.circular(
15.0),
border: Border.all(
color: Color(0x37FFFFFF),
),
),
child: Column(
mainAxisSize:
MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
10.0,
6.0,
10.0,
0.0),
child: Row(
mainAxisSize:
MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
FlutterFlowIconButton(
borderColor: Color(
0x004490DB),
borderRadius: 10.0,
borderWidth: 1.0,
buttonSize: 40.0,
hoverColor:
FlutterFlowTheme.of(
context)
.primary,
hoverIconColor:
Colors.white,
icon: Icon(
Icons
.arrow_back_rounded,
color: Color(
0xFF969DA9),
size: 17.0,
),
onPressed:
() async {
context.safePop();
},
),
Text(
'New Document Search',
style: FlutterFlowTheme
.of(context)
.bodyMedium
.override(
fontFamily:
'Poppins',
color: FlutterFlowTheme.of(
context)
.secondaryText,
fontSize:
12.0,
),
),
FlutterFlowIconButton(
borderColor: Color(
0x004490DB),
borderRadius: 10.0,
borderWidth: 1.0,
buttonSize: 40.0,
hoverColor:
FlutterFlowTheme.of(
context)
.primary,
hoverIconColor:
Colors.white,
icon: FaIcon(
FontAwesomeIcons
.edit,
color: Color(
0xFF969DA9),
size: 15.0,
),
onPressed: () {
print(
'IconButton pressed ...');
},
),
],
),
),
Expanded(
child:
SingleChildScrollView(
child: Column(
mainAxisSize:
MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment
.end,
children: [
Container(
width: double
.infinity,
constraints:
BoxConstraints(
maxWidth: 720.0,
),
decoration:
BoxDecoration(),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
0.0,
15.0,
0.0,
5.0),
child: Row(
mainAxisSize:
MainAxisSize
.max,
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
Expanded(
flex: 1,
child:
Container(
width:
100.0,
height:
20.0,
decoration:
BoxDecoration(),
),
),
Expanded(
flex: 4,
child:
Row(
mainAxisSize:
MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.end,
children: [
Flexible(
child:
Container(
decoration: BoxDecoration(
color: Color(0xFFf0f4f9),
borderRadius: BorderRadius.circular(18.0),
),
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(15.0, 10.0, 15.0, 10.0),
child: Text(
valueOrDefault<String>(
FFAppState().promptText,
'Prompt Text',
),
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Poppins',
color: Color(0xFF000000),
fontSize: 11.5,
fontWeight: FontWeight.normal,
),
),
),
),
),
],
),
),
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
7.0,
4.0,
7.0,
0.0),
child:
Container(
width:
30.0,
height:
30.0,
decoration:
BoxDecoration(
color:
FlutterFlowTheme.of(context).secondaryBackground,
image:
DecorationImage(
fit:
BoxFit.cover,
image:
Image.asset(
'assets/images/image_1.png',
).image,
),
shape:
BoxShape.circle,
border:
Border.all(
color:
FlutterFlowTheme.of(context).customColor1,
width:
1.5,
),
),
),
),
],
),
),
),
if (FFAppState()
.awaitingReply ==
true)
Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
10.0,
0.0,
10.0,
0.0),
child:
Container(
width: double
.infinity,
height: 50.0,
constraints:
BoxConstraints(
maxWidth:
700.0,
),
decoration:
BoxDecoration(),
child: Row(
mainAxisSize:
MainAxisSize
.max,
children: [
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0,
3.0,
0.0,
0.0),
child:
Container(
width:
37.0,
height:
37.0,
decoration:
BoxDecoration(
image:
DecorationImage(
fit: BoxFit.contain,
image: Image.asset(
'assets/images/bardStars.png',
).image,
),
),
),
),
Lottie
.asset(
'assets/lottie_animations/6652-dote-typing-animation.json',
width:
38.0,
height:
72.0,
fit: BoxFit
.fitHeight,
animate:
true,
),
],
),
),
),
if (FFAppState()
.awaitingReply !=
true)
Padding(
padding: EdgeInsetsDirectional
.fromSTEB(
10.0,
10.0,
10.0,
0.0),
child:
Container(
width: double
.infinity,
constraints:
BoxConstraints(
maxWidth:
720.0,
),
decoration:
BoxDecoration(),
child: Align(
alignment:
AlignmentDirectional(
0.0,
1.0),
child:
wrapWithModel(
model: _model
.queryResultModel,
updateCallback:
() =>
setState(() {}),
child:
QueryResultWidget(
human:
false,
ai: true,
queryResponse:
getJsonField(
_model
.queryDocumentEngineResult,
r'''$.data.query_result.response''',
).toString(),
queryReference:
getJsonField(
_model
.queryDocumentEngineResult,
r'''$.data.query_references''',
),
),
),
),
),
),
],
),
),
),
Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
0.0,
30.0,
0.0,
30.0),
child: Container(
width: double.infinity,
constraints:
BoxConstraints(
maxWidth: 750.0,
),
decoration:
BoxDecoration(),
child: Padding(
padding:
EdgeInsetsDirectional
.fromSTEB(
10.0,
0.0,
10.0,
0.0),
child: Row(
mainAxisSize:
MainAxisSize
.max,
mainAxisAlignment:
MainAxisAlignment
.center,
children: [
Expanded(
child:
Container(
width: double
.infinity,
constraints:
BoxConstraints(
maxWidth:
750.0,
),
decoration:
BoxDecoration(
color: Color(0x69FFFFFF),
borderRadius:
BorderRadius.circular(
30.0),
border:
Border
.all(
color: FlutterFlowTheme.of(
context)
.secondaryText,
width:
0.25,
),
),
child: Row(
mainAxisSize:
MainAxisSize
.max,
mainAxisAlignment:
MainAxisAlignment
.center,
children: [
Expanded(
flex: 3,
child:
Container(
width:
double.infinity,
decoration:
BoxDecoration(),
child:
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0,
0.0,
8.0,
0.0),
child:
Container(
width: double.infinity,
child: TextFormField(
controller: _model.promptController,
onFieldSubmitted: (_) async {
setState(() {
FFAppState().promptText = _model.promptController.text;
});
setState(() {
FFAppState().awaitingReply = true;
});
setState(() {
_model.promptController?.clear();
});
_model.queryDocumentEngineResultPromptSubmit = await action_blocks.queryDocumentEngine(context);
setState(() {
_model.queryDocumentEngineResult = _model.queryDocumentEngineResultPromptSubmit;
});
setState(() {});
},
autofocus: true,
obscureText: false,
decoration: InputDecoration(
isDense: true,
labelStyle: FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Poppins',
fontSize: 12.0,
),
hintText: 'Ask me anything...',
hintStyle: FlutterFlowTheme.of(context).labelMedium.override(
fontFamily: 'Poppins',
fontSize: 12.0,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
errorBorder: InputBorder.none,
focusedErrorBorder: InputBorder.none,
contentPadding: EdgeInsetsDirectional.fromSTEB(20.0, 15.0, 20.0, 15.0),
),
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Poppins',
fontSize: 12.0,
),
validator: _model.promptControllerValidator.asValidator(context),
),
),
),
),
),
SizedBox(
height:
40.0,
child:
VerticalDivider(
thickness:
0.25,
color:
FlutterFlowTheme.of(context).secondaryText,
),
),
Expanded(
flex: 1,
child:
Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.0,
0.0,
20.0,
0.0),
child:
Container(
width:
100.0,
decoration:
BoxDecoration(),
child:
Text(
'Query Engine',
textAlign: TextAlign.center,
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Poppins',
color: FlutterFlowTheme.of(context).secondaryText,
fontSize: 11.0,
),
),
),
),
),
],
),
),
),
],
),
),
),
),
],
),
),
),
],
),
),
],
),
),
),
),
],
),
),
),
),
),
],
),
),
),
),
);
}