mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2026-07-06 17:31:33 +00:00
feat: add fadeSlideTransitionBuilder for smoother transitions in user login
This commit is contained in:
parent
ad0cd6e2ad
commit
a05f095892
2 changed files with 42 additions and 32 deletions
|
|
@ -39,22 +39,7 @@ class OnboardingSinglePage extends HookConsumerWidget {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class OnboardingBody extends HookConsumerWidget {
|
Widget fadeSlideTransitionBuilder(
|
||||||
const OnboardingBody({
|
|
||||||
super.key,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
|
||||||
final apiSettings = ref.watch(apiSettingsProvider);
|
|
||||||
final serverUriController = useTextEditingController(
|
|
||||||
text: apiSettings.activeServer?.serverUrl.toString() ?? 'https://',
|
|
||||||
);
|
|
||||||
var audiobookshelfUri = makeBaseUrl(serverUriController.text);
|
|
||||||
|
|
||||||
final canUserLogin = useState(apiSettings.activeServer != null);
|
|
||||||
|
|
||||||
fadeSlideTransitionBuilder(
|
|
||||||
Widget child,
|
Widget child,
|
||||||
Animation<double> animation,
|
Animation<double> animation,
|
||||||
) {
|
) {
|
||||||
|
|
@ -70,6 +55,21 @@ class OnboardingBody extends HookConsumerWidget {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class OnboardingBody extends HookConsumerWidget {
|
||||||
|
const OnboardingBody({
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
final apiSettings = ref.watch(apiSettingsProvider);
|
||||||
|
final serverUriController = useTextEditingController(
|
||||||
|
text: apiSettings.activeServer?.serverUrl.toString() ?? 'https://',
|
||||||
|
);
|
||||||
|
var audiobookshelfUri = makeBaseUrl(serverUriController.text);
|
||||||
|
|
||||||
|
final canUserLogin = useState(apiSettings.activeServer != null);
|
||||||
|
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_animate/flutter_animate.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:vaani/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:vaani/api/server_provider.dart';
|
import 'package:vaani/api/server_provider.dart';
|
||||||
|
import 'package:vaani/features/onboarding/view/onboarding_single_page.dart'
|
||||||
|
show fadeSlideTransitionBuilder;
|
||||||
import 'package:vaani/features/onboarding/view/user_login_with_open_id.dart';
|
import 'package:vaani/features/onboarding/view/user_login_with_open_id.dart';
|
||||||
import 'package:vaani/features/onboarding/view/user_login_with_password.dart';
|
import 'package:vaani/features/onboarding/view/user_login_with_password.dart';
|
||||||
import 'package:vaani/features/onboarding/view/user_login_with_token.dart';
|
import 'package:vaani/features/onboarding/view/user_login_with_token.dart';
|
||||||
|
|
@ -172,11 +175,17 @@ class UserLoginMultipleAuth extends HookConsumerWidget {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
].animate(interval: 100.ms).fadeIn(
|
||||||
|
duration: 150.ms,
|
||||||
|
curve: Curves.easeIn,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: AnimatedSwitcher(
|
||||||
|
duration: 200.ms,
|
||||||
|
transitionBuilder: fadeSlideTransitionBuilder,
|
||||||
child: switch (methodChoice.value) {
|
child: switch (methodChoice.value) {
|
||||||
AuthMethodChoice.authToken => UserLoginWithToken(
|
AuthMethodChoice.authToken => UserLoginWithToken(
|
||||||
server: server,
|
server: server,
|
||||||
|
|
@ -193,6 +202,7 @@ class UserLoginMultipleAuth extends HookConsumerWidget {
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue