AppBar and Header components

This commit is contained in:
2024-05-02 15:04:05 +03:00
parent 0a491ca34b
commit 727c04d368
6 changed files with 155 additions and 106 deletions

View File

@@ -1,4 +1,6 @@
import 'package:flutter/material.dart';
import 'package:gymlink_module_web/components/app_bar.dart';
import 'package:gymlink_module_web/components/heading.dart';
class BasketPage extends StatelessWidget {
const BasketPage({
@@ -6,16 +8,16 @@ class BasketPage extends StatelessWidget {
});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => Navigator.pop(context),
return const Scaffold(
appBar: GymLinkAppBar(),
body: Column(
children: [
GymLinkHeader(title: 'Корзина'),
Center(
child: Text('Корзина'),
),
title: const Text('Корзина'),
),
body: const Center(
child: Text('Корзина'),
));
],
),
);
}
}

View File

@@ -1,4 +1,6 @@
import 'package:flutter/material.dart';
import 'package:gymlink_module_web/components/app_bar.dart';
import 'package:gymlink_module_web/components/heading.dart';
//TODO: Сделать получение инфы через объект
class DetailPage extends StatelessWidget {
@@ -18,77 +20,81 @@ class DetailPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => Navigator.pop(context),
),
title: Text('$name - $id'),
),
body: Padding(
padding: const EdgeInsets.all(20),
child: SizedBox(
width: MediaQuery.sizeOf(context).width,
height: MediaQuery.sizeOf(context).height,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
image,
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(0, 60, 60, 60),
child: SizedBox(
width: 340,
height: MediaQuery.sizeOf(context).height,
child: Card(
elevation: 4,
color: const Color(0xFFF2F3F9),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
child: Padding(
appBar: const GymLinkAppBar(),
body: Column(mainAxisAlignment: MainAxisAlignment.start, children: [
GymLinkHeader(title: '$name - $id'),
Expanded(
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(20),
child: SizedBox(
width: MediaQuery.sizeOf(context).width,
height: MediaQuery.sizeOf(context).height,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
image,
Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(20, 15, 10, 15),
child: Text(
description,
style: Theme.of(context).textTheme.bodyMedium,
const EdgeInsetsDirectional.fromSTEB(0, 30, 60, 60),
child: SizedBox(
width: 340,
height: MediaQuery.sizeOf(context).height,
child: Card(
elevation: 4,
color: const Color(0xFFF2F3F9),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(
20, 15, 10, 15),
child: Text(
description,
style: Theme.of(context).textTheme.bodyMedium,
),
),
),
),
),
),
),
),
Align(
alignment: const AlignmentDirectional(0, -1),
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(0, 60, 0, 0),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
'Стоимость $price',
style: Theme.of(context).textTheme.bodyLarge,
),
ElevatedButton(
onPressed: () => {},
style: ElevatedButton.styleFrom(
backgroundColor: Theme.of(context).primaryColor,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(50),
),
Align(
alignment: const AlignmentDirectional(0, -1),
child: Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(0, 60, 0, 0),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
'Стоимость $price',
style: Theme.of(context).textTheme.bodyLarge,
),
foregroundColor: Colors.white,
padding: const EdgeInsetsDirectional.fromSTEB(
34, 10, 34, 10)),
child: const Text('Добавить в корзину'),
)
],
),
ElevatedButton(
onPressed: () => {},
style: ElevatedButton.styleFrom(
backgroundColor:
Theme.of(context).primaryColor,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(50),
),
),
foregroundColor: Colors.white,
padding: const EdgeInsetsDirectional.fromSTEB(
34, 10, 34, 10)),
child: const Text('Добавить в корзину'),
)
],
),
),
),
],
),
),
],
),
),
),
),
]),
);
}
}

View File

@@ -1,4 +1,6 @@
import 'package:flutter/material.dart';
import 'package:gymlink_module_web/components/app_bar.dart';
import 'package:gymlink_module_web/components/heading.dart';
class HistoryPage extends StatelessWidget {
const HistoryPage({
@@ -6,16 +8,14 @@ class HistoryPage extends StatelessWidget {
});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => Navigator.pop(context),
),
title: const Text('История заказов'),
),
body: const Center(
return const Scaffold(
appBar: GymLinkAppBar(),
body: Column(mainAxisAlignment: MainAxisAlignment.start, children: [
GymLinkHeader(title: 'История заказов'),
Center(
child: Text('История заказов'),
));
)
]),
);
}
}