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