showConnectWallet method

Future<bool?> showConnectWallet(
  1. BuildContext context, {
  2. required String address,
  3. required InAppWebViewController ctrl,
  4. required String appName,
})

Implementation

Future<bool?> showConnectWallet(
  BuildContext context, {
  required String address,
  required InAppWebViewController ctrl,
  required String appName,
}) async {
  final requestFrom = (await ctrl.getUrl())?.host ?? '';

  return await _showDialog(
    context: context,
    builder: (context) => Container(
      decoration: BoxDecoration(
        color: _theme.backgroundColor,
        borderRadius: BorderRadius.only(
          topLeft: Radius.circular(_theme.borderRadius),
          topRight: Radius.circular(_theme.borderRadius),
        ),
      ),
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          // Handle bar
          Container(
            margin: const EdgeInsets.only(top: 12),
            width: 40,
            height: 4,
            decoration: BoxDecoration(
              color: _theme.borderColor,
              borderRadius: BorderRadius.circular(2),
            ),
          ),
          Flexible(
            child: ListView(
              shrinkWrap: true,
              padding: _theme.contentPadding,
              children: [
                _buildDialogHeader('$appName wants to connect'),
                SizedBox(height: _theme.itemSpacing),
                _buildInfoRow('Request from', requestFrom),
                SizedBox(height: _theme.itemSpacing),
                _buildInfoRow(
                    'Wallet address', address.ellipsisMidWalletAddress()),
                SizedBox(height: _theme.itemSpacing),
                _buildPermissionsSection(),
                SizedBox(height: _theme.itemSpacing * 2),
                _buildActionButtons(
                  context: context,
                  cancelText: 'Cancel',
                  confirmText: 'Connect',
                ),
                const SizedBox(height: 16),
              ],
            ),
          ),
        ],
      ),
    ),
  );
}