showAddLnurlWalletDialog function

Future<Wallet?> showAddLnurlWalletDialog(
  1. BuildContext context,
  2. NdkFlutter ndkFlutter, {
  3. bool returnToWalletType = false,
  4. AlbyGoConnectConfig albyGoConnectConfig = kDefaultAlbyGoConnectConfig,
})

Shows a dialog to add an LNURL wallet.

Returns the created Wallet if successful, or null if cancelled.

Implementation

Future<Wallet?> showAddLnurlWalletDialog(
  BuildContext context,
  NdkFlutter ndkFlutter, {
  bool returnToWalletType = false,
  AlbyGoConnectConfig albyGoConnectConfig = kDefaultAlbyGoConnectConfig,
}) async {
  final l10n = AppLocalizations.of(context)!;
  final identifierController = TextEditingController();

  // Check if user is logged in and has lud16 in their profile
  String? profileLud16;
  if (ndkFlutter.ndk.accounts.isLoggedIn) {
    final pubkey = ndkFlutter.ndk.accounts.getPublicKey();
    if (pubkey != null) {
      try {
        final metadata = await ndkFlutter.ndk.metadata.loadMetadata(pubkey);
        profileLud16 = metadata?.lud16;
      } catch (e) {
        // Ignore errors loading metadata
      }
    }
  }

  if (!context.mounted) return null;

  return showDialog<Wallet?>(
    context: context,
    builder: (dialogContext) {
      return _AddLnurlWalletDialog(
        l10n: l10n,
        identifierController: identifierController,
        profileLud16: profileLud16,
        ndkFlutter: ndkFlutter,
        parentContext: context,
        returnToWalletType: returnToWalletType,
        albyGoConnectConfig: albyGoConnectConfig,
      );
    },
  );
}