feat(auth): refactor token retrieval to use maybeWhen for improved null handling
This commit is contained in:
@@ -50,7 +50,6 @@ class _RecipeImportTabState extends ConsumerState<RecipeImportTab> {
|
||||
if (result == null || result.files.isEmpty) return;
|
||||
setState(() {
|
||||
_pickedFile = result.files.first;
|
||||
_error = null;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -65,7 +64,10 @@ class _RecipeImportTabState extends ConsumerState<RecipeImportTab> {
|
||||
setState(() => _isLoading = true);
|
||||
|
||||
try {
|
||||
final token = ref.read(authStateProvider).valueOrNull ??
|
||||
final token = ref.read(authStateProvider).maybeWhen(
|
||||
data: (t) => t,
|
||||
orElse: () => null,
|
||||
) ??
|
||||
await ref.read(authStateProvider.future);
|
||||
final repo = ref.read(importRepositoryProvider);
|
||||
final result = _method == _Method.file
|
||||
|
||||
@@ -24,9 +24,12 @@ class RecipeDetailScreen extends ConsumerWidget {
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final recipeAsync = ref.watch(recipeDetailProvider(recipeId));
|
||||
final token = ref.watch(authStateProvider).valueOrNull;
|
||||
final token = ref.watch(authStateProvider).maybeWhen(
|
||||
data: (t) => t,
|
||||
orElse: () => null,
|
||||
);
|
||||
final currentUserId = jwtUserId(token);
|
||||
final recipe = recipeAsync.valueOrNull;
|
||||
final recipe = recipeAsync.asData?.value;
|
||||
final isOwner = recipe != null && currentUserId != null && recipe.ownerId == currentUserId;
|
||||
|
||||
return Scaffold(
|
||||
@@ -164,7 +167,10 @@ class RecipeDetailScreen extends ConsumerWidget {
|
||||
Recipe recipe,
|
||||
) async {
|
||||
try {
|
||||
final token = ref.read(authStateProvider).valueOrNull ??
|
||||
final token = ref.read(authStateProvider).maybeWhen(
|
||||
data: (t) => t,
|
||||
orElse: () => null,
|
||||
) ??
|
||||
await ref.read(authStateProvider.future);
|
||||
await ref.read(recipeRepositoryProvider).setRecipeVisibility(
|
||||
recipe.id,
|
||||
@@ -242,7 +248,10 @@ class RecipeDetailScreen extends ConsumerWidget {
|
||||
if (trimmed.isEmpty) return;
|
||||
|
||||
try {
|
||||
final token = ref.read(authStateProvider).valueOrNull ??
|
||||
final token = ref.read(authStateProvider).maybeWhen(
|
||||
data: (t) => t,
|
||||
orElse: () => null,
|
||||
) ??
|
||||
await ref.read(authStateProvider.future);
|
||||
if (action == _ShareAction.unshare) {
|
||||
await ref.read(recipeRepositoryProvider).unshareRecipeWithUsername(
|
||||
@@ -332,7 +341,10 @@ class _DeleteButton extends ConsumerWidget {
|
||||
if (confirmed != true || !context.mounted) return;
|
||||
|
||||
try {
|
||||
final token = ref.read(authStateProvider).valueOrNull ??
|
||||
final token = ref.read(authStateProvider).maybeWhen(
|
||||
data: (t) => t,
|
||||
orElse: () => null,
|
||||
) ??
|
||||
await ref.read(authStateProvider.future);
|
||||
await ref.read(recipeRepositoryProvider).deleteRecipe(recipe.id,
|
||||
token: token);
|
||||
|
||||
Reference in New Issue
Block a user