fixed errors and removed dependency on flutterflowtheme. next working on getting it running.
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||||
#include "Generated.xcconfig"
|
#include "Generated.xcconfig"
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
#include "Generated.xcconfig"
|
#include "Generated.xcconfig"
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# Uncomment this line to define a global platform for your project
|
||||||
|
# platform :ios, '12.0'
|
||||||
|
|
||||||
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||||
|
|
||||||
|
project 'Runner', {
|
||||||
|
'Debug' => :debug,
|
||||||
|
'Profile' => :release,
|
||||||
|
'Release' => :release,
|
||||||
|
}
|
||||||
|
|
||||||
|
def flutter_root
|
||||||
|
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
|
||||||
|
unless File.exist?(generated_xcode_build_settings_path)
|
||||||
|
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
|
||||||
|
end
|
||||||
|
|
||||||
|
File.foreach(generated_xcode_build_settings_path) do |line|
|
||||||
|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
|
||||||
|
return matches[1].strip if matches
|
||||||
|
end
|
||||||
|
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
|
||||||
|
end
|
||||||
|
|
||||||
|
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
|
||||||
|
|
||||||
|
flutter_ios_podfile_setup
|
||||||
|
|
||||||
|
target 'Runner' do
|
||||||
|
use_frameworks!
|
||||||
|
use_modular_headers!
|
||||||
|
|
||||||
|
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
|
||||||
|
target 'RunnerTests' do
|
||||||
|
inherit! :search_paths
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
post_install do |installer|
|
||||||
|
installer.pods_project.targets.each do |target|
|
||||||
|
flutter_additional_ios_build_settings(target)
|
||||||
|
end
|
||||||
|
end
|
||||||
+2
-2
@@ -11,11 +11,11 @@ class ConversationDetailsOverlayModel
|
|||||||
/// State fields for stateful widgets in this component.
|
/// State fields for stateful widgets in this component.
|
||||||
|
|
||||||
// Model for OptionsDialog component.
|
// Model for OptionsDialog component.
|
||||||
late OptionsDialogModel optionsDialogModel;
|
late PopupModel optionsDialogModel;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState(BuildContext context) {
|
void initState(BuildContext context) {
|
||||||
optionsDialogModel = createModel(context, () => OptionsDialogModel());
|
optionsDialogModel = createModel(context, () => PopupModel());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
+27
-40
@@ -5,6 +5,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'conversation_details_overlay_model.dart';
|
import 'conversation_details_overlay_model.dart';
|
||||||
export 'conversation_details_overlay_model.dart';
|
export 'conversation_details_overlay_model.dart';
|
||||||
|
|
||||||
@@ -73,29 +75,24 @@ class _ConversationDetailsOverlayWidgetState
|
|||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
const Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(16, 0, 0, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(16, 0, 0, 0),
|
||||||
child: Text(
|
child: Text(
|
||||||
'Chat Details',
|
'Chat Details',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme
|
style: AppTheme.headlineSmall,
|
||||||
.headlineSmall
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Outfit',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 0, 16, 0),
|
padding: const EdgeInsetsDirectional.fromSTEB(0, 0, 16, 0),
|
||||||
child: FlutterFlowIconButton(
|
child: FlutterFlowIconButton(
|
||||||
borderColor: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
borderColor: AppTheme.alternate,
|
||||||
borderRadius: 12,
|
borderRadius: 12,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
buttonSize: 40,
|
buttonSize: 40,
|
||||||
fillColor: AppAppAppAppAppAppAppAppAppTheme.accent4,
|
fillColor: AppTheme.accent4,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.close_rounded,
|
Icons.close_rounded,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryText,
|
color: AppTheme.primaryTextColor,
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
@@ -109,38 +106,34 @@ class _ConversationDetailsOverlayWidgetState
|
|||||||
padding: const EdgeInsetsDirectional.fromSTEB(16, 4, 0, 4),
|
padding: const EdgeInsetsDirectional.fromSTEB(16, 4, 0, 4),
|
||||||
child: RichText(
|
child: RichText(
|
||||||
textScaler: MediaQuery.of(context).textScaler,
|
textScaler: MediaQuery.of(context).textScaler,
|
||||||
text: TextSpan(
|
text: const TextSpan(
|
||||||
children: [
|
children: [
|
||||||
const TextSpan(
|
TextSpan(
|
||||||
text: 'Group Chat ID: ',
|
text: 'Group Chat ID: ',
|
||||||
style: TextStyle(),
|
style: TextStyle(),
|
||||||
),
|
),
|
||||||
TextSpan(
|
TextSpan(
|
||||||
text: 'Hello World ',
|
text: 'Hello World ',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primary,
|
color: AppTheme.primary,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
style:
|
style: AppTheme.labelMedium,
|
||||||
AppAppAppAppAppAppAppAppAppTheme.labelMedium.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
const Expanded(
|
||||||
Expanded(
|
|
||||||
child: Align(
|
child: Align(
|
||||||
alignment: const AlignmentDirectional(0, 0),
|
alignment: AlignmentDirectional(0, 0),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Divider(
|
Divider(
|
||||||
thickness: 1,
|
thickness: 1,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.tertiary,
|
color: AppTheme.tertiary,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -154,18 +147,18 @@ class _ConversationDetailsOverlayWidgetState
|
|||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme
|
color: AppTheme
|
||||||
.secondaryBackground,
|
.secondaryBackground,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
color: AppTheme.alternate,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: wrapWithModel(
|
child: wrapWithModel(
|
||||||
model: _model.optionsDialogModel,
|
model: _model.optionsDialogModel,
|
||||||
updateCallback: () => setState(() {}),
|
updateCallback: () => setState(() {}),
|
||||||
updateOnChange: true,
|
updateOnChange: true,
|
||||||
child: OptionsDialogWidget(),
|
child: const PopupWidget(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -185,26 +178,20 @@ class _ConversationDetailsOverlayWidgetState
|
|||||||
iconPadding:
|
iconPadding:
|
||||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||||
color:
|
color:
|
||||||
AppAppAppAppAppAppAppAppAppTheme.secondaryBackground,
|
AppTheme.secondaryBackground,
|
||||||
textStyle:
|
textStyle: AppTheme.titleLarge,
|
||||||
AppAppAppAppAppAppAppAppAppTheme.titleLarge.override(
|
|
||||||
fontFamily: 'Outfit',
|
|
||||||
fontSize: 18,
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
borderSide: BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
color: AppTheme.alternate,
|
||||||
width: 2,
|
width: 2,
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
hoverColor: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
hoverColor: AppTheme.alternate,
|
||||||
hoverBorderSide: BorderSide(
|
hoverBorderSide: const BorderSide(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
color: AppTheme.alternate,
|
||||||
width: 2,
|
width: 2,
|
||||||
),
|
),
|
||||||
hoverTextColor:
|
hoverTextColor: AppTheme.primaryTextColor,
|
||||||
AppAppAppAppAppAppAppAppAppTheme.primaryText,
|
|
||||||
hoverElevation: 3,
|
hoverElevation: 3,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'conversation_options_model.dart';
|
import 'conversation_options_model.dart';
|
||||||
export 'conversation_options_model.dart';
|
export 'conversation_options_model.dart';
|
||||||
|
|
||||||
@@ -40,8 +42,8 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryBackground,
|
color: AppTheme.secondaryBackground,
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 12, 0, 24),
|
padding: const EdgeInsetsDirectional.fromSTEB(0, 12, 0, 24),
|
||||||
@@ -60,35 +62,30 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
|||||||
children: [
|
children: [
|
||||||
Card(
|
Card(
|
||||||
clipBehavior: Clip.antiAliasWithSaveLayer,
|
clipBehavior: Clip.antiAliasWithSaveLayer,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
color: AppTheme.primaryBackground,
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(40),
|
borderRadius: BorderRadius.circular(40),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: const Padding(
|
||||||
padding: const EdgeInsets.all(8),
|
padding: EdgeInsets.all(8),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.share_rounded,
|
Icons.share_rounded,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
const Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Share',
|
'Share',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme
|
style: AppTheme.labelLarge,
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -109,35 +106,30 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
|||||||
children: [
|
children: [
|
||||||
Card(
|
Card(
|
||||||
clipBehavior: Clip.antiAliasWithSaveLayer,
|
clipBehavior: Clip.antiAliasWithSaveLayer,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
color: AppTheme.primaryBackground,
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(40),
|
borderRadius: BorderRadius.circular(40),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: const Padding(
|
||||||
padding: const EdgeInsets.all(8),
|
padding: EdgeInsets.all(8),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.insert_link,
|
Icons.insert_link,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
const Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Get Link',
|
'Get Link',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme
|
style: AppTheme.labelLarge,
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -158,35 +150,30 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
|||||||
children: [
|
children: [
|
||||||
Card(
|
Card(
|
||||||
clipBehavior: Clip.antiAliasWithSaveLayer,
|
clipBehavior: Clip.antiAliasWithSaveLayer,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
color: AppTheme.primaryBackground,
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(40),
|
borderRadius: BorderRadius.circular(40),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: const Padding(
|
||||||
padding: const EdgeInsets.all(8),
|
padding: EdgeInsets.all(8),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.mode_edit,
|
Icons.mode_edit,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
const Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Model selection',
|
'Model selection',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme
|
style: AppTheme.labelLarge,
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -207,35 +194,30 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
|||||||
children: [
|
children: [
|
||||||
Card(
|
Card(
|
||||||
clipBehavior: Clip.antiAliasWithSaveLayer,
|
clipBehavior: Clip.antiAliasWithSaveLayer,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
color: AppTheme.primaryBackground,
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(40),
|
borderRadius: BorderRadius.circular(40),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: const Padding(
|
||||||
padding: const EdgeInsets.all(8),
|
padding: EdgeInsets.all(8),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.hide_source,
|
Icons.hide_source,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 20,
|
size: 20,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
const Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Private',
|
'Private',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme
|
style: AppTheme.labelLarge,
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -13,20 +13,19 @@ class ConversationThreadModel
|
|||||||
|
|
||||||
final formKey = GlobalKey<FormState>();
|
final formKey = GlobalKey<FormState>();
|
||||||
// Model for ConversationBubbles component.
|
// Model for ConversationBubbles component.
|
||||||
late ConversationBubblesModel conversationBubblesModel;
|
//late ConversationBubblesModel conversationBubblesModel;
|
||||||
// Model for PromptBox component.
|
// Model for PromptBox component.
|
||||||
late PromptBoxModel promptBoxModel;
|
late PromptBoxModel promptBoxModel;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState(BuildContext context) {
|
void initState(BuildContext context) {
|
||||||
conversationBubblesModel =
|
//conversationBubblesModel = createModel(context, () => ConversationBubblesModel());
|
||||||
createModel(context, () => ConversationBubblesModel());
|
|
||||||
promptBoxModel = createModel(context, () => PromptBoxModel());
|
promptBoxModel = createModel(context, () => PromptBoxModel());
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
conversationBubblesModel.dispose();
|
//conversationBubblesModel.dispose();
|
||||||
promptBoxModel.dispose();
|
promptBoxModel.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'conversation_thread_model.dart';
|
import 'conversation_thread_model.dart';
|
||||||
export 'conversation_thread_model.dart';
|
export 'conversation_thread_model.dart';
|
||||||
|
|
||||||
@@ -44,8 +46,8 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
|||||||
return Container(
|
return Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
height: double.infinity,
|
height: double.infinity,
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
color: AppTheme.primaryBackground,
|
||||||
),
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
@@ -71,20 +73,21 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
|||||||
minHeight: MediaQuery.sizeOf(context).height * 1,
|
minHeight: MediaQuery.sizeOf(context).height * 1,
|
||||||
),
|
),
|
||||||
decoration: const BoxDecoration(),
|
decoration: const BoxDecoration(),
|
||||||
child: wrapWithModel(
|
//child: wrapWithModel(
|
||||||
model: _model.conversationBubblesModel,
|
//model: _model.conversationBubblesModel,
|
||||||
updateCallback: () => setState(() {}),
|
//updateCallback: () => setState(() {}),
|
||||||
child: ConversationBubblesWidget(),
|
//child: ConversationBubblesWidget(),
|
||||||
),
|
//child: const Text("test"),
|
||||||
|
//),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryBackground,
|
color: AppTheme.secondaryBackground,
|
||||||
boxShadow: const [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
blurRadius: 3,
|
blurRadius: 3,
|
||||||
color: Color(0x33000000),
|
color: Color(0x33000000),
|
||||||
@@ -95,6 +98,7 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
// TODO
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
@@ -110,44 +114,45 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
|||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
FlutterFlowMediaDisplay(
|
// FlutterFlowMediaDisplay(
|
||||||
path: '',
|
// path: '',
|
||||||
imageBuilder: (path) => ClipRRect(
|
// imageBuilder: (path) => ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(8),
|
// borderRadius: BorderRadius.circular(8),
|
||||||
child: CachedNetworkImage(
|
// child: CachedNetworkImage(
|
||||||
fadeInDuration: const Duration(milliseconds: 500),
|
// fadeInDuration: const Duration(milliseconds: 500),
|
||||||
fadeOutDuration:
|
// fadeOutDuration:
|
||||||
const Duration(milliseconds: 500),
|
// const Duration(milliseconds: 500),
|
||||||
imageUrl: path,
|
// imageUrl: path,
|
||||||
width: 120,
|
// width: 120,
|
||||||
height: 100,
|
// height: 100,
|
||||||
fit: BoxFit.cover,
|
// fit: BoxFit.cover,
|
||||||
),
|
// ),
|
||||||
),
|
// ),
|
||||||
videoPlayerBuilder: (path) =>
|
// TODO
|
||||||
FlutterFlowVideoPlayer(
|
// videoPlayerBuilder: (path) =>
|
||||||
path: path,
|
// FlutterFlowVideoPlayer(
|
||||||
width: 300,
|
// path: path,
|
||||||
autoPlay: false,
|
// width: 300,
|
||||||
looping: true,
|
// autoPlay: false,
|
||||||
showControls: true,
|
// looping: true,
|
||||||
allowFullScreen: true,
|
// showControls: true,
|
||||||
allowPlaybackSpeedMenu: false,
|
// allowFullScreen: true,
|
||||||
),
|
// allowPlaybackSpeedMenu: false,
|
||||||
),
|
// ),
|
||||||
|
// ),
|
||||||
Align(
|
Align(
|
||||||
alignment: const AlignmentDirectional(-1, -1),
|
alignment: const AlignmentDirectional(-1, -1),
|
||||||
child: FlutterFlowIconButton(
|
child: FlutterFlowIconButton(
|
||||||
borderColor:
|
borderColor:
|
||||||
AppAppAppAppAppAppAppAppAppTheme.error,
|
AppTheme.error,
|
||||||
borderRadius: 20,
|
borderRadius: 20,
|
||||||
borderWidth: 2,
|
borderWidth: 2,
|
||||||
buttonSize: 40,
|
buttonSize: 40,
|
||||||
fillColor: AppAppAppAppAppAppAppAppAppTheme
|
fillColor: AppTheme
|
||||||
.primaryBackground,
|
.primaryBackground,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.delete_outline_rounded,
|
Icons.delete_outline_rounded,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.error,
|
color: AppTheme.error,
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -173,7 +178,7 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
|||||||
child: wrapWithModel(
|
child: wrapWithModel(
|
||||||
model: _model.promptBoxModel,
|
model: _model.promptBoxModel,
|
||||||
updateCallback: () => setState(() {}),
|
updateCallback: () => setState(() {}),
|
||||||
child: PromptBoxWidget(),
|
child: const PromptBoxWidget(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'model_item_model.dart';
|
import 'model_item_model.dart';
|
||||||
export 'model_item_model.dart';
|
export 'model_item_model.dart';
|
||||||
|
|
||||||
@@ -48,7 +50,7 @@ class _ModelItemWidgetState extends State<ModelItemWidget> {
|
|||||||
}),
|
}),
|
||||||
child: Container(
|
child: Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
color: AppTheme.primaryBackground,
|
||||||
borderRadius: BorderRadius.circular(0),
|
borderRadius: BorderRadius.circular(0),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
@@ -60,29 +62,25 @@ class _ModelItemWidgetState extends State<ModelItemWidget> {
|
|||||||
width: 40,
|
width: 40,
|
||||||
height: 40,
|
height: 40,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.accent1,
|
color: AppTheme.accent1,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primary,
|
color: AppTheme.primary,
|
||||||
width: 2,
|
width: 2,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Align(
|
child: const Align(
|
||||||
alignment: const AlignmentDirectional(0, 0),
|
alignment: AlignmentDirectional(0, 0),
|
||||||
child: Text(
|
child: Text(
|
||||||
'A',
|
'A',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme.bodyLarge.override(
|
style: AppTheme.bodyLarge,
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
const Expanded(
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 8, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 8, 0),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
@@ -90,22 +88,13 @@ class _ModelItemWidgetState extends State<ModelItemWidget> {
|
|||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Randy Peterson',
|
'Randy Peterson',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme.bodyMedium.override(
|
style: AppTheme.bodyMedium,
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 4, 0, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(0, 4, 0, 0),
|
||||||
child: Text(
|
child: Text(
|
||||||
'name@domainname.com',
|
'name@domainname.com',
|
||||||
style:
|
style: AppTheme.bodySmall,
|
||||||
AppAppAppAppAppAppAppAppAppTheme.bodySmall.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primary,
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'no_chats_model.dart';
|
import 'no_chats_model.dart';
|
||||||
export 'no_chats_model.dart';
|
export 'no_chats_model.dart';
|
||||||
|
|
||||||
@@ -59,11 +61,7 @@ class _NoChatsWidgetState extends State<NoChatsWidget> {
|
|||||||
child: Text(
|
child: Text(
|
||||||
widget.title,
|
widget.title,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme.headlineSmall.override(
|
style: AppTheme.headlineSmall,
|
||||||
fontFamily: 'Outfit',
|
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryText,
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
@@ -71,10 +69,7 @@ class _NoChatsWidgetState extends State<NoChatsWidget> {
|
|||||||
child: Text(
|
child: Text(
|
||||||
widget.body,
|
widget.body,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme.labelMedium.override(
|
style: AppTheme.labelMedium,
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||||
import 'options_dialog_widget.dart' show OptionsDialogWidget;
|
import 'options_dialog_widget.dart' show PopupWidget;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class OptionsDialogModel extends FlutterFlowModel<OptionsDialogWidget> {
|
class OptionsDialogModel extends FlutterFlowModel<PopupWidget> {
|
||||||
/// State fields for stateful widgets in this component.
|
/// State fields for stateful widgets in this component.
|
||||||
|
|
||||||
// State field(s) for MouseRegion widget.
|
// State field(s) for MouseRegion widget.
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import '/components/popup/popup_model.dart';
|
import '/components/popup/popup_model.dart';
|
||||||
export '/components/popup/popup_model.dart';
|
export '/components/popup/popup_model.dart';
|
||||||
|
|
||||||
@@ -78,20 +80,12 @@ class _PopupWidgetState extends State<PopupWidget> {
|
|||||||
Row(
|
Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
const Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),
|
||||||
child: Text(
|
child: Text(
|
||||||
'Refine the components modal.',
|
'Refine the components modal.',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme
|
style: AppTheme.headlineMedium,
|
||||||
.headlineMedium
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Outfit',
|
|
||||||
color: const Color(0xFF14181B),
|
|
||||||
fontSize: 24,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -116,15 +110,9 @@ class _PopupWidgetState extends State<PopupWidget> {
|
|||||||
thickness: 2,
|
thickness: 2,
|
||||||
color: Color(0xFFF1F4F8),
|
color: Color(0xFFF1F4F8),
|
||||||
),
|
),
|
||||||
Text(
|
const Text(
|
||||||
'FlutterFlow is a visual development platform that allows you to easily create beautiful and responsive user interfaces for your mobile and web applications. With its drag-and-drop interface and pre-built components, you can quickly prototype and build your app without writing any code. \nAdditionally, FlutterFlow\'s real-time preview feature allows you to see your changes in real-time and make adjustments on the fly.',
|
'FlutterFlow is a visual development platform that allows you to easily create beautiful and responsive user interfaces for your mobile and web applications. With its drag-and-drop interface and pre-built components, you can quickly prototype and build your app without writing any code. \nAdditionally, FlutterFlow\'s real-time preview feature allows you to see your changes in real-time and make adjustments on the fly.',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme.labelMedium.override(
|
style: AppTheme.labelMedium,
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: const Color(0xFF57636C),
|
|
||||||
fontSize: 14,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 16, 0, 0),
|
padding: const EdgeInsetsDirectional.fromSTEB(0, 16, 0, 0),
|
||||||
@@ -144,14 +132,7 @@ class _PopupWidgetState extends State<PopupWidget> {
|
|||||||
iconPadding:
|
iconPadding:
|
||||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
textStyle:
|
textStyle: AppTheme.bodySmall,
|
||||||
AppAppAppAppAppAppAppAppAppTheme.bodySmall.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: const Color(0xFF14181B),
|
|
||||||
fontSize: 12,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
),
|
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
borderSide: const BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: Color(0xFFF1F4F8),
|
color: Color(0xFFF1F4F8),
|
||||||
@@ -174,15 +155,7 @@ class _PopupWidgetState extends State<PopupWidget> {
|
|||||||
iconPadding:
|
iconPadding:
|
||||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||||
color: const Color(0xFF4B39EF),
|
color: const Color(0xFF4B39EF),
|
||||||
textStyle: AppAppAppAppAppAppAppAppAppTheme
|
textStyle: AppTheme.titleSmall,
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: Colors.white,
|
|
||||||
fontSize: 16,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
),
|
|
||||||
elevation: 3,
|
elevation: 3,
|
||||||
borderSide: const BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'popup_model.dart';
|
import 'popup_model.dart';
|
||||||
export 'popup_model.dart';
|
export 'popup_model.dart';
|
||||||
|
|
||||||
@@ -78,20 +80,12 @@ class _PopupWidgetState extends State<PopupWidget> {
|
|||||||
Row(
|
Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
const Expanded(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),
|
||||||
child: Text(
|
child: Text(
|
||||||
'Refine the components modal.',
|
'Refine the components modal.',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme
|
style: AppTheme.headlineMedium,
|
||||||
.headlineMedium
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Outfit',
|
|
||||||
color: const Color(0xFF14181B),
|
|
||||||
fontSize: 24,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -116,15 +110,9 @@ class _PopupWidgetState extends State<PopupWidget> {
|
|||||||
thickness: 2,
|
thickness: 2,
|
||||||
color: Color(0xFFF1F4F8),
|
color: Color(0xFFF1F4F8),
|
||||||
),
|
),
|
||||||
Text(
|
const Text(
|
||||||
'FlutterFlow is a visual development platform that allows you to easily create beautiful and responsive user interfaces for your mobile and web applications. With its drag-and-drop interface and pre-built components, you can quickly prototype and build your app without writing any code. \nAdditionally, FlutterFlow\'s real-time preview feature allows you to see your changes in real-time and make adjustments on the fly.',
|
'FlutterFlow is a visual development platform that allows you to easily create beautiful and responsive user interfaces for your mobile and web applications. With its drag-and-drop interface and pre-built components, you can quickly prototype and build your app without writing any code. \nAdditionally, FlutterFlow\'s real-time preview feature allows you to see your changes in real-time and make adjustments on the fly.',
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme.labelMedium.override(
|
style: AppTheme.labelMedium,
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: const Color(0xFF57636C),
|
|
||||||
fontSize: 14,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 16, 0, 0),
|
padding: const EdgeInsetsDirectional.fromSTEB(0, 16, 0, 0),
|
||||||
@@ -144,14 +132,7 @@ class _PopupWidgetState extends State<PopupWidget> {
|
|||||||
iconPadding:
|
iconPadding:
|
||||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
textStyle:
|
textStyle: AppTheme.bodySmall,
|
||||||
AppAppAppAppAppAppAppAppAppTheme.bodySmall.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: const Color(0xFF14181B),
|
|
||||||
fontSize: 12,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
),
|
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
borderSide: const BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: Color(0xFFF1F4F8),
|
color: Color(0xFFF1F4F8),
|
||||||
@@ -174,15 +155,7 @@ class _PopupWidgetState extends State<PopupWidget> {
|
|||||||
iconPadding:
|
iconPadding:
|
||||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||||
color: const Color(0xFF4B39EF),
|
color: const Color(0xFF4B39EF),
|
||||||
textStyle: AppAppAppAppAppAppAppAppAppTheme
|
textStyle: AppTheme.titleSmall,
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: Colors.white,
|
|
||||||
fontSize: 16,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
),
|
|
||||||
elevation: 3,
|
elevation: 3,
|
||||||
borderSide: const BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'prompt_box_model.dart';
|
import 'prompt_box_model.dart';
|
||||||
export 'prompt_box_model.dart';
|
export 'prompt_box_model.dart';
|
||||||
|
|
||||||
@@ -45,7 +47,7 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
|||||||
child: Container(
|
child: Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryBackground,
|
color: AppTheme.secondaryBackground,
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
),
|
),
|
||||||
alignment: const AlignmentDirectional(0, 0),
|
alignment: const AlignmentDirectional(0, 0),
|
||||||
@@ -65,9 +67,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
|||||||
borderRadius: 30,
|
borderRadius: 30,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
buttonSize: 40,
|
buttonSize: 40,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.file_upload_outlined,
|
Icons.file_upload_outlined,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -84,9 +86,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
|||||||
borderRadius: 30,
|
borderRadius: 30,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
buttonSize: 40,
|
buttonSize: 40,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.photo_outlined,
|
Icons.photo_outlined,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -103,9 +105,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
|||||||
borderRadius: 30,
|
borderRadius: 30,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
buttonSize: 40,
|
buttonSize: 40,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.mic_none,
|
Icons.mic_none,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -122,9 +124,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
|||||||
borderRadius: 30,
|
borderRadius: 30,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
buttonSize: 40,
|
buttonSize: 40,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.videocam_outlined,
|
Icons.videocam_outlined,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -141,9 +143,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
|||||||
borderRadius: 30,
|
borderRadius: 30,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
buttonSize: 40,
|
buttonSize: 40,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.camera_alt_outlined,
|
Icons.camera_alt_outlined,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
@@ -175,16 +177,10 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
|||||||
obscureText: false,
|
obscureText: false,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
isDense: false,
|
isDense: false,
|
||||||
counterStyle: AppAppAppAppAppAppAppAppAppTheme
|
counterStyle: AppTheme.bodyMedium,
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
enabledBorder: OutlineInputBorder(
|
enabledBorder: OutlineInputBorder(
|
||||||
borderSide: BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
color: AppTheme.secondaryText,
|
||||||
width: 2,
|
width: 2,
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
@@ -211,19 +207,14 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
|||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
),
|
),
|
||||||
filled: true,
|
filled: true,
|
||||||
fillColor: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
fillColor: AppTheme.alternate,
|
||||||
suffixIcon: Icon(
|
suffixIcon: const Icon(
|
||||||
Icons.send,
|
Icons.send,
|
||||||
color: AppAppAppAppAppAppAppAppAppTheme.primary,
|
color: AppTheme.primary,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
style: AppAppAppAppAppAppAppAppAppTheme.bodyMedium.override(
|
style: AppTheme.bodyMedium,
|
||||||
fontFamily: 'Lato',
|
|
||||||
fontSize: 14,
|
|
||||||
letterSpacing: 0,
|
|
||||||
fontWeight: FontWeight.normal,
|
|
||||||
),
|
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
maxLines: 5,
|
maxLines: 5,
|
||||||
minLines: 1,
|
minLines: 1,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '/theme.dart';
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'conversation_model.dart';
|
import 'conversation_model.dart';
|
||||||
export 'conversation_model.dart';
|
export 'conversation_model.dart';
|
||||||
@@ -44,37 +44,39 @@ class _ConversationWidgetState extends State<ConversationWidget> {
|
|||||||
: FocusScope.of(context).unfocus(),
|
: FocusScope.of(context).unfocus(),
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
key: scaffoldKey,
|
key: scaffoldKey,
|
||||||
backgroundColor: myAppTheme.of(context).secondaryBackground,
|
backgroundColor: AppTheme.secondaryBackground,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
backgroundColor: myAppTheme.of(context).primaryBackground,
|
backgroundColor: AppTheme.primaryBackground,
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
leading: FlutterFlowIconButton(
|
leading: FlutterFlowIconButton(
|
||||||
borderColor: Colors.transparent,
|
borderColor: Colors.transparent,
|
||||||
borderRadius: 30,
|
borderRadius: 30,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
buttonSize: 60,
|
buttonSize: 60,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.arrow_back_rounded,
|
Icons.arrow_back_rounded,
|
||||||
color: AppTheme.primaryText,
|
color: AppTheme.primaryTextColor,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
context.goNamed(
|
print("something pressed in conversation_widget.dart");
|
||||||
'ConversationsList',
|
// TODO
|
||||||
extra: <String, dynamic>{
|
// context.goNamed(
|
||||||
kTransitionInfoKey: TransitionInfo(
|
// 'ConversationsList',
|
||||||
hasTransition: true,
|
// extra: <String, dynamic>{
|
||||||
transitionType: PageTransitionType.leftToRight,
|
// kTransitionInfoKey: TransitionInfo(
|
||||||
duration: const Duration(milliseconds: 250),
|
// hasTransition: true,
|
||||||
),
|
// transitionType: PageTransitionType.leftToRight,
|
||||||
},
|
// duration: const Duration(milliseconds: 250),
|
||||||
);
|
// ),
|
||||||
|
// },
|
||||||
|
// );
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
title: wrapWithModel(
|
title: wrapWithModel(
|
||||||
model: _model.modelItemModel,
|
model: _model.modelItemModel,
|
||||||
updateCallback: () => setState(() {}),
|
updateCallback: () => setState(() {}),
|
||||||
child: ModelItemWidget(),
|
child: const ModelItemWidget(),
|
||||||
),
|
),
|
||||||
actions: [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
@@ -85,9 +87,9 @@ class _ConversationWidgetState extends State<ConversationWidget> {
|
|||||||
borderWidth: 2,
|
borderWidth: 2,
|
||||||
buttonSize: 40,
|
buttonSize: 40,
|
||||||
fillColor: AppTheme.primaryBackground,
|
fillColor: AppTheme.primaryBackground,
|
||||||
icon: Icon(
|
icon: const Icon(
|
||||||
Icons.more_vert,
|
Icons.more_vert,
|
||||||
color: AppTheme.primaryText,
|
color: AppTheme.primaryTextColor,
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
@@ -104,7 +106,7 @@ class _ConversationWidgetState extends State<ConversationWidget> {
|
|||||||
: FocusScope.of(context).unfocus(),
|
: FocusScope.of(context).unfocus(),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: MediaQuery.viewInsetsOf(context),
|
padding: MediaQuery.viewInsetsOf(context),
|
||||||
child: ConversationDetailsOverlayWidget(),
|
child: const ConversationDetailsOverlayWidget(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -121,7 +123,7 @@ class _ConversationWidgetState extends State<ConversationWidget> {
|
|||||||
child: wrapWithModel(
|
child: wrapWithModel(
|
||||||
model: _model.conversationThreadModel,
|
model: _model.conversationThreadModel,
|
||||||
updateCallback: () => setState(() {}),
|
updateCallback: () => setState(() {}),
|
||||||
child: ConversationThreadWidget(),
|
child: const ConversationThreadWidget(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
|
import 'dart:nativewrappers/_internal/vm/lib/internal_patch.dart';
|
||||||
|
|
||||||
import '/components/conversation_options/conversation_options_widget.dart';
|
import '/components/conversation_options/conversation_options_widget.dart';
|
||||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'conversations_list_model.dart';
|
import 'conversations_list_model.dart';
|
||||||
export 'conversations_list_model.dart';
|
export 'conversations_list_model.dart';
|
||||||
|
|
||||||
@@ -60,21 +64,26 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
|||||||
: FocusScope.of(context).unfocus(),
|
: FocusScope.of(context).unfocus(),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: MediaQuery.viewInsetsOf(context),
|
padding: MediaQuery.viewInsetsOf(context),
|
||||||
child: ConversationOptionsWidget(),
|
child: const ConversationOptionsWidget(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
).then((value) => safeSetState(() {}));
|
).then((value) => safeSetState(() {}));
|
||||||
|
|
||||||
context.pushNamed('Conversation');
|
// TODO
|
||||||
|
//context.pushNamed('Conversation');
|
||||||
},
|
},
|
||||||
child: FloatingActionButton(
|
child: FloatingActionButton(
|
||||||
onPressed: () async {
|
// TODO
|
||||||
context.pushNamed('Conversation');
|
// onPressed: () async {
|
||||||
|
// context.pushNamed('Conversation');
|
||||||
|
// },
|
||||||
|
onPressed: () {
|
||||||
|
print("fab pressed");
|
||||||
},
|
},
|
||||||
backgroundColor: AppTheme.primary,
|
backgroundColor: AppTheme.primary,
|
||||||
elevation: 8,
|
elevation: 8,
|
||||||
child: Icon(
|
child: const Icon(
|
||||||
Icons.add,
|
Icons.add,
|
||||||
color: AppTheme.info,
|
color: AppTheme.info,
|
||||||
size: 24,
|
size: 24,
|
||||||
@@ -84,12 +93,9 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
|||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
backgroundColor: AppTheme.secondaryBackground,
|
backgroundColor: AppTheme.secondaryBackground,
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
title: Text(
|
title: const Text(
|
||||||
'My Chats',
|
'My Chats',
|
||||||
style: AppTheme.headlineLarge.override(
|
style: AppTheme.headlineLarge,
|
||||||
fontFamily: 'Outfit',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
actions: const [],
|
actions: const [],
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
@@ -101,14 +107,11 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
|||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
const Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(16, 0, 0, 0),
|
padding: EdgeInsetsDirectional.fromSTEB(16, 0, 0, 0),
|
||||||
child: Text(
|
child: Text(
|
||||||
'AI conversations',
|
'AI conversations',
|
||||||
style: AppTheme.labelMedium.override(
|
style: AppTheme.labelMedium,
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
@@ -126,9 +129,10 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
|||||||
focusColor: Colors.transparent,
|
focusColor: Colors.transparent,
|
||||||
hoverColor: Colors.transparent,
|
hoverColor: Colors.transparent,
|
||||||
highlightColor: Colors.transparent,
|
highlightColor: Colors.transparent,
|
||||||
onTap: () async {
|
// TODO
|
||||||
context.pushNamed('Conversation');
|
// onTap: () async {
|
||||||
},
|
// context.pushNamed('Conversation');
|
||||||
|
// },
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
@@ -137,12 +141,12 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
|||||||
Container(
|
Container(
|
||||||
width: 100,
|
width: 100,
|
||||||
height: 100,
|
height: 100,
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: AppTheme
|
color: AppTheme
|
||||||
.secondaryBackground,
|
.secondaryBackground,
|
||||||
),
|
),
|
||||||
child: Align(
|
child: const Align(
|
||||||
alignment: const AlignmentDirectional(0, 0),
|
alignment: AlignmentDirectional(0, 0),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.settings_outlined,
|
Icons.settings_outlined,
|
||||||
color: AppTheme
|
color: AppTheme
|
||||||
@@ -161,12 +165,12 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
|||||||
minWidth:
|
minWidth:
|
||||||
MediaQuery.sizeOf(context).width,
|
MediaQuery.sizeOf(context).width,
|
||||||
),
|
),
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: AppTheme
|
color: AppTheme
|
||||||
.secondaryBackground,
|
.secondaryBackground,
|
||||||
shape: BoxShape.rectangle,
|
shape: BoxShape.rectangle,
|
||||||
),
|
),
|
||||||
child: Column(
|
child: const Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment:
|
mainAxisAlignment:
|
||||||
MainAxisAlignment.spaceEvenly,
|
MainAxisAlignment.spaceEvenly,
|
||||||
@@ -175,40 +179,27 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
|||||||
children: [
|
children: [
|
||||||
Align(
|
Align(
|
||||||
alignment:
|
alignment:
|
||||||
const AlignmentDirectional(-1, 0),
|
AlignmentDirectional(-1, 0),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Hello World',
|
'Hello World',
|
||||||
style:
|
style: AppTheme.headlineLarge,
|
||||||
AppTheme
|
|
||||||
.headlineLarge
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Outfit',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Align(
|
Align(
|
||||||
alignment:
|
alignment:
|
||||||
const AlignmentDirectional(-1, 0),
|
AlignmentDirectional(-1, 0),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
'Hello World',
|
'Hello World',
|
||||||
style: FlutterFlowAppTheme.of(
|
style: AppTheme.bodyMedium,
|
||||||
context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -222,11 +213,11 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
|||||||
Container(
|
Container(
|
||||||
width: 100,
|
width: 100,
|
||||||
height: 100,
|
height: 100,
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: AppTheme
|
color: AppTheme
|
||||||
.secondaryBackground,
|
.secondaryBackground,
|
||||||
),
|
),
|
||||||
child: Icon(
|
child: const Icon(
|
||||||
Icons.chevron_right_rounded,
|
Icons.chevron_right_rounded,
|
||||||
color: AppTheme
|
color: AppTheme
|
||||||
.secondaryText,
|
.secondaryText,
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:flutter_animate/flutter_animate.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
import 'image_details_model.dart';
|
import 'image_details_model.dart';
|
||||||
export 'image_details_model.dart';
|
export 'image_details_model.dart';
|
||||||
|
|
||||||
@@ -106,19 +107,20 @@ class _ImageDetailsWidgetState extends State<ImageDetailsWidget>
|
|||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
backgroundColor: AppTheme.secondaryBackground,
|
backgroundColor: AppTheme.secondaryBackground,
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
leading: FlutterFlowIconButton(
|
leading: const FlutterFlowIconButton(
|
||||||
borderColor: Colors.transparent,
|
borderColor: Colors.transparent,
|
||||||
borderRadius: 30,
|
borderRadius: 30,
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
buttonSize: 60,
|
buttonSize: 60,
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.arrow_back_rounded,
|
Icons.arrow_back_rounded,
|
||||||
color: AppTheme.primaryText,
|
color: AppTheme.primaryTextColor,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
onPressed: () async {
|
// TODO
|
||||||
context.pop();
|
// onPressed: () async {
|
||||||
},
|
// context.pop();
|
||||||
|
// },
|
||||||
),
|
),
|
||||||
actions: const [],
|
actions: const [],
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
@@ -199,47 +201,30 @@ class _ImageDetailsWidgetState extends State<ImageDetailsWidget>
|
|||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
SelectionArea(
|
const SelectionArea(
|
||||||
child: AutoSizeText(
|
child: AutoSizeText(
|
||||||
'Thanks so much! We really do appreciate it!',
|
'Thanks so much! We really do appreciate it!',
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
style: AppTheme
|
style: AppTheme.bodyMedium,
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
lineHeight: 1.5,
|
|
||||||
),
|
|
||||||
)),
|
)),
|
||||||
Padding(
|
const Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(
|
padding: EdgeInsetsDirectional.fromSTEB(
|
||||||
0, 4, 0, 0),
|
0, 4, 0, 0),
|
||||||
child: Text(
|
child: Text(
|
||||||
'Just Now',
|
'Just Now',
|
||||||
style: AppTheme
|
style: AppTheme.labelSmall,
|
||||||
.labelSmall
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
].divide(const SizedBox(width: 4)),
|
].divide(const SizedBox(width: 4)),
|
||||||
),
|
),
|
||||||
Padding(
|
const Padding(
|
||||||
padding:
|
padding:
|
||||||
const EdgeInsetsDirectional.fromSTEB(0, 4, 0, 0),
|
EdgeInsetsDirectional.fromSTEB(0, 4, 0, 0),
|
||||||
child: SelectionArea(
|
child: SelectionArea(
|
||||||
child: AutoSizeText(
|
child: AutoSizeText(
|
||||||
'Thanks so much! We really do appreciate it!',
|
'Thanks so much! We really do appreciate it!',
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
style: AppTheme
|
style: AppTheme.labelLarge,
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
lineHeight: 1.5,
|
|
||||||
),
|
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,8 @@ import 'package:flutter_animate/flutter_animate.dart';
|
|||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'package:app/theme.dart';
|
||||||
|
|
||||||
import 'setup_model.dart';
|
import 'setup_model.dart';
|
||||||
export 'setup_model.dart';
|
export 'setup_model.dart';
|
||||||
|
|
||||||
@@ -155,30 +157,30 @@ class _SetupWidgetState extends State<SetupWidget>
|
|||||||
child: Container(
|
child: Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
height: 500,
|
height: 500,
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
gradient: LinearGradient(
|
gradient: LinearGradient(
|
||||||
colors: [
|
colors: [
|
||||||
AppTheme.primary,
|
AppTheme.primary,
|
||||||
AppTheme.error,
|
AppTheme.error,
|
||||||
AppTheme.tertiary
|
AppTheme.tertiary
|
||||||
],
|
],
|
||||||
stops: const [0, 0.5, 1],
|
stops: [0, 0.5, 1],
|
||||||
begin: const AlignmentDirectional(-1, -1),
|
begin: AlignmentDirectional(-1, -1),
|
||||||
end: const AlignmentDirectional(1, 1),
|
end: AlignmentDirectional(1, 1),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 100,
|
width: 100,
|
||||||
height: 100,
|
height: 100,
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
gradient: LinearGradient(
|
gradient: LinearGradient(
|
||||||
colors: [
|
colors: [
|
||||||
const Color(0x00FFFFFF),
|
Color(0x00FFFFFF),
|
||||||
AppTheme.secondaryBackground
|
AppTheme.secondaryBackground
|
||||||
],
|
],
|
||||||
stops: const [0, 1],
|
stops: [0, 1],
|
||||||
begin: const AlignmentDirectional(0, -1),
|
begin: AlignmentDirectional(0, -1),
|
||||||
end: const AlignmentDirectional(0, 1),
|
end: AlignmentDirectional(0, 1),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
@@ -188,7 +190,7 @@ class _SetupWidgetState extends State<SetupWidget>
|
|||||||
Container(
|
Container(
|
||||||
width: 120,
|
width: 120,
|
||||||
height: 120,
|
height: 120,
|
||||||
decoration: BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: AppTheme.accent4,
|
color: AppTheme.accent4,
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
),
|
),
|
||||||
@@ -205,27 +207,18 @@ class _SetupWidgetState extends State<SetupWidget>
|
|||||||
animationsMap['containerOnPageLoadAnimation2']!),
|
animationsMap['containerOnPageLoadAnimation2']!),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 44, 0, 0),
|
padding: const EdgeInsetsDirectional.fromSTEB(0, 44, 0, 0),
|
||||||
child: Text(
|
child: const Text(
|
||||||
'Welcome!',
|
'Welcome!',
|
||||||
style: AppTheme
|
style: AppTheme.displaySmall,
|
||||||
.displaySmall
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Outfit',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
).animateOnPageLoad(
|
).animateOnPageLoad(
|
||||||
animationsMap['textOnPageLoadAnimation1']!),
|
animationsMap['textOnPageLoadAnimation1']!),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(44, 8, 44, 0),
|
padding: const EdgeInsetsDirectional.fromSTEB(44, 8, 44, 0),
|
||||||
child: Text(
|
child: const Text(
|
||||||
'Thanks for joining! Access or create your account below, and get started on your journey!',
|
'Thanks for joining! Access or create your account below, and get started on your journey!',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style:
|
style: AppTheme.labelMedium,
|
||||||
AppTheme.labelMedium.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
).animateOnPageLoad(
|
).animateOnPageLoad(
|
||||||
animationsMap['textOnPageLoadAnimation2']!),
|
animationsMap['textOnPageLoadAnimation2']!),
|
||||||
),
|
),
|
||||||
@@ -258,13 +251,9 @@ class _SetupWidgetState extends State<SetupWidget>
|
|||||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||||
color: AppTheme
|
color: AppTheme
|
||||||
.secondaryBackground,
|
.secondaryBackground,
|
||||||
textStyle:
|
textStyle: AppTheme.bodyLarge,
|
||||||
AppTheme.bodyLarge.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
borderSide: BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: AppTheme.alternate,
|
color: AppTheme.alternate,
|
||||||
width: 2,
|
width: 2,
|
||||||
),
|
),
|
||||||
@@ -291,13 +280,7 @@ class _SetupWidgetState extends State<SetupWidget>
|
|||||||
iconPadding:
|
iconPadding:
|
||||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||||
color: AppTheme.primary,
|
color: AppTheme.primary,
|
||||||
textStyle: AppTheme
|
textStyle: AppTheme.titleSmall,
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Readex Pro',
|
|
||||||
color: Colors.white,
|
|
||||||
letterSpacing: 0,
|
|
||||||
),
|
|
||||||
elevation: 3,
|
elevation: 3,
|
||||||
borderSide: const BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
|
|||||||
@@ -131,11 +131,11 @@ class _SupportFormWidgetState extends State<SupportFormWidget>
|
|||||||
buttonSize: 60,
|
buttonSize: 60,
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Icons.arrow_back_rounded,
|
Icons.arrow_back_rounded,
|
||||||
color: AppTheme.primaryText,
|
color: AppTheme.primaryTextColor,
|
||||||
size: 30,
|
size: 30,
|
||||||
),
|
),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
context.pop();
|
//TODO: context.pop();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
title: const Text(
|
title: const Text(
|
||||||
|
|||||||
@@ -6,19 +6,32 @@ class AppTheme {
|
|||||||
static const tertiary = Colors.white;
|
static const tertiary = Colors.white;
|
||||||
static const alternate = Colors.purple;
|
static const alternate = Colors.purple;
|
||||||
|
|
||||||
|
static const accent1 = Colors.amber;
|
||||||
|
static const accent4 = Colors.amber;
|
||||||
|
|
||||||
static const primaryBackground = Colors.purple;
|
static const primaryBackground = Colors.purple;
|
||||||
static const secondaryBackground = Colors.purpleAccent;
|
static const secondaryBackground = Colors.purpleAccent;
|
||||||
|
|
||||||
static const primaryText = Colors.white;
|
static const primaryTextColor = Colors.white;
|
||||||
|
static const primaryText = TextStyle(color: primaryTextColor, fontSize: 12);
|
||||||
static const secondaryText = Colors.white;
|
static const secondaryText = Colors.white;
|
||||||
|
|
||||||
|
static const bodyLarge = TextStyle(color: Colors.white, fontSize: 24);
|
||||||
static const bodyMedium = TextStyle(color: Colors.white, fontSize: 12);
|
static const bodyMedium = TextStyle(color: Colors.white, fontSize: 12);
|
||||||
|
static const bodySmall = TextStyle(color: Colors.white, fontSize: 10);
|
||||||
|
|
||||||
static const error = Colors.red;
|
static const error = Colors.red;
|
||||||
|
static const info = Colors.grey;
|
||||||
|
|
||||||
|
static const displaySmall = TextStyle(color: Colors.white, fontSize: 12);
|
||||||
|
|
||||||
static const labelMedium = TextStyle(color: Colors.grey, fontSize: 16);
|
|
||||||
static const labelLarge = TextStyle(color: Colors.black, fontSize: 24);
|
static const labelLarge = TextStyle(color: Colors.black, fontSize: 24);
|
||||||
|
static const labelMedium = TextStyle(color: Colors.grey, fontSize: 16);
|
||||||
|
static const labelSmall = TextStyle(color: Colors.grey, fontSize: 12);
|
||||||
|
|
||||||
|
static const headlineLarge = TextStyle(color: Colors.blue, fontWeight: FontWeight.bold);
|
||||||
static const headlineMedium = TextStyle(color: Colors.blue, fontWeight: FontWeight.bold);
|
static const headlineMedium = TextStyle(color: Colors.blue, fontWeight: FontWeight.bold);
|
||||||
|
static const headlineSmall = TextStyle(color: Colors.blue, fontWeight: FontWeight.bold);
|
||||||
|
|
||||||
static const titleLarge = TextStyle(fontFamily: 'Outfit', letterSpacing: 0, fontSize: 24);
|
static const titleLarge = TextStyle(fontFamily: 'Outfit', letterSpacing: 0, fontSize: 24);
|
||||||
static const titleSmall = TextStyle(fontFamily: 'Outfit', letterSpacing: 0, fontSize: 16);
|
static const titleSmall = TextStyle(fontFamily: 'Outfit', letterSpacing: 0, fontSize: 16);
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||||
#include "ephemeral/Flutter-Generated.xcconfig"
|
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
#include "ephemeral/Flutter-Generated.xcconfig"
|
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import rive_common
|
|||||||
import shared_preferences_foundation
|
import shared_preferences_foundation
|
||||||
import sqflite
|
import sqflite
|
||||||
import url_launcher_macos
|
import url_launcher_macos
|
||||||
|
import video_player_avfoundation
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||||
@@ -17,4 +18,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
|||||||
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
||||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||||
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||||
|
FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin"))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
platform :osx, '10.14'
|
||||||
|
|
||||||
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||||
|
|
||||||
|
project 'Runner', {
|
||||||
|
'Debug' => :debug,
|
||||||
|
'Profile' => :release,
|
||||||
|
'Release' => :release,
|
||||||
|
}
|
||||||
|
|
||||||
|
def flutter_root
|
||||||
|
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
|
||||||
|
unless File.exist?(generated_xcode_build_settings_path)
|
||||||
|
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
|
||||||
|
end
|
||||||
|
|
||||||
|
File.foreach(generated_xcode_build_settings_path) do |line|
|
||||||
|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
|
||||||
|
return matches[1].strip if matches
|
||||||
|
end
|
||||||
|
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
|
||||||
|
end
|
||||||
|
|
||||||
|
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
|
||||||
|
|
||||||
|
flutter_macos_podfile_setup
|
||||||
|
|
||||||
|
target 'Runner' do
|
||||||
|
use_frameworks!
|
||||||
|
use_modular_headers!
|
||||||
|
|
||||||
|
flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
|
||||||
|
target 'RunnerTests' do
|
||||||
|
inherit! :search_paths
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
post_install do |installer|
|
||||||
|
installer.pods_project.targets.each do |target|
|
||||||
|
flutter_additional_macos_build_settings(target)
|
||||||
|
end
|
||||||
|
end
|
||||||
+52
-12
@@ -524,18 +524,18 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
|
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.4"
|
version: "10.0.5"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
|
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.3"
|
version: "3.0.5"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -572,10 +572,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.0"
|
version: "0.11.1"
|
||||||
maybe_just_nothing:
|
maybe_just_nothing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -588,10 +588,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
|
sha256: "25dfcaf170a0190f47ca6355bdd4552cb8924b430512ff0cafb8db9bd41fe33b"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.12.0"
|
version: "1.14.0"
|
||||||
mime_type:
|
mime_type:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1001,10 +1001,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
sha256: "2419f20b0c8677b2d67c8ac4d1ac7372d862dc6c460cdbb052b40155408cd794"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.0"
|
version: "0.7.1"
|
||||||
timeago:
|
timeago:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -1101,14 +1101,54 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
|
video_player:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: video_player
|
||||||
|
sha256: e30df0d226c4ef82e2c150ebf6834b3522cf3f654d8e2f9419d376cdc071425d
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.9.1"
|
||||||
|
video_player_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: video_player_android
|
||||||
|
sha256: fdc0331ce9f808cc2714014cb8126bd6369943affefd54f8fdab0ea0bb617b7f
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.5.2"
|
||||||
|
video_player_avfoundation:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: video_player_avfoundation
|
||||||
|
sha256: d1e9a824f2b324000dc8fb2dcb2a3285b6c1c7c487521c63306cc5b394f68a7c
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.6.1"
|
||||||
|
video_player_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: video_player_platform_interface
|
||||||
|
sha256: "236454725fafcacf98f0f39af0d7c7ab2ce84762e3b63f2cbb3ef9a7e0550bc6"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "6.2.2"
|
||||||
|
video_player_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: video_player_web
|
||||||
|
sha256: ff4d69a6614b03f055397c27a71c9d3ddea2b2a23d71b2ba0164f59ca32b8fe2
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.3.1"
|
||||||
vm_service:
|
vm_service:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
|
sha256: "7475cb4dd713d57b6f7464c0e13f06da0d535d8b2067e188962a59bac2cf280b"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "14.2.1"
|
version: "14.2.2"
|
||||||
web:
|
web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ dependencies:
|
|||||||
google_fonts: any
|
google_fonts: any
|
||||||
provider: any
|
provider: any
|
||||||
easy_debounce: any
|
easy_debounce: any
|
||||||
|
video_player: ^2.9.1
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|||||||
Submodule
+1
Submodule one-ai-mobile added at dd29a001e9
Reference in New Issue
Block a user