Commit db304fe7 authored by Michal Cikatricis's avatar Michal Cikatricis
Browse files

Feat (home page): created stamp tile model with possibility to show stamp detail on tap

parent 19af3095
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:stamped/common/widget/page_template.dart';

class StampDetail extends StatelessWidget {
  final url;

  StampDetail({super.key, required this.url});

  @override
  Widget build(BuildContext context) {
    return PageTemplate(
      title: '',
      padding: 0,
      child: GestureDetector(
        onTap: () => Navigator.pop(context),
        child: Container(
          decoration: BoxDecoration(
            image: DecorationImage(
              image: NetworkImage(url),
              fit: BoxFit.contain,
            ),
          ),
        ),
      ),
    );
  }
}
+37 −0
Original line number Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:stamped/pages/collections/stamp_detail.dart';

class StampTile extends StatelessWidget {
  final String url;
  final double height;
  final double width;

  const StampTile({super.key, required this.url, this.height = 220, this.width = 150,});

  static StampTile fromData(String data) {
    return StampTile(url: data);
  }

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        Navigator.push(
          context,
          MaterialPageRoute(
              builder: (context) => StampDetail(url: url)),
        );
      },
      child: Container(
        height: height,
        width: width,
        decoration: BoxDecoration(
          image: DecorationImage(
            image: NetworkImage(url),
            fit: BoxFit.contain,
          ),
        ),
      ),
    );
  }
}
+2 −1
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ import 'package:stamped/common/widget/page_template.dart';
import 'package:stamped/common/widget/stream_builder_handler.dart';
import 'package:stamped/data/models/postcard.dart';
import 'package:stamped/pages/collections/postcard_tile.dart';
import 'package:stamped/pages/collections/stamp_tile.dart';
import 'package:stamped/service/postcard_service.dart';

class HomePage extends StatelessWidget {
@@ -29,7 +30,7 @@ class HomePage extends StatelessWidget {
            ),
            _buildHeading('Recently Obtained Stamps'),
            _buildScrollList<String>(
                context, 220, postcardService.stampStream, _stampBuilder),
                context, 220, postcardService.stampStream, StampTile.fromData),
            SizedBox(
              height: STANDARD_GAP,
            ),