post capsule

NOTIF_CAPSULE_LDE
Lucas Delanier 2 years ago
parent 60ee9d2700
commit 497120a057

@ -16,6 +16,13 @@
</list>
</value>
</entry>
<entry key="another_flushbar">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/another_flushbar-1.12.30/lib" />
</list>
</value>
</entry>
<entry key="async">
<value>
<list>
@ -742,6 +749,7 @@
<CLASSES>
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/_flutterfire_internals-1.3.4/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/animated_appear-0.0.4/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/another_flushbar-1.12.30/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.11.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/audioplayers-4.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/audioplayers_android-3.0.2/lib" />

@ -1,7 +1,10 @@
import 'package:another_flushbar/flushbar.dart';
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:ionicons/ionicons.dart';
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
import '../config/routes.dart';
import '../values/constants.dart';
@ -15,13 +18,59 @@ class TopNavBarComponent extends StatefulWidget {
State<TopNavBarComponent> createState() => _TopNavBarComponentState();
}
class _TopNavBarComponentState extends State<TopNavBarComponent> {
class _TopNavBarComponentState extends State<TopNavBarComponent>
with TickerProviderStateMixin {
bool choice = true;
late AnimationController _controller;
void actionSurBouton() {
widget.callback(choice);
}
@override
void initState() {
_controller = AnimationController(
vsync: this,
duration: Duration(seconds: 3),
);
super.initState();
}
void showCapsuleDot() {
Flushbar(
maxWidth: 210,
animationDuration: Duration(seconds: 1),
forwardAnimationCurve: Curves.easeOutCirc,
margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
icon: Icon(
Ionicons.sparkles,
color: Colors.grey,
size: 22,
),
padding: EdgeInsets.fromLTRB(8, 8, 8, 8),
messageText: Align(
alignment: Alignment.centerLeft,
child: Text(
"Capsule disponible",
style: GoogleFonts.plusJakartaSans(color: Colors.grey, fontSize: 15),
),
),
flushbarStyle: FlushbarStyle.FLOATING,
flushbarPosition: FlushbarPosition.BOTTOM,
textDirection: Directionality.of(context),
borderRadius: BorderRadius.circular(1000),
borderWidth: 1,
borderColor: Colors.white.withOpacity(0.04),
duration: const Duration(minutes: 100),
leftBarIndicatorColor: Colors.transparent,
positionOffset: 20,
onTap: (_) {
Navigator.pop(context);
Navigator.pushNamed(context, '/post');
},
).show(context);
}
@override
Widget build(BuildContext context) {
return Padding(
@ -38,11 +87,12 @@ class _TopNavBarComponentState extends State<TopNavBarComponent> {
flex: 1,
child: GestureDetector(
onTap: () {
Navigator.pushNamed(context, '/post');
showCapsuleDot();
},
child: const Image(
image: AssetImage("assets/images/add_friend.png"),
width: 25,
child: const Icon(
Icons.person_add_alt_1_rounded,
color: Colors.white,
size: 30,
),
),
),
@ -51,10 +101,19 @@ class _TopNavBarComponentState extends State<TopNavBarComponent> {
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
const Image(
image: AssetImage("assets/images/logo.png"),
height: 30,
),
ZoomTapAnimation(
enableLongTapRepeatEvent: false,
longTapRepeatDuration: const Duration(milliseconds: 100),
begin: 1.0,
end: 0.97,
beginDuration: const Duration(milliseconds: 70),
endDuration: const Duration(milliseconds: 100),
beginCurve: Curves.decelerate,
endCurve: Curves.easeInOutSine,
child: Image(
image: AssetImage("assets/images/logo.png"),
height: 30,
)),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -139,7 +198,7 @@ class _TopNavBarComponentState extends State<TopNavBarComponent> {
// Image radius
child: const Image(
image: AssetImage("assets/images/exemple_profile.png"),
width: 25,
width: 30,
),
),
),

@ -1,3 +1,4 @@
import 'package:another_flushbar/flushbar.dart';
import 'package:circular_reveal_animation/circular_reveal_animation.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -16,8 +17,7 @@ class FeedScreen extends StatefulWidget {
State<FeedScreen> createState() => _FeedScreenState();
}
class _FeedScreenState extends State<FeedScreen>
with SingleTickerProviderStateMixin {
class _FeedScreenState extends State<FeedScreen> with TickerProviderStateMixin {
late AnimationController animationController;
late Animation<double> animation;
late List<PostComponent> friendFeed;

@ -76,6 +76,12 @@ class _SearchSongScreenState extends State<SearchSongScreen> {
}
}
@override
void dispose() {
MyApp.audioPlayer.pause();
super.dispose();
}
@override
Widget build(BuildContext context) {
double screenHeight = MediaQuery.of(context).size.height;

@ -17,6 +17,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.0.4"
another_flushbar:
dependency: "direct main"
description:
name: another_flushbar
sha256: "19bf9520230ec40b300aaf9dd2a8fefcb277b25ecd1c4838f530566965befc2a"
url: "https://pub.dev"
source: hosted
version: "1.12.30"
async:
dependency: transitive
description:

@ -64,6 +64,7 @@ dependencies:
geolocator: ^9.0.2
tuple: ^2.0.2
firebase_storage: ^11.2.5
another_flushbar: ^1.12.30
dev_dependencies:
flutter_test:

Loading…
Cancel
Save