mirror of
https://github.com/flutter/samples.git
synced 2025-11-11 23:39:14 +00:00
71 lines
1.8 KiB
Dart
71 lines
1.8 KiB
Dart
// Copyright 2019 The Flutter team. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
|
|
import '../../../l10n/gallery_localizations.dart';
|
|
|
|
class Category {
|
|
const Category({
|
|
@required this.name,
|
|
}) : assert(name != null);
|
|
|
|
// A function taking a BuildContext as input and
|
|
// returns the internationalized name of the category.
|
|
final String Function(BuildContext) name;
|
|
}
|
|
|
|
Category categoryAll = Category(
|
|
name: (context) => GalleryLocalizations.of(context).shrineCategoryNameAll,
|
|
);
|
|
|
|
Category categoryAccessories = Category(
|
|
name: (context) =>
|
|
GalleryLocalizations.of(context).shrineCategoryNameAccessories,
|
|
);
|
|
|
|
Category categoryClothing = Category(
|
|
name: (context) =>
|
|
GalleryLocalizations.of(context).shrineCategoryNameClothing,
|
|
);
|
|
|
|
Category categoryHome = Category(
|
|
name: (context) => GalleryLocalizations.of(context).shrineCategoryNameHome,
|
|
);
|
|
|
|
List<Category> categories = [
|
|
categoryAll,
|
|
categoryAccessories,
|
|
categoryClothing,
|
|
categoryHome,
|
|
];
|
|
|
|
class Product {
|
|
const Product({
|
|
@required this.category,
|
|
@required this.id,
|
|
@required this.isFeatured,
|
|
@required this.name,
|
|
@required this.price,
|
|
}) : assert(category != null),
|
|
assert(id != null),
|
|
assert(isFeatured != null),
|
|
assert(name != null),
|
|
assert(price != null);
|
|
|
|
final Category category;
|
|
final int id;
|
|
final bool isFeatured;
|
|
|
|
// A function taking a BuildContext as input and
|
|
// returns the internationalized name of the product.
|
|
final String Function(BuildContext) name;
|
|
|
|
final int price;
|
|
|
|
String get assetName => '$id-0.jpg';
|
|
String get assetPackage => 'shrine_images';
|
|
}
|