buypeeb-mobile/lib/pages/main_page.dart
Lynnesbian caf0d03e3b
a lot of boo things
- split app into separate pages/routes
- put models in their own folder
- use provider to sync state between pages
- generate a preset list of items instead of an infinite amount
- added a splash screen
2020-09-30 11:45:57 +10:00

79 lines
2.2 KiB
Dart

import 'package:buyeeb_mobile/models/user_listings.dart';
import 'package:buyeeb_mobile/models/yahoo_auctions_item.dart';
import 'package:flutter/material.dart';
import 'package:sprintf/sprintf.dart';
import 'package:provider/provider.dart';
import 'dart:math';
class RouteHome extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Buypeeb",
theme: ThemeData(
primarySwatch: Colors.orange,
),
home: MainPage(),
);
}
}
class MainPage extends StatefulWidget {
@override
_MainPageState createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
final _items = <YahooAuctionsItem>[];
final _rng = new Random();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Buypeeb"), actions: [
IconButton(
icon: Icon(Icons.search),
onPressed: () => null,
tooltip: "Search",
),
IconButton(
icon: Icon(Icons.list),
onPressed: () => null,
tooltip: "Filter",
),
IconButton(
icon: Icon(Icons.settings),
onPressed: () => null,
tooltip: "Settings",
)
]),
body: _buildAuctionListings(),
);
}
Widget _buildAuctionListings() {
var listings = context.watch<UserListings>();
return ListView.builder(
padding: EdgeInsets.all(16.0),
// itemBuilder: (context, i) {
// if (i.isOdd) return Divider();
//
// final newItem = YahooAuctionsItem(id: "Henlo", name: "Hi Pempa!", price: _rng.nextInt(5000) + 500);
//
// _items.add(newItem);
//
// return ListTile(title: Text(newItem.name),
// subtitle: Text(sprintf("¥%d (≈\$%2.2f)", [newItem.price, newItem.getLocalPrice()])));
// },
itemCount: listings.items.length,
itemBuilder: (context, i) => ListTile(
title: Text(listings.items[i].name),
subtitle: Text(sprintf(
"¥%d (≈\$%2.2f)",
[listings.items[i].price, listings.items[i].getLocalPrice()]
)),
),
);
}
}