Fakultas Ilmu Komputer UI

Skip to content
Snippets Groups Projects
Verified Commit b76f1123 authored by Sage Muhammad Abdullah's avatar Sage Muhammad Abdullah
Browse files

Create KontakWidget

parent e4245c88
Branches
No related tags found
2 merge requests!10New version number and Enabling Agregasi Kebutuhan Page,!6First Version go to master
Pipeline #37161 passed
...@@ -3,6 +3,7 @@ import 'package:flutter/widgets.dart'; ...@@ -3,6 +3,7 @@ import 'package:flutter/widgets.dart';
import 'package:mobile_apps/src/common/constants.dart'; import 'package:mobile_apps/src/common/constants.dart';
import 'package:mobile_apps/src/screens/home/institusi/list_institusi.dart'; import 'package:mobile_apps/src/screens/home/institusi/list_institusi.dart';
import 'package:mobile_apps/src/screens/home/inventories/inventories.dart'; import 'package:mobile_apps/src/screens/home/inventories/inventories.dart';
import 'package:mobile_apps/src/screens/home/kontak/kontak.dart';
import 'package:mobile_apps/src/services/auth_service.dart'; import 'package:mobile_apps/src/services/auth_service.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -33,6 +34,10 @@ class HomeScreen extends StatelessWidget { ...@@ -33,6 +34,10 @@ class HomeScreen extends StatelessWidget {
padding: EdgeInsets.only(top: 24.0), padding: EdgeInsets.only(top: 24.0),
child: InventoriesWidget(), child: InventoriesWidget(),
), ),
Padding(
padding: EdgeInsets.only(top: 24.0),
child: KontakWidget('1')
),
Padding( Padding(
padding: EdgeInsets.only(top: 24.0), padding: EdgeInsets.only(top: 24.0),
child: ListInstitusiWidget(), child: ListInstitusiWidget(),
......
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/widgets.dart';
import 'package:mobile_apps/src/models/kontak.dart';
import 'package:mobile_apps/src/repositories/kontak_repository.dart';
class KontakWidget extends StatelessWidget {
final String institusi;
const KontakWidget(this.institusi, {Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
final repository = KontakRepository();
return Card(
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 12, vertical: 16),
child: Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
Row(
children: <Widget>[
Text('Kontak untuk Donasi',
style: Theme.of(context)
.textTheme
.headline6
.copyWith(fontWeight: FontWeight.bold))
],
),
StreamBuilder(
stream: repository.kontakCollections(institusi).snapshots(),
builder: (_, snapshot) {
if (snapshot.hasError) {
SchedulerBinding.instance.addPostFrameCallback((_) {
Text(
'Oops! Ada sesuatu yang salah, mohon coba lagi ya.');
});
}
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
}
final semuaKontak = repository.semuaKontak(snapshot).take(5);
return Column(
children: [
...semuaKontak
.map((kontak) => KontakInfo(kontak))
.toList(),
],
);
},
)
])));
}
}
class KontakInfo extends StatelessWidget {
final Kontak kontak;
const KontakInfo(this.kontak, {Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Expanded(
child: Text(kontak.jabatan.toUpperCase(),
style: Theme.of(context)
.textTheme
.subtitle1
.copyWith(fontWeight: FontWeight.bold))),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(kontak.nama, style: Theme.of(context).textTheme.subtitle2),
Text(kontak.telepon,
style: Theme.of(context).textTheme.subtitle2),
Text(kontak.email, style: Theme.of(context).textTheme.subtitle2)
],
))
],
));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment