Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import 'package:flutter/material.dart';

import '../widgets/filter.dart';
import '../widgets/footer.dart';
import '../widgets/transaction.dart';
import '../widgets/vertical_divider.dart';
import '/widgets/app_bar.dart';

import '../widgets/header.dart';

class DailyTransactionsPage extends StatefulWidget {
const DailyTransactionsPage({super.key});

@override
State<DailyTransactionsPage> createState() => _DailyTransactionsPageState();
}

class _DailyTransactionsPageState extends State<DailyTransactionsPage> {
String selectedCurrency = 'TFT';
final List<String> currencies = ['TFT', 'All'];

void _onCurrencyChanged(String? newCurrency) {
if (newCurrency != null) {
setState(() {
selectedCurrency = newCurrency;
});
}
}

@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: const MyAppBar(title: 'Wallet'),
body: Column(
children: [
const WalletInfoHeader(email: 'Daily@username'),
const Divider(),
const SizedBox(height: 16),
FilterWidget(
currencies: currencies,
selectedCurrency: selectedCurrency,
onCurrencyChanged: _onCurrencyChanged,
),
const SizedBox(height: 16),
Expanded(
child: ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return Column(
children: [
TransactionWidget(
isIncoming: index % 2 == 0,
status: "Completed",
transactionId:
'VerlyLongTransacationIDkfuiuaiuagigiuagiuwaghwag $index',
tftAmount: 100.0 + index,
date: '2022-01-0${index + 1}',
),
index != 9
? const CustomVerticalDivider()
: const SizedBox(),
],
);
},
),
),
const Footer(),
],
),
),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import 'package:flutter/material.dart';
import 'package:threefold_connect/daily_transacations/presentation/widgets/footer.dart';
import 'package:threefold_connect/daily_transacations/presentation/widgets/header.dart';
import 'package:threefold_connect/daily_transacations/presentation/widgets/transaction_details.dart';
import 'package:threefold_connect/main.dart';
import 'package:threefold_connect/widgets/app_bar.dart';

class TransactionDetailsPage extends StatelessWidget {
final String transactionId;
final String status;
final String asset;
final String sender;
final String receiver;
final String paymentType;
final String transactionHash;
final String? memo;
final String amount;
final String date;

const TransactionDetailsPage({
super.key,
required this.transactionId,
required this.status,
required this.asset,
required this.sender,
required this.receiver,
required this.paymentType,
required this.transactionHash,
required this.amount,
required this.date,
this.memo,
});

@override
Widget build(BuildContext context) {
return const Scaffold(
appBar: MyAppBar(title: 'Wallet'),
body: Column(
children: [
WalletInfoHeader(email: 'Daily@username'),
Divider(),
Expanded(
child: SingleChildScrollView(
child: TransactionDetails(
transactionId: 'aufhiufa',
status: 'idk',
asset: 'TFT',
sender: 'akuakugagak',
receiver: 'wjbfafbafb',
paymentType: 'IDK',
transactionHash: 'iufwiufwiufwif',
amount: 'hmmmmm',
date: 'idk'),
),
),
Footer(),
],
),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import 'package:flutter/material.dart';
import 'dart:math' as math;

class ArrowInward extends StatelessWidget {
const ArrowInward({
Key? key,
}) : super(key: key);

@override
Widget build(BuildContext context) {
return Transform.rotate(
angle: 180 * math.pi / 180,
child: const Icon(
Icons.arrow_outward,
color: Colors.white,
),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import 'package:flutter/material.dart';

class FilterWidget extends StatelessWidget {
final List<String> currencies;
final String selectedCurrency;
final ValueChanged<String?> onCurrencyChanged;

const FilterWidget({
super.key,
required this.currencies,
required this.selectedCurrency,
required this.onCurrencyChanged,
});

@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Padding(
padding: EdgeInsets.symmetric(horizontal: 16),
child: Text(
'Filter by Currency',
style: TextStyle(fontSize: 16, color: Colors.white),
),
),
const SizedBox(height: 8),
Row(
children: [
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Container(
decoration: BoxDecoration(
color: Theme.of(context).scaffoldBackgroundColor,
border: Border.all(color: Theme.of(context).primaryColor),
borderRadius: BorderRadius.circular(8),
),
padding: const EdgeInsets.symmetric(horizontal: 16),
child: DropdownButtonHideUnderline(
child: DropdownButton<String>(
dropdownColor: Theme.of(context).scaffoldBackgroundColor,
style: const TextStyle(color: Colors.white),
value: selectedCurrency,
onChanged: onCurrencyChanged,
items: currencies
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
),
),
),
),
),
],
),
],
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
import 'package:threefold_connect/theme/theme.dart';

class Footer extends StatelessWidget {
const Footer({super.key});

@override
Widget build(BuildContext context) {
return BottomAppBar(
color: Theme.of(context).scaffoldBackgroundColor,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
_buildFooterButton(Icons.money, () {
// Handle button press
}),
_buildFooterButton(Icons.compare_arrows_sharp, () {
// Handle button press
}),
_buildFooterButton(Icons.info_outline, () {
// Handle button press
}),
],
),
);
}

Widget _buildFooterButton(IconData icon, VoidCallback onPressed) {
return Expanded(
child: Container(
margin: const EdgeInsets.all(8.0),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: darkgrey,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(0),
),
),
onPressed: onPressed,
child: Icon(icon),
),
),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import 'package:flutter/material.dart';

class WalletInfoHeader extends StatelessWidget {
final String email;

const WalletInfoHeader({super.key, required this.email});

@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.all(16),
child: Row(
children: [
const Icon(Icons.wallet),
Expanded(
child: Align(
alignment: Alignment.center,
child: Column(
children: [
const Text(
'Daily',
style: TextStyle(
fontSize: 20,
color: Colors.white,
fontWeight: FontWeight.bold,
),
),
Text(
email,
style: const TextStyle(
fontSize: 16,
color: Colors.white,
),
),
],
),
),
),
],
),
);
}
}
Loading