refactor: Replace user bottom sheet with menu and small dialog

Signed-off-by: Krille <c.kussowski@famedly.com>
This commit is contained in:
Krille 2025-04-10 18:27:16 +02:00
commit a12c48fae6
No known key found for this signature in database
GPG key ID: E067ECD60F1A0652
21 changed files with 734 additions and 851 deletions

View file

@ -1,19 +1,18 @@
import 'package:flutter/material.dart';
import 'package:collection/collection.dart' show IterableExtension;
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/utils/adaptive_bottom_sheet.dart';
import 'package:fluffychat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart';
import 'package:fluffychat/widgets/adaptive_dialogs/user_dialog.dart';
import 'package:fluffychat/widgets/future_loading_dialog.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:fluffychat/widgets/public_room_bottom_sheet.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:go_router/go_router.dart';
import 'package:matrix/matrix.dart';
import 'package:punycode/punycode.dart';
import 'package:url_launcher/url_launcher_string.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/pages/user_bottom_sheet/user_bottom_sheet.dart';
import 'package:fluffychat/utils/adaptive_bottom_sheet.dart';
import 'package:fluffychat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart';
import 'package:fluffychat/widgets/future_loading_dialog.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:fluffychat/widgets/public_room_bottom_sheet.dart';
import 'platform_infos.dart';
class UrlLauncher {
@ -221,13 +220,22 @@ class UrlLauncher {
}
}
} else if (identityParts.primaryIdentifier.sigil == '@') {
await showAdaptiveBottomSheet(
final userId = identityParts.primaryIdentifier;
var noProfileWarning = false;
final profileResult = await showFutureLoadingDialog(
context: context,
builder: (c) => LoadProfileBottomSheet(
userId: identityParts.primaryIdentifier,
outerContext: context,
future: () => matrix.client.getProfileFromUserId(userId).catchError(
(_) {
noProfileWarning = true;
return Profile(userId: userId);
},
),
);
await UserDialog.show(
context: context,
profile: profileResult.result!,
noProfileWarning: noProfileWarning,
);
}
}
}