chore: filter login button with platform check

This commit is contained in:
2025-05-15 14:14:47 +01:00
parent 52953a4c16
commit 21f69e433e

View File

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:amberflutter/amberflutter.dart'; import 'package:amberflutter/amberflutter.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
@ -14,29 +16,30 @@ class LoginPage extends StatelessWidget {
return Column( return Column(
spacing: 20, spacing: 20,
children: [ children: [
FutureBuilder( if (Platform.isAndroid)
future: Amberflutter().isAppInstalled(), FutureBuilder(
builder: (ctx, state) { future: Amberflutter().isAppInstalled(),
if (state.data ?? false) { builder: (ctx, state) {
return BasicButton.text( if (state.data ?? false) {
"Login with Amber", return BasicButton.text(
onTap: () async { "Login with Amber",
final amber = Amberflutter(); onTap: () async {
final result = await amber.getPublicKey(); final amber = Amberflutter();
if (result['signature'] != null) { final result = await amber.getPublicKey();
final key = bech32ToHex(result['signature']); if (result['signature'] != null) {
loginData.value = LoginAccount.externalPublicKeyHex(key); final key = bech32ToHex(result['signature']);
if (ctx.mounted) { loginData.value = LoginAccount.externalPublicKeyHex(key);
ctx.go("/"); if (ctx.mounted) {
ctx.go("/");
}
} }
} },
}, );
); } else {
} else { return SizedBox.shrink();
return SizedBox.shrink(); }
} },
}, ),
),
BasicButton.text( BasicButton.text(
"Login with Key", "Login with Key",
onTap: () => context.push("/login/key"), onTap: () => context.push("/login/key"),