5 changed files with 114 additions and 11 deletions
@ -0,0 +1,22 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2023. Open Mobile Platform LLC. |
||||||
|
* License: Proprietary. |
||||||
|
*/ |
||||||
|
import 'package:flutter/widgets.dart'; |
||||||
|
import 'package:scoped_model/scoped_model.dart'; |
||||||
|
|
||||||
|
/// Model for [SqflitePage] |
||||||
|
class SqfliteModel extends Model { |
||||||
|
/// Get [ScopedModel] |
||||||
|
static SqfliteModel of(BuildContext context) => |
||||||
|
ScopedModel.of<SqfliteModel>(context); |
||||||
|
|
||||||
|
/// Error |
||||||
|
String? _error; |
||||||
|
|
||||||
|
/// Public error |
||||||
|
String? get error => _error; |
||||||
|
|
||||||
|
/// Public is error |
||||||
|
bool get isError => _error != null; |
||||||
|
} |
@ -0,0 +1,61 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2023. Open Mobile Platform LLC. |
||||||
|
* License: Proprietary. |
||||||
|
*/ |
||||||
|
import 'package:flutter/material.dart'; |
||||||
|
import 'package:flutter_example_packages/base/di/app_di.dart'; |
||||||
|
import 'package:flutter_example_packages/base/package/package.dart'; |
||||||
|
import 'package:flutter_example_packages/widgets/base/export.dart'; |
||||||
|
import 'package:flutter_example_packages/widgets/blocks/block_alert.dart'; |
||||||
|
import 'package:flutter_example_packages/widgets/blocks/block_info_package.dart'; |
||||||
|
import 'package:flutter_example_packages/widgets/layouts/block_layout.dart'; |
||||||
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; |
||||||
|
|
||||||
|
import 'model.dart'; |
||||||
|
import 'package.dart'; |
||||||
|
|
||||||
|
class SqflitePage extends AppStatefulWidget { |
||||||
|
SqflitePage({ |
||||||
|
super.key, |
||||||
|
}); |
||||||
|
|
||||||
|
final Package package = packageSqflite; |
||||||
|
|
||||||
|
@override |
||||||
|
State<SqflitePage> createState() => _SqflitePageState(); |
||||||
|
} |
||||||
|
|
||||||
|
class _SqflitePageState extends AppState<SqflitePage> { |
||||||
|
@override |
||||||
|
Widget buildWide( |
||||||
|
BuildContext context, |
||||||
|
MediaQueryData media, |
||||||
|
AppLocalizations l10n, |
||||||
|
) { |
||||||
|
return BlockLayout<SqfliteModel>( |
||||||
|
model: getIt<SqfliteModel>(), |
||||||
|
title: widget.package.key, |
||||||
|
builder: (context, child, model) { |
||||||
|
return SingleChildScrollView( |
||||||
|
child: Padding( |
||||||
|
padding: const EdgeInsets.all(20), |
||||||
|
child: Column( |
||||||
|
crossAxisAlignment: CrossAxisAlignment.start, |
||||||
|
children: [ |
||||||
|
BlockInfoPackage(widget.package), |
||||||
|
BlockAlert(model.error), |
||||||
|
if (!model.isError) |
||||||
|
Form( |
||||||
|
child: Column( |
||||||
|
crossAxisAlignment: CrossAxisAlignment.start, |
||||||
|
children: [], |
||||||
|
), |
||||||
|
), |
||||||
|
], |
||||||
|
), |
||||||
|
), |
||||||
|
); |
||||||
|
}, |
||||||
|
); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue