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"
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.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.
|
||||
|
||||
// Model for OptionsDialog component.
|
||||
late OptionsDialogModel optionsDialogModel;
|
||||
late PopupModel optionsDialogModel;
|
||||
|
||||
@override
|
||||
void initState(BuildContext context) {
|
||||
optionsDialogModel = createModel(context, () => OptionsDialogModel());
|
||||
optionsDialogModel = createModel(context, () => PopupModel());
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
+27
-40
@@ -5,6 +5,8 @@ import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'conversation_details_overlay_model.dart';
|
||||
export 'conversation_details_overlay_model.dart';
|
||||
|
||||
@@ -73,29 +75,24 @@ class _ConversationDetailsOverlayWidgetState
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(16, 0, 0, 0),
|
||||
const Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16, 0, 0, 0),
|
||||
child: Text(
|
||||
'Chat Details',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme
|
||||
.headlineSmall
|
||||
.override(
|
||||
fontFamily: 'Outfit',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.headlineSmall,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 0, 16, 0),
|
||||
child: FlutterFlowIconButton(
|
||||
borderColor: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
||||
borderColor: AppTheme.alternate,
|
||||
borderRadius: 12,
|
||||
borderWidth: 1,
|
||||
buttonSize: 40,
|
||||
fillColor: AppAppAppAppAppAppAppAppAppTheme.accent4,
|
||||
icon: Icon(
|
||||
fillColor: AppTheme.accent4,
|
||||
icon: const Icon(
|
||||
Icons.close_rounded,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryText,
|
||||
color: AppTheme.primaryTextColor,
|
||||
size: 24,
|
||||
),
|
||||
onPressed: () async {
|
||||
@@ -109,38 +106,34 @@ class _ConversationDetailsOverlayWidgetState
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(16, 4, 0, 4),
|
||||
child: RichText(
|
||||
textScaler: MediaQuery.of(context).textScaler,
|
||||
text: TextSpan(
|
||||
text: const TextSpan(
|
||||
children: [
|
||||
const TextSpan(
|
||||
TextSpan(
|
||||
text: 'Group Chat ID: ',
|
||||
style: TextStyle(),
|
||||
),
|
||||
TextSpan(
|
||||
text: 'Hello World ',
|
||||
style: TextStyle(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primary,
|
||||
color: AppTheme.primary,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
)
|
||||
],
|
||||
style:
|
||||
AppAppAppAppAppAppAppAppAppTheme.labelMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
style: AppTheme.labelMedium,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
const Expanded(
|
||||
child: Align(
|
||||
alignment: const AlignmentDirectional(0, 0),
|
||||
alignment: AlignmentDirectional(0, 0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Divider(
|
||||
thickness: 1,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.tertiary,
|
||||
color: AppTheme.tertiary,
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -154,18 +147,18 @@ class _ConversationDetailsOverlayWidgetState
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme
|
||||
color: AppTheme
|
||||
.secondaryBackground,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: Border.all(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
||||
color: AppTheme.alternate,
|
||||
),
|
||||
),
|
||||
child: wrapWithModel(
|
||||
model: _model.optionsDialogModel,
|
||||
updateCallback: () => setState(() {}),
|
||||
updateOnChange: true,
|
||||
child: OptionsDialogWidget(),
|
||||
child: const PopupWidget(),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -185,26 +178,20 @@ class _ConversationDetailsOverlayWidgetState
|
||||
iconPadding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||
color:
|
||||
AppAppAppAppAppAppAppAppAppTheme.secondaryBackground,
|
||||
textStyle:
|
||||
AppAppAppAppAppAppAppAppAppTheme.titleLarge.override(
|
||||
fontFamily: 'Outfit',
|
||||
fontSize: 18,
|
||||
letterSpacing: 0,
|
||||
),
|
||||
AppTheme.secondaryBackground,
|
||||
textStyle: AppTheme.titleLarge,
|
||||
elevation: 0,
|
||||
borderSide: BorderSide(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
||||
borderSide: const BorderSide(
|
||||
color: AppTheme.alternate,
|
||||
width: 2,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
hoverColor: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
||||
hoverBorderSide: BorderSide(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
||||
hoverColor: AppTheme.alternate,
|
||||
hoverBorderSide: const BorderSide(
|
||||
color: AppTheme.alternate,
|
||||
width: 2,
|
||||
),
|
||||
hoverTextColor:
|
||||
AppAppAppAppAppAppAppAppAppTheme.primaryText,
|
||||
hoverTextColor: AppTheme.primaryTextColor,
|
||||
hoverElevation: 3,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'conversation_options_model.dart';
|
||||
export 'conversation_options_model.dart';
|
||||
|
||||
@@ -40,8 +42,8 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryBackground,
|
||||
decoration: const BoxDecoration(
|
||||
color: AppTheme.secondaryBackground,
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 12, 0, 24),
|
||||
@@ -60,35 +62,30 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
||||
children: [
|
||||
Card(
|
||||
clipBehavior: Clip.antiAliasWithSaveLayer,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
||||
color: AppTheme.primaryBackground,
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(40),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Icon(
|
||||
Icons.share_rounded,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 20,
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
const Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Share',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme
|
||||
.labelLarge
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.labelLarge,
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -109,35 +106,30 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
||||
children: [
|
||||
Card(
|
||||
clipBehavior: Clip.antiAliasWithSaveLayer,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
||||
color: AppTheme.primaryBackground,
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(40),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Icon(
|
||||
Icons.insert_link,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 20,
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
const Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Get Link',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme
|
||||
.labelLarge
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.labelLarge,
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -158,35 +150,30 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
||||
children: [
|
||||
Card(
|
||||
clipBehavior: Clip.antiAliasWithSaveLayer,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
||||
color: AppTheme.primaryBackground,
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(40),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Icon(
|
||||
Icons.mode_edit,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 20,
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
const Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Model selection',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme
|
||||
.labelLarge
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.labelLarge,
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -207,35 +194,30 @@ class _ConversationOptionsWidgetState extends State<ConversationOptionsWidget> {
|
||||
children: [
|
||||
Card(
|
||||
clipBehavior: Clip.antiAliasWithSaveLayer,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
||||
color: AppTheme.primaryBackground,
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(40),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
child: Icon(
|
||||
Icons.hide_source,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 20,
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
const Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 0, 0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Private',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme
|
||||
.labelLarge
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.labelLarge,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -13,20 +13,19 @@ class ConversationThreadModel
|
||||
|
||||
final formKey = GlobalKey<FormState>();
|
||||
// Model for ConversationBubbles component.
|
||||
late ConversationBubblesModel conversationBubblesModel;
|
||||
//late ConversationBubblesModel conversationBubblesModel;
|
||||
// Model for PromptBox component.
|
||||
late PromptBoxModel promptBoxModel;
|
||||
|
||||
@override
|
||||
void initState(BuildContext context) {
|
||||
conversationBubblesModel =
|
||||
createModel(context, () => ConversationBubblesModel());
|
||||
//conversationBubblesModel = createModel(context, () => ConversationBubblesModel());
|
||||
promptBoxModel = createModel(context, () => PromptBoxModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
conversationBubblesModel.dispose();
|
||||
//conversationBubblesModel.dispose();
|
||||
promptBoxModel.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'conversation_thread_model.dart';
|
||||
export 'conversation_thread_model.dart';
|
||||
|
||||
@@ -44,8 +46,8 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
||||
decoration: const BoxDecoration(
|
||||
color: AppTheme.primaryBackground,
|
||||
),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
@@ -71,20 +73,21 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
||||
minHeight: MediaQuery.sizeOf(context).height * 1,
|
||||
),
|
||||
decoration: const BoxDecoration(),
|
||||
child: wrapWithModel(
|
||||
model: _model.conversationBubblesModel,
|
||||
updateCallback: () => setState(() {}),
|
||||
child: ConversationBubblesWidget(),
|
||||
),
|
||||
//child: wrapWithModel(
|
||||
//model: _model.conversationBubblesModel,
|
||||
//updateCallback: () => setState(() {}),
|
||||
//child: ConversationBubblesWidget(),
|
||||
//child: const Text("test"),
|
||||
//),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryBackground,
|
||||
boxShadow: const [
|
||||
decoration: const BoxDecoration(
|
||||
color: AppTheme.secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 3,
|
||||
color: Color(0x33000000),
|
||||
@@ -95,6 +98,7 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
||||
)
|
||||
],
|
||||
),
|
||||
// TODO
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
@@ -110,44 +114,45 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
FlutterFlowMediaDisplay(
|
||||
path: '',
|
||||
imageBuilder: (path) => ClipRRect(
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
child: CachedNetworkImage(
|
||||
fadeInDuration: const Duration(milliseconds: 500),
|
||||
fadeOutDuration:
|
||||
const Duration(milliseconds: 500),
|
||||
imageUrl: path,
|
||||
width: 120,
|
||||
height: 100,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
videoPlayerBuilder: (path) =>
|
||||
FlutterFlowVideoPlayer(
|
||||
path: path,
|
||||
width: 300,
|
||||
autoPlay: false,
|
||||
looping: true,
|
||||
showControls: true,
|
||||
allowFullScreen: true,
|
||||
allowPlaybackSpeedMenu: false,
|
||||
),
|
||||
),
|
||||
// FlutterFlowMediaDisplay(
|
||||
// path: '',
|
||||
// imageBuilder: (path) => ClipRRect(
|
||||
// borderRadius: BorderRadius.circular(8),
|
||||
// child: CachedNetworkImage(
|
||||
// fadeInDuration: const Duration(milliseconds: 500),
|
||||
// fadeOutDuration:
|
||||
// const Duration(milliseconds: 500),
|
||||
// imageUrl: path,
|
||||
// width: 120,
|
||||
// height: 100,
|
||||
// fit: BoxFit.cover,
|
||||
// ),
|
||||
// ),
|
||||
// TODO
|
||||
// videoPlayerBuilder: (path) =>
|
||||
// FlutterFlowVideoPlayer(
|
||||
// path: path,
|
||||
// width: 300,
|
||||
// autoPlay: false,
|
||||
// looping: true,
|
||||
// showControls: true,
|
||||
// allowFullScreen: true,
|
||||
// allowPlaybackSpeedMenu: false,
|
||||
// ),
|
||||
// ),
|
||||
Align(
|
||||
alignment: const AlignmentDirectional(-1, -1),
|
||||
child: FlutterFlowIconButton(
|
||||
borderColor:
|
||||
AppAppAppAppAppAppAppAppAppTheme.error,
|
||||
AppTheme.error,
|
||||
borderRadius: 20,
|
||||
borderWidth: 2,
|
||||
buttonSize: 40,
|
||||
fillColor: AppAppAppAppAppAppAppAppAppTheme
|
||||
fillColor: AppTheme
|
||||
.primaryBackground,
|
||||
icon: Icon(
|
||||
icon: const Icon(
|
||||
Icons.delete_outline_rounded,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.error,
|
||||
color: AppTheme.error,
|
||||
size: 24,
|
||||
),
|
||||
onPressed: () {
|
||||
@@ -173,7 +178,7 @@ class _ConversationThreadWidgetState extends State<ConversationThreadWidget> {
|
||||
child: wrapWithModel(
|
||||
model: _model.promptBoxModel,
|
||||
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:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'model_item_model.dart';
|
||||
export 'model_item_model.dart';
|
||||
|
||||
@@ -48,7 +50,7 @@ class _ModelItemWidgetState extends State<ModelItemWidget> {
|
||||
}),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryBackground,
|
||||
color: AppTheme.primaryBackground,
|
||||
borderRadius: BorderRadius.circular(0),
|
||||
),
|
||||
child: Padding(
|
||||
@@ -60,29 +62,25 @@ class _ModelItemWidgetState extends State<ModelItemWidget> {
|
||||
width: 40,
|
||||
height: 40,
|
||||
decoration: BoxDecoration(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.accent1,
|
||||
color: AppTheme.accent1,
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: Border.all(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primary,
|
||||
color: AppTheme.primary,
|
||||
width: 2,
|
||||
),
|
||||
),
|
||||
child: Align(
|
||||
alignment: const AlignmentDirectional(0, 0),
|
||||
child: const Align(
|
||||
alignment: AlignmentDirectional(0, 0),
|
||||
child: Text(
|
||||
'A',
|
||||
textAlign: TextAlign.center,
|
||||
style: AppAppAppAppAppAppAppAppAppTheme.bodyLarge.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.bold,
|
||||
style: AppTheme.bodyLarge,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
const Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(12, 0, 8, 0),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(12, 0, 8, 0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
@@ -90,22 +88,13 @@ class _ModelItemWidgetState extends State<ModelItemWidget> {
|
||||
children: [
|
||||
Text(
|
||||
'Randy Peterson',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme.bodyMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
style: AppTheme.bodyMedium,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 4, 0, 0),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0, 4, 0, 0),
|
||||
child: Text(
|
||||
'name@domainname.com',
|
||||
style:
|
||||
AppAppAppAppAppAppAppAppAppTheme.bodySmall.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primary,
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.bodySmall,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'no_chats_model.dart';
|
||||
export 'no_chats_model.dart';
|
||||
|
||||
@@ -59,11 +61,7 @@ class _NoChatsWidgetState extends State<NoChatsWidget> {
|
||||
child: Text(
|
||||
widget.title,
|
||||
textAlign: TextAlign.center,
|
||||
style: AppAppAppAppAppAppAppAppAppTheme.headlineSmall.override(
|
||||
fontFamily: 'Outfit',
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primaryText,
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.headlineSmall,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
@@ -71,10 +69,7 @@ class _NoChatsWidgetState extends State<NoChatsWidget> {
|
||||
child: Text(
|
||||
widget.body,
|
||||
textAlign: TextAlign.center,
|
||||
style: AppAppAppAppAppAppAppAppAppTheme.labelMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.labelMedium,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
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:google_fonts/google_fonts.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 field(s) for MouseRegion widget.
|
||||
|
||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import '/components/popup/popup_model.dart';
|
||||
export '/components/popup/popup_model.dart';
|
||||
|
||||
@@ -78,20 +80,12 @@ class _PopupWidgetState extends State<PopupWidget> {
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Expanded(
|
||||
const Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),
|
||||
child: Text(
|
||||
'Refine the components modal.',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme
|
||||
.headlineMedium
|
||||
.override(
|
||||
fontFamily: 'Outfit',
|
||||
color: const Color(0xFF14181B),
|
||||
fontSize: 24,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
style: AppTheme.headlineMedium,
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -116,15 +110,9 @@ class _PopupWidgetState extends State<PopupWidget> {
|
||||
thickness: 2,
|
||||
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.',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme.labelMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: const Color(0xFF57636C),
|
||||
fontSize: 14,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
style: AppTheme.labelMedium,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 16, 0, 0),
|
||||
@@ -144,14 +132,7 @@ class _PopupWidgetState extends State<PopupWidget> {
|
||||
iconPadding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||
color: Colors.white,
|
||||
textStyle:
|
||||
AppAppAppAppAppAppAppAppAppTheme.bodySmall.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: const Color(0xFF14181B),
|
||||
fontSize: 12,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
textStyle: AppTheme.bodySmall,
|
||||
elevation: 0,
|
||||
borderSide: const BorderSide(
|
||||
color: Color(0xFFF1F4F8),
|
||||
@@ -174,15 +155,7 @@ class _PopupWidgetState extends State<PopupWidget> {
|
||||
iconPadding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||
color: const Color(0xFF4B39EF),
|
||||
textStyle: AppAppAppAppAppAppAppAppAppTheme
|
||||
.titleSmall
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: Colors.white,
|
||||
fontSize: 16,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
textStyle: AppTheme.titleSmall,
|
||||
elevation: 3,
|
||||
borderSide: const BorderSide(
|
||||
color: Colors.transparent,
|
||||
|
||||
@@ -3,6 +3,8 @@ import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'popup_model.dart';
|
||||
export 'popup_model.dart';
|
||||
|
||||
@@ -78,20 +80,12 @@ class _PopupWidgetState extends State<PopupWidget> {
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Expanded(
|
||||
const Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0, 0, 12, 0),
|
||||
child: Text(
|
||||
'Refine the components modal.',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme
|
||||
.headlineMedium
|
||||
.override(
|
||||
fontFamily: 'Outfit',
|
||||
color: const Color(0xFF14181B),
|
||||
fontSize: 24,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
style: AppTheme.headlineMedium,
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -116,15 +110,9 @@ class _PopupWidgetState extends State<PopupWidget> {
|
||||
thickness: 2,
|
||||
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.',
|
||||
style: AppAppAppAppAppAppAppAppAppTheme.labelMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: const Color(0xFF57636C),
|
||||
fontSize: 14,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
style: AppTheme.labelMedium,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 16, 0, 0),
|
||||
@@ -144,14 +132,7 @@ class _PopupWidgetState extends State<PopupWidget> {
|
||||
iconPadding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||
color: Colors.white,
|
||||
textStyle:
|
||||
AppAppAppAppAppAppAppAppAppTheme.bodySmall.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: const Color(0xFF14181B),
|
||||
fontSize: 12,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
textStyle: AppTheme.bodySmall,
|
||||
elevation: 0,
|
||||
borderSide: const BorderSide(
|
||||
color: Color(0xFFF1F4F8),
|
||||
@@ -174,15 +155,7 @@ class _PopupWidgetState extends State<PopupWidget> {
|
||||
iconPadding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||
color: const Color(0xFF4B39EF),
|
||||
textStyle: AppAppAppAppAppAppAppAppAppTheme
|
||||
.titleSmall
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: Colors.white,
|
||||
fontSize: 16,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
textStyle: AppTheme.titleSmall,
|
||||
elevation: 3,
|
||||
borderSide: const BorderSide(
|
||||
color: Colors.transparent,
|
||||
|
||||
@@ -4,6 +4,8 @@ import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'prompt_box_model.dart';
|
||||
export 'prompt_box_model.dart';
|
||||
|
||||
@@ -45,7 +47,7 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryBackground,
|
||||
color: AppTheme.secondaryBackground,
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
alignment: const AlignmentDirectional(0, 0),
|
||||
@@ -65,9 +67,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
||||
borderRadius: 30,
|
||||
borderWidth: 1,
|
||||
buttonSize: 40,
|
||||
icon: Icon(
|
||||
icon: const Icon(
|
||||
Icons.file_upload_outlined,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () {
|
||||
@@ -84,9 +86,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
||||
borderRadius: 30,
|
||||
borderWidth: 1,
|
||||
buttonSize: 40,
|
||||
icon: Icon(
|
||||
icon: const Icon(
|
||||
Icons.photo_outlined,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () {
|
||||
@@ -103,9 +105,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
||||
borderRadius: 30,
|
||||
borderWidth: 1,
|
||||
buttonSize: 40,
|
||||
icon: Icon(
|
||||
icon: const Icon(
|
||||
Icons.mic_none,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () {
|
||||
@@ -122,9 +124,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
||||
borderRadius: 30,
|
||||
borderWidth: 1,
|
||||
buttonSize: 40,
|
||||
icon: Icon(
|
||||
icon: const Icon(
|
||||
Icons.videocam_outlined,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () {
|
||||
@@ -141,9 +143,9 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
||||
borderRadius: 30,
|
||||
borderWidth: 1,
|
||||
buttonSize: 40,
|
||||
icon: Icon(
|
||||
icon: const Icon(
|
||||
Icons.camera_alt_outlined,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
color: AppTheme.secondaryText,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () {
|
||||
@@ -175,16 +177,10 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
||||
obscureText: false,
|
||||
decoration: InputDecoration(
|
||||
isDense: false,
|
||||
counterStyle: AppAppAppAppAppAppAppAppAppTheme
|
||||
.bodyMedium
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
letterSpacing: 0,
|
||||
),
|
||||
counterStyle: AppTheme.bodyMedium,
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderSide: BorderSide(
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.secondaryText,
|
||||
borderSide: const BorderSide(
|
||||
color: AppTheme.secondaryText,
|
||||
width: 2,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
@@ -211,19 +207,14 @@ class _PromptBoxWidgetState extends State<PromptBoxWidget> {
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
filled: true,
|
||||
fillColor: AppAppAppAppAppAppAppAppAppTheme.alternate,
|
||||
suffixIcon: Icon(
|
||||
fillColor: AppTheme.alternate,
|
||||
suffixIcon: const Icon(
|
||||
Icons.send,
|
||||
color: AppAppAppAppAppAppAppAppAppTheme.primary,
|
||||
color: AppTheme.primary,
|
||||
size: 30,
|
||||
),
|
||||
),
|
||||
style: AppAppAppAppAppAppAppAppAppTheme.bodyMedium.override(
|
||||
fontFamily: 'Lato',
|
||||
fontSize: 14,
|
||||
letterSpacing: 0,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
style: AppTheme.bodyMedium,
|
||||
textAlign: TextAlign.start,
|
||||
maxLines: 5,
|
||||
minLines: 1,
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '/theme.dart';
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'conversation_model.dart';
|
||||
export 'conversation_model.dart';
|
||||
@@ -44,37 +44,39 @@ class _ConversationWidgetState extends State<ConversationWidget> {
|
||||
: FocusScope.of(context).unfocus(),
|
||||
child: Scaffold(
|
||||
key: scaffoldKey,
|
||||
backgroundColor: myAppTheme.of(context).secondaryBackground,
|
||||
backgroundColor: AppTheme.secondaryBackground,
|
||||
appBar: AppBar(
|
||||
backgroundColor: myAppTheme.of(context).primaryBackground,
|
||||
backgroundColor: AppTheme.primaryBackground,
|
||||
automaticallyImplyLeading: false,
|
||||
leading: FlutterFlowIconButton(
|
||||
borderColor: Colors.transparent,
|
||||
borderRadius: 30,
|
||||
borderWidth: 1,
|
||||
buttonSize: 60,
|
||||
icon: Icon(
|
||||
icon: const Icon(
|
||||
Icons.arrow_back_rounded,
|
||||
color: AppTheme.primaryText,
|
||||
color: AppTheme.primaryTextColor,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () async {
|
||||
context.goNamed(
|
||||
'ConversationsList',
|
||||
extra: <String, dynamic>{
|
||||
kTransitionInfoKey: TransitionInfo(
|
||||
hasTransition: true,
|
||||
transitionType: PageTransitionType.leftToRight,
|
||||
duration: const Duration(milliseconds: 250),
|
||||
),
|
||||
},
|
||||
);
|
||||
print("something pressed in conversation_widget.dart");
|
||||
// TODO
|
||||
// context.goNamed(
|
||||
// 'ConversationsList',
|
||||
// extra: <String, dynamic>{
|
||||
// kTransitionInfoKey: TransitionInfo(
|
||||
// hasTransition: true,
|
||||
// transitionType: PageTransitionType.leftToRight,
|
||||
// duration: const Duration(milliseconds: 250),
|
||||
// ),
|
||||
// },
|
||||
// );
|
||||
},
|
||||
),
|
||||
title: wrapWithModel(
|
||||
model: _model.modelItemModel,
|
||||
updateCallback: () => setState(() {}),
|
||||
child: ModelItemWidget(),
|
||||
child: const ModelItemWidget(),
|
||||
),
|
||||
actions: [
|
||||
Padding(
|
||||
@@ -85,9 +87,9 @@ class _ConversationWidgetState extends State<ConversationWidget> {
|
||||
borderWidth: 2,
|
||||
buttonSize: 40,
|
||||
fillColor: AppTheme.primaryBackground,
|
||||
icon: Icon(
|
||||
icon: const Icon(
|
||||
Icons.more_vert,
|
||||
color: AppTheme.primaryText,
|
||||
color: AppTheme.primaryTextColor,
|
||||
size: 24,
|
||||
),
|
||||
onPressed: () async {
|
||||
@@ -104,7 +106,7 @@ class _ConversationWidgetState extends State<ConversationWidget> {
|
||||
: FocusScope.of(context).unfocus(),
|
||||
child: Padding(
|
||||
padding: MediaQuery.viewInsetsOf(context),
|
||||
child: ConversationDetailsOverlayWidget(),
|
||||
child: const ConversationDetailsOverlayWidget(),
|
||||
),
|
||||
);
|
||||
},
|
||||
@@ -121,7 +123,7 @@ class _ConversationWidgetState extends State<ConversationWidget> {
|
||||
child: wrapWithModel(
|
||||
model: _model.conversationThreadModel,
|
||||
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 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'conversations_list_model.dart';
|
||||
export 'conversations_list_model.dart';
|
||||
|
||||
@@ -60,21 +64,26 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
||||
: FocusScope.of(context).unfocus(),
|
||||
child: Padding(
|
||||
padding: MediaQuery.viewInsetsOf(context),
|
||||
child: ConversationOptionsWidget(),
|
||||
child: const ConversationOptionsWidget(),
|
||||
),
|
||||
);
|
||||
},
|
||||
).then((value) => safeSetState(() {}));
|
||||
|
||||
context.pushNamed('Conversation');
|
||||
// TODO
|
||||
//context.pushNamed('Conversation');
|
||||
},
|
||||
child: FloatingActionButton(
|
||||
onPressed: () async {
|
||||
context.pushNamed('Conversation');
|
||||
// TODO
|
||||
// onPressed: () async {
|
||||
// context.pushNamed('Conversation');
|
||||
// },
|
||||
onPressed: () {
|
||||
print("fab pressed");
|
||||
},
|
||||
backgroundColor: AppTheme.primary,
|
||||
elevation: 8,
|
||||
child: Icon(
|
||||
child: const Icon(
|
||||
Icons.add,
|
||||
color: AppTheme.info,
|
||||
size: 24,
|
||||
@@ -84,12 +93,9 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
||||
appBar: AppBar(
|
||||
backgroundColor: AppTheme.secondaryBackground,
|
||||
automaticallyImplyLeading: false,
|
||||
title: Text(
|
||||
title: const Text(
|
||||
'My Chats',
|
||||
style: AppTheme.headlineLarge.override(
|
||||
fontFamily: 'Outfit',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.headlineLarge,
|
||||
),
|
||||
actions: const [],
|
||||
centerTitle: false,
|
||||
@@ -101,14 +107,11 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(16, 0, 0, 0),
|
||||
const Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16, 0, 0, 0),
|
||||
child: Text(
|
||||
'AI conversations',
|
||||
style: AppTheme.labelMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.labelMedium,
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
@@ -126,9 +129,10 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
||||
focusColor: Colors.transparent,
|
||||
hoverColor: Colors.transparent,
|
||||
highlightColor: Colors.transparent,
|
||||
onTap: () async {
|
||||
context.pushNamed('Conversation');
|
||||
},
|
||||
// TODO
|
||||
// onTap: () async {
|
||||
// context.pushNamed('Conversation');
|
||||
// },
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
@@ -137,12 +141,12 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
||||
Container(
|
||||
width: 100,
|
||||
height: 100,
|
||||
decoration: BoxDecoration(
|
||||
decoration: const BoxDecoration(
|
||||
color: AppTheme
|
||||
.secondaryBackground,
|
||||
),
|
||||
child: Align(
|
||||
alignment: const AlignmentDirectional(0, 0),
|
||||
child: const Align(
|
||||
alignment: AlignmentDirectional(0, 0),
|
||||
child: Icon(
|
||||
Icons.settings_outlined,
|
||||
color: AppTheme
|
||||
@@ -161,12 +165,12 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
||||
minWidth:
|
||||
MediaQuery.sizeOf(context).width,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
decoration: const BoxDecoration(
|
||||
color: AppTheme
|
||||
.secondaryBackground,
|
||||
shape: BoxShape.rectangle,
|
||||
),
|
||||
child: Column(
|
||||
child: const Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.spaceEvenly,
|
||||
@@ -175,40 +179,27 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
||||
children: [
|
||||
Align(
|
||||
alignment:
|
||||
const AlignmentDirectional(-1, 0),
|
||||
AlignmentDirectional(-1, 0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Text(
|
||||
'Hello World',
|
||||
style:
|
||||
AppTheme
|
||||
.headlineLarge
|
||||
.override(
|
||||
fontFamily: 'Outfit',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.headlineLarge,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Align(
|
||||
alignment:
|
||||
const AlignmentDirectional(-1, 0),
|
||||
AlignmentDirectional(-1, 0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
'Hello World',
|
||||
style: FlutterFlowAppTheme.of(
|
||||
context)
|
||||
.bodyMedium
|
||||
.override(
|
||||
fontFamily:
|
||||
'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.bodyMedium,
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -222,11 +213,11 @@ class _ConversationsListWidgetState extends State<ConversationsListWidget> {
|
||||
Container(
|
||||
width: 100,
|
||||
height: 100,
|
||||
decoration: BoxDecoration(
|
||||
decoration: const BoxDecoration(
|
||||
color: AppTheme
|
||||
.secondaryBackground,
|
||||
),
|
||||
child: Icon(
|
||||
child: const Icon(
|
||||
Icons.chevron_right_rounded,
|
||||
color: AppTheme
|
||||
.secondaryText,
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:flutter_animate/flutter_animate.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
import 'image_details_model.dart';
|
||||
export 'image_details_model.dart';
|
||||
|
||||
@@ -106,19 +107,20 @@ class _ImageDetailsWidgetState extends State<ImageDetailsWidget>
|
||||
appBar: AppBar(
|
||||
backgroundColor: AppTheme.secondaryBackground,
|
||||
automaticallyImplyLeading: false,
|
||||
leading: FlutterFlowIconButton(
|
||||
leading: const FlutterFlowIconButton(
|
||||
borderColor: Colors.transparent,
|
||||
borderRadius: 30,
|
||||
borderWidth: 1,
|
||||
buttonSize: 60,
|
||||
icon: Icon(
|
||||
Icons.arrow_back_rounded,
|
||||
color: AppTheme.primaryText,
|
||||
color: AppTheme.primaryTextColor,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () async {
|
||||
context.pop();
|
||||
},
|
||||
// TODO
|
||||
// onPressed: () async {
|
||||
// context.pop();
|
||||
// },
|
||||
),
|
||||
actions: const [],
|
||||
centerTitle: false,
|
||||
@@ -199,47 +201,30 @@ class _ImageDetailsWidgetState extends State<ImageDetailsWidget>
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
SelectionArea(
|
||||
const SelectionArea(
|
||||
child: AutoSizeText(
|
||||
'Thanks so much! We really do appreciate it!',
|
||||
textAlign: TextAlign.start,
|
||||
style: AppTheme
|
||||
.bodyMedium
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
lineHeight: 1.5,
|
||||
),
|
||||
style: AppTheme.bodyMedium,
|
||||
)),
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(
|
||||
const Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0, 4, 0, 0),
|
||||
child: Text(
|
||||
'Just Now',
|
||||
style: AppTheme
|
||||
.labelSmall
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.labelSmall,
|
||||
),
|
||||
),
|
||||
].divide(const SizedBox(width: 4)),
|
||||
),
|
||||
Padding(
|
||||
const Padding(
|
||||
padding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0, 4, 0, 0),
|
||||
EdgeInsetsDirectional.fromSTEB(0, 4, 0, 0),
|
||||
child: SelectionArea(
|
||||
child: AutoSizeText(
|
||||
'Thanks so much! We really do appreciate it!',
|
||||
textAlign: TextAlign.start,
|
||||
style: AppTheme
|
||||
.labelLarge
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
lineHeight: 1.5,
|
||||
),
|
||||
style: AppTheme.labelLarge,
|
||||
)),
|
||||
),
|
||||
],
|
||||
|
||||
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:provider/provider.dart';
|
||||
|
||||
import 'package:app/theme.dart';
|
||||
|
||||
import 'setup_model.dart';
|
||||
export 'setup_model.dart';
|
||||
|
||||
@@ -155,30 +157,30 @@ class _SetupWidgetState extends State<SetupWidget>
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
height: 500,
|
||||
decoration: BoxDecoration(
|
||||
decoration: const BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
colors: [
|
||||
AppTheme.primary,
|
||||
AppTheme.error,
|
||||
AppTheme.tertiary
|
||||
],
|
||||
stops: const [0, 0.5, 1],
|
||||
begin: const AlignmentDirectional(-1, -1),
|
||||
end: const AlignmentDirectional(1, 1),
|
||||
stops: [0, 0.5, 1],
|
||||
begin: AlignmentDirectional(-1, -1),
|
||||
end: AlignmentDirectional(1, 1),
|
||||
),
|
||||
),
|
||||
child: Container(
|
||||
width: 100,
|
||||
height: 100,
|
||||
decoration: BoxDecoration(
|
||||
decoration: const BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
colors: [
|
||||
const Color(0x00FFFFFF),
|
||||
Color(0x00FFFFFF),
|
||||
AppTheme.secondaryBackground
|
||||
],
|
||||
stops: const [0, 1],
|
||||
begin: const AlignmentDirectional(0, -1),
|
||||
end: const AlignmentDirectional(0, 1),
|
||||
stops: [0, 1],
|
||||
begin: AlignmentDirectional(0, -1),
|
||||
end: AlignmentDirectional(0, 1),
|
||||
),
|
||||
),
|
||||
child: Column(
|
||||
@@ -188,7 +190,7 @@ class _SetupWidgetState extends State<SetupWidget>
|
||||
Container(
|
||||
width: 120,
|
||||
height: 120,
|
||||
decoration: BoxDecoration(
|
||||
decoration: const BoxDecoration(
|
||||
color: AppTheme.accent4,
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
@@ -205,27 +207,18 @@ class _SetupWidgetState extends State<SetupWidget>
|
||||
animationsMap['containerOnPageLoadAnimation2']!),
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0, 44, 0, 0),
|
||||
child: Text(
|
||||
child: const Text(
|
||||
'Welcome!',
|
||||
style: AppTheme
|
||||
.displaySmall
|
||||
.override(
|
||||
fontFamily: 'Outfit',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.displaySmall,
|
||||
).animateOnPageLoad(
|
||||
animationsMap['textOnPageLoadAnimation1']!),
|
||||
),
|
||||
Padding(
|
||||
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!',
|
||||
textAlign: TextAlign.center,
|
||||
style:
|
||||
AppTheme.labelMedium.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
style: AppTheme.labelMedium,
|
||||
).animateOnPageLoad(
|
||||
animationsMap['textOnPageLoadAnimation2']!),
|
||||
),
|
||||
@@ -258,13 +251,9 @@ class _SetupWidgetState extends State<SetupWidget>
|
||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||
color: AppTheme
|
||||
.secondaryBackground,
|
||||
textStyle:
|
||||
AppTheme.bodyLarge.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
letterSpacing: 0,
|
||||
),
|
||||
textStyle: AppTheme.bodyLarge,
|
||||
elevation: 0,
|
||||
borderSide: BorderSide(
|
||||
borderSide: const BorderSide(
|
||||
color: AppTheme.alternate,
|
||||
width: 2,
|
||||
),
|
||||
@@ -291,13 +280,7 @@ class _SetupWidgetState extends State<SetupWidget>
|
||||
iconPadding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0),
|
||||
color: AppTheme.primary,
|
||||
textStyle: AppTheme
|
||||
.titleSmall
|
||||
.override(
|
||||
fontFamily: 'Readex Pro',
|
||||
color: Colors.white,
|
||||
letterSpacing: 0,
|
||||
),
|
||||
textStyle: AppTheme.titleSmall,
|
||||
elevation: 3,
|
||||
borderSide: const BorderSide(
|
||||
color: Colors.transparent,
|
||||
|
||||
@@ -131,11 +131,11 @@ class _SupportFormWidgetState extends State<SupportFormWidget>
|
||||
buttonSize: 60,
|
||||
icon: const Icon(
|
||||
Icons.arrow_back_rounded,
|
||||
color: AppTheme.primaryText,
|
||||
color: AppTheme.primaryTextColor,
|
||||
size: 30,
|
||||
),
|
||||
onPressed: () async {
|
||||
context.pop();
|
||||
//TODO: context.pop();
|
||||
},
|
||||
),
|
||||
title: const Text(
|
||||
|
||||
@@ -6,19 +6,32 @@ class AppTheme {
|
||||
static const tertiary = Colors.white;
|
||||
static const alternate = Colors.purple;
|
||||
|
||||
static const accent1 = Colors.amber;
|
||||
static const accent4 = Colors.amber;
|
||||
|
||||
static const primaryBackground = Colors.purple;
|
||||
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 bodyLarge = TextStyle(color: Colors.white, fontSize: 24);
|
||||
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 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 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 headlineSmall = TextStyle(color: Colors.blue, fontWeight: FontWeight.bold);
|
||||
|
||||
static const titleLarge = TextStyle(fontFamily: 'Outfit', letterSpacing: 0, fontSize: 24);
|
||||
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"
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||
#include "ephemeral/Flutter-Generated.xcconfig"
|
||||
|
||||
@@ -10,6 +10,7 @@ import rive_common
|
||||
import shared_preferences_foundation
|
||||
import sqflite
|
||||
import url_launcher_macos
|
||||
import video_player_avfoundation
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||
@@ -17,4 +18,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||
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
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
|
||||
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.4"
|
||||
version: "10.0.5"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
|
||||
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.3"
|
||||
version: "3.0.5"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -572,10 +572,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.8.0"
|
||||
version: "0.11.1"
|
||||
maybe_just_nothing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -588,10 +588,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
|
||||
sha256: "25dfcaf170a0190f47ca6355bdd4552cb8924b430512ff0cafb8db9bd41fe33b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.12.0"
|
||||
version: "1.14.0"
|
||||
mime_type:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1001,10 +1001,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
||||
sha256: "2419f20b0c8677b2d67c8ac4d1ac7372d862dc6c460cdbb052b40155408cd794"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.0"
|
||||
version: "0.7.1"
|
||||
timeago:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1101,14 +1101,54 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
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:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
|
||||
sha256: "7475cb4dd713d57b6f7464c0e13f06da0d535d8b2067e188962a59bac2cf280b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.2.1"
|
||||
version: "14.2.2"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@@ -43,6 +43,7 @@ dependencies:
|
||||
google_fonts: any
|
||||
provider: any
|
||||
easy_debounce: any
|
||||
video_player: ^2.9.1
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
Submodule
+1
Submodule one-ai-mobile added at dd29a001e9
Reference in New Issue
Block a user