Fakultas Ilmu Komputer UI

Commit c21df6bc authored by wibias fuad's avatar wibias fuad
Browse files

Merge branch 'pbi-21-all-agreement' into 'staging'

Pbi 21 all agreement

See merge request !43
parents f3da0889 256c9306
Pipeline #77358 passed with stages
in 25 minutes and 9 seconds
This diff is collapsed.
This diff is collapsed.
2.0.1
\ No newline at end of file
2.0.3
\ No newline at end of file
# This is a generated file; do not edit or check into version control.
flutter_keyboard_visibility=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\flutter_keyboard_visibility-5.0.0\\
flutter_keyboard_visibility_web=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\flutter_keyboard_visibility_web-2.0.0\\
flutter_plugin_android_lifecycle=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\flutter_plugin_android_lifecycle-2.0.1\\
flutter_secure_storage=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\flutter_secure_storage-3.3.5\\
image_picker=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\image_picker-0.7.4\\
image_picker_for_web=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\image_picker_for_web-2.0.0\\
path_provider=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider-2.0.1\\
path_provider_linux=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_linux-2.0.0\\
path_provider_macos=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_macos-2.0.0\\
path_provider_windows=C:\\src\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_windows-2.0.0\\
flutter_keyboard_visibility=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\flutter_keyboard_visibility-5.0.0\\
flutter_keyboard_visibility_web=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\flutter_keyboard_visibility_web-2.0.0\\
flutter_plugin_android_lifecycle=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\flutter_plugin_android_lifecycle-2.0.1\\
flutter_secure_storage=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\flutter_secure_storage-3.3.5\\
image_picker=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\image_picker-0.7.4\\
image_picker_for_web=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\image_picker_for_web-2.0.0\\
path_provider=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider-2.0.1\\
path_provider_linux=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_linux-2.0.0\\
path_provider_macos=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_macos-2.0.0\\
path_provider_windows=C:\\flutter\\flutter\\.pub-cache\\hosted\\pub.dartlang.org\\path_provider_windows-2.0.0\\
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_keyboard_visibility","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_keyboard_visibility-5.0.0\\\\","dependencies":[]},{"name":"flutter_secure_storage","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_secure_storage-3.3.5\\\\","dependencies":[]},{"name":"image_picker","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker-0.7.4\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-2.0.1\\\\","dependencies":[]}],"android":[{"name":"flutter_keyboard_visibility","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_keyboard_visibility-5.0.0\\\\","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_plugin_android_lifecycle-2.0.1\\\\","dependencies":[]},{"name":"flutter_secure_storage","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_secure_storage-3.3.5\\\\","dependencies":[]},{"name":"image_picker","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker-0.7.4\\\\","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"path_provider","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-2.0.1\\\\","dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_macos-2.0.0\\\\","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_linux-2.0.0\\\\","dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_windows-2.0.0\\\\","dependencies":[]}],"web":[{"name":"flutter_keyboard_visibility_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_keyboard_visibility_web-2.0.0\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker_for_web-2.0.0\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_keyboard_visibility","dependencies":["flutter_keyboard_visibility_web"]},{"name":"flutter_keyboard_visibility_web","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle","image_picker_for_web"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux","path_provider_windows"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]}],"date_created":"2021-05-17 08:14:20.834658","version":"2.0.1"}
\ No newline at end of file
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_keyboard_visibility","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_keyboard_visibility-5.0.0\\\\","dependencies":[]},{"name":"flutter_secure_storage","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_secure_storage-3.3.5\\\\","dependencies":[]},{"name":"image_picker","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker-0.7.4\\\\","dependencies":[]},{"name":"path_provider","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-2.0.1\\\\","dependencies":[]}],"android":[{"name":"flutter_keyboard_visibility","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_keyboard_visibility-5.0.0\\\\","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_plugin_android_lifecycle-2.0.1\\\\","dependencies":[]},{"name":"flutter_secure_storage","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_secure_storage-3.3.5\\\\","dependencies":[]},{"name":"image_picker","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker-0.7.4\\\\","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"path_provider","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider-2.0.1\\\\","dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_macos-2.0.0\\\\","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_linux-2.0.0\\\\","dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\path_provider_windows-2.0.0\\\\","dependencies":[]}],"web":[{"name":"flutter_keyboard_visibility_web","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_keyboard_visibility_web-2.0.0\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\flutter\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker_for_web-2.0.0\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_keyboard_visibility","dependencies":["flutter_keyboard_visibility_web"]},{"name":"flutter_keyboard_visibility_web","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle","image_picker_for_web"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux","path_provider_windows"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]}],"date_created":"2021-05-17 09:09:28.713277","version":"2.0.3"}
\ No newline at end of file
......@@ -4,7 +4,7 @@ stages:
- linter
- test_coverage
- sonar
# - build_android
- build_android
before_script:
- flutter pub get
......@@ -64,16 +64,16 @@ SonarScanner:
- staging
# build_android:
# stage: build_android
# before_script:
# - flutter packages get
# - flutter clean
# script:
# - flutter build apk
# artifacts:
# paths:
# - build/app/outputs/apk/release/app-release.apk
# only:
# - master
# - staging
build_android:
stage: build_android
before_script:
- flutter packages get
- flutter clean
script:
- flutter build apk
artifacts:
paths:
- build/app/outputs/apk/release/app-release.apk
only:
- master
- staging
This diff is collapsed.
sdk.dir=C:\\Users\\Manuel Yoseph Ray\\AppData\\Local\\Android\\sdk
flutter.sdk=C:\\src\\flutter
sdk.dir=C:\\Users\\Acer\\AppData\\Local\\Android\\sdk
flutter.sdk=C:\\flutter\\flutter
=======
flutter.buildMode=debug
flutter.versionName=1.0.0
......
// This is a generated file; do not edit or check into version control.
FLUTTER_ROOT=C:\src\flutter
FLUTTER_APPLICATION_PATH=C:\Users\Manuel Yoseph Ray\Desktop\Semester 6\PPL\Project\test\register\ppl2021-d-slhape
FLUTTER_ROOT=C:\flutter\flutter
FLUTTER_APPLICATION_PATH=E:\Fasilkom\Semester 6\Proyek Perangkat Lunak\all-agreement\ppl2021-d-slhape
FLUTTER_TARGET=lib\main.dart
FLUTTER_BUILD_DIR=build
SYMROOT=${SOURCE_ROOT}/../build\ios
......
#!/bin/sh
# This is a generated file; do not edit or check into version control.
export "FLUTTER_ROOT=C:\src\flutter"
export "FLUTTER_APPLICATION_PATH=C:\Users\Manuel Yoseph Ray\Desktop\Semester 6\PPL\Project\test\register\ppl2021-d-slhape"
export "FLUTTER_ROOT=C:\flutter\flutter"
export "FLUTTER_APPLICATION_PATH=E:\Fasilkom\Semester 6\Proyek Perangkat Lunak\all-agreement\ppl2021-d-slhape"
export "FLUTTER_TARGET=lib\main.dart"
export "FLUTTER_BUILD_DIR=build"
export "SYMROOT=${SOURCE_ROOT}/../build\ios"
......
......@@ -76,9 +76,21 @@ class Api {
print('pinter');
var jsonObject = json.decode(apiResult.body);
var accessToken = (jsonObject as Map<String, dynamic>)['access_token'];
//var jsonData = (jsonObject as Map<String, dynamic>)['data'];
await secureStorage.writeSecureData('accessToken', accessToken);
print(await secureStorage.readSecureData('accessToken'));
var jsonData = (jsonObject as Map<String, dynamic>)['data'];
var userInfo = (jsonData as Map<String, dynamic>)['user_info'];
var userName = (userInfo as Map<String, dynamic>)['name'];
var userRole = (userInfo as Map<String, dynamic>)['role'];
var userProfilePic =
(userInfo as Map<String, dynamic>)['profile_picture'];
await secureStorage.writeSecureData('userName', userName);
print('username: ' + await secureStorage.readSecureData('userName'));
await secureStorage.writeSecureData('userRole', userRole);
print('userRole: ' + await secureStorage.readSecureData('userRole'));
await secureStorage.writeSecureData('userProfilePic', userProfilePic);
print('userProfilePic: ' +
await secureStorage.readSecureData('userProfilePic'));
} else if (apiResult.statusCode == 400) {
print("Failed");
} else {
......
import 'package:flutter/material.dart';
import 'package:fundex_app/my_flutter_app_icons.dart';
import 'package:fundex_app/pages/business/homekyc.dart';
import 'package:fundex_app/pages/profile/akun.dart';
import 'package:fundex_app/pages/profile/profile_base_page.dart';
import 'package:fundex_app/pages/transaction/DetailTransactionPembelian.dart';
import 'package:google_fonts/google_fonts.dart';
......@@ -18,7 +18,7 @@ class _MainScreenState extends State<MainScreen> {
HomeKYC(),
DetailTransactionPembelian(),
HomeKYC(),
Akun(),
ProfilBasePage(),
];
@override
......
import 'package:flutter/material.dart';
import 'package:fundex_app/assets/colors.dart';
import 'package:fundex_app/my_flutter_app_icons.dart';
import 'package:fundex_app/pages/profile/all_agreement.dart';
import 'package:fundex_app/storage/storage.dart';
class Akun extends StatefulWidget {
Akun({Key key, this.title}) : super(key: key);
......@@ -15,6 +17,29 @@ class _AkunState extends State<Akun> {
// INSERT MODULE TO SETSTATE HERE
//
//
String userName;
String userRole;
String userProfilePic;
@override
void initState() {
super.initState();
init();
}
Future init() async {
final userName = await SecureStorage().readSecureData('userName') ?? '';
final userRole = await SecureStorage().readSecureData('userRole') ?? '';
final userProfilePic =
await SecureStorage().readSecureData('userProfilePic') ??
'https://picsum.photos/250?image=9';
setState(() {
this.userName = userName;
this.userRole = userRole;
this.userProfilePic = userProfilePic;
});
}
@override
Widget build(BuildContext context) {
double phoneWidth = MediaQuery.of(context).size.width;
......@@ -48,6 +73,10 @@ class _AkunState extends State<Akun> {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
userProfilePic,
style: TextStyle(fontSize: 36),
),
Expanded(
flex: 16,
child: Container(
......@@ -65,11 +94,7 @@ class _AkunState extends State<Akun> {
children: [
Container(
margin: EdgeInsets.fromLTRB(16, 0, 0, 0),
child: Icon(
Icons.supervised_user_circle,
size: 48,
key: Key('userPhoto'),
),
child: Image.network(userProfilePic),
),
Container(
margin: EdgeInsets.fromLTRB(16, 0, 0, 0),
......@@ -82,7 +107,7 @@ class _AkunState extends State<Akun> {
Container(
padding: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Text(
'Yaumil Ihsan Ramadhan',
userName,
key: Key('usernameText'),
style: TextStyle(
fontWeight: FontWeight.bold,
......@@ -94,7 +119,7 @@ class _AkunState extends State<Akun> {
Container(
padding: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Text(
'Pemodal Perorangan',
userRole,
key: Key('usertypeText'),
style: TextStyle(
fontWeight: FontWeight.bold,
......@@ -180,57 +205,68 @@ class _AkunState extends State<Akun> {
),
Expanded(
flex: 40,
child: Container(
key: Key('dataContainer-2'),
color: Colors.white,
margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Flex(
direction: Axis.horizontal,
children: [
Container(
key: Key('leftContainer-1'),
width: phoneWidth / 2 - 16,
margin: EdgeInsets.fromLTRB(16, 0, 0, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Icon(
MyFlutterApp.perjanjian,
size: 20,
key: Key('perjanjianIcon'),
),
Container(
margin: EdgeInsets.fromLTRB(12, 0, 0, 0),
child: Text(
'Perjanjian',
style: TextStyle(
fontWeight: FontWeight.normal,
fontSize: 12,
fontFamily: 'Noto Sans',
color: profil,
child: Material(
child: InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AllAgreement()));
},
splashColor: gray1,
child: Container(
key: Key('dataContainer-2'),
color: Colors.white,
margin: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Flex(
direction: Axis.horizontal,
children: [
Container(
key: Key('leftContainer-1'),
width: phoneWidth / 2 - 16,
margin: EdgeInsets.fromLTRB(16, 0, 0, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Icon(
MyFlutterApp.perjanjian,
size: 20,
key: Key('perjanjianIcon'),
),
key: Key('perjanjianText'),
),
Container(
margin: EdgeInsets.fromLTRB(12, 0, 0, 0),
child: Text(
'Perjanjian',
style: TextStyle(
fontWeight: FontWeight.normal,
fontSize: 12,
fontFamily: 'Noto Sans',
color: profil,
),
key: Key('perjanjianText'),
),
),
],
),
],
),
),
Container(
width: phoneWidth / 2 - 20,
key: Key('rightContainer-1'),
margin: EdgeInsets.fromLTRB(0, 0, 20, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Icon(
Icons.arrow_forward_ios,
size: 20,
key: Key('arrowIos-1'),
),
Container(
width: phoneWidth / 2 - 20,
key: Key('rightContainer-1'),
margin: EdgeInsets.fromLTRB(0, 0, 20, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Icon(
Icons.arrow_forward_ios,
size: 20,
key: Key('arrowIos-1'),
),
],
),
],
),
),
],
),
],
),
),
),
),
......
import 'package:flutter/material.dart';
import 'package:fundex_app/assets/colors.dart';
import 'package:fundex_app/pages/kyc/design.dart';
class AllAgreement extends StatefulWidget {
AllAgreement({Key key, this.title}) : super(key: key);
final String title;
@override
_AllAgreementState createState() => _AllAgreementState();
}
class _AllAgreementState extends State<AllAgreement>
with SingleTickerProviderStateMixin {
TabController controller;
@override
void initState() {
controller = new TabController(length: 2, vsync: this);
super.initState();
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
void doNothing() {}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
key: Key('scaffold'),
appBar: AppBar(
key: Key('appbar'),
backgroundColor: white,
title: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
IconButton(
key: Key('icon-back'),
icon: Icon(
Icons.arrow_back,
color: primary,
),
onPressed: () {
Navigator.pop(context);
},
),
Text(
'Perjanjian',
style: titleTextStyle(),
key: Key('text-perjanjian'),
),
],
),
),
body: Container(
key: Key('body'),
child: Flex(
direction: Axis.vertical,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 16,
child: Container(
color: background,
key: Key('marginContainer-0'),
),
),
Expanded(
flex: 56,
child: TabBar(
key: Key('tabbar'),
indicatorColor: primary,
indicatorWeight: 5.0,
labelColor: primary,
unselectedLabelColor: gray3,
controller: controller,
tabs: <Widget>[
Tab(
key: Key('tab-semua'),
text: 'Semua',
),
Tab(
key: Key('tab-perluTandaTangan'),
text: 'Perlu Tanda Tangan',
),
],
),
),
Expanded(
flex: 576,
child: TabBarView(
key: Key('tabbar-view'),
controller: controller,
children: <Widget>[
// Content 'SEMUA'
Scaffold(
key: Key('content-tabbar-semua'),
body: GridView.count(
crossAxisCount: 2,
mainAxisSpacing: 8,
crossAxisSpacing: 16,
children: List.generate(
10,
(index) {
return new Card(
key: Key('card-semua'),
elevation: 10,
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(8.0),
bottomRight: Radius.circular(8.0),
topLeft: Radius.circular(8.0),
topRight: Radius.circular(8.0),
),
),
child: Column(
children: [
Expanded(
flex: 7,
child: Container(
key: Key('containerForImage'),
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(8.0),
topRight: Radius.circular(8.0),
),
image: DecorationImage(
image: AssetImage(
'assets/images/gymInc.png'),
fit: BoxFit.cover,
),
),
),
),
Expanded(
flex: 10,
child: Column(
children: [
Container(
margin:
EdgeInsets.fromLTRB(0, 8, 0, 0),
child: Text(
'Investment Agreement',
style: TextStyle(
color: primary,
fontFamily: 'Noto Sans',
fontWeight: FontWeight.bold,
fontSize: 12),
),
),
SizedBox(
height: 30,
),
Container(
child: ElevatedButton(
onPressed: doNothing,
child: Text(
'Sign',
style: TextStyle(
color: Colors.white,
fontFamily: 'Noto Sans',
fontWeight: FontWeight.bold,
fontSize: 12),
),
style: ButtonStyle(
backgroundColor:
MaterialStateProperty.all<
Color>(primary),
shape:
MaterialStateProperty.all<
RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(
8),
),
),
),
),
),
],
),
),
],
),
),
);
},
),
),
),
// Content 'PERLU TANDA TANGAN'
Scaffold(
body: GridView.count(
crossAxisCount: 2,
mainAxisSpacing: 8,
crossAxisSpacing: 16,
children: List.generate(
5,
(index) {
return new Card(
key: Key('card-perluTandaTangan'),
elevation: 10,
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(8.0),
bottomRight: Radius.circular(8.0),
topLeft: Radius.circular(8.0),
topRight: Radius.circular(8.0),
),
),
child: Column(
children: [
Expanded(
flex: 7,
child: Container(
key: Key('containerForImage'),
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(8.0),
topRight: Radius.circular(8.0),
),
image: DecorationImage(
image: AssetImage(
'assets/images/gymInc.png'),
fit: BoxFit.cover,
),
),
),
),
Expanded(
flex: 10,
child: Column(
children: [
Container(
margin:
EdgeInsets.fromLTRB(0, 8, 0, 0),
child: Text(
'Investment Agreement',
style: TextStyle(
color: primary,
fontFamily: 'Noto Sans',