From 7398c74b050446cbbce8c5c9435015b1fd985d10 Mon Sep 17 00:00:00 2001 From: User3 Date: Mon, 26 May 2025 14:05:32 +0300 Subject: [PATCH] #sprint-1 --- assets/back.png | Bin 0 -> 1020 bytes example/assets/back.png | Bin 0 -> 1020 bytes example/lib/header_section.dart | 25 ++++++++++++++++ example/lib/main.dart | 2 ++ lib/header.dart | 50 ++++++++++++++++++++++++++++++++ lib/ui_kit.dart | 1 + 6 files changed, 78 insertions(+) create mode 100644 assets/back.png create mode 100644 example/assets/back.png create mode 100644 example/lib/header_section.dart create mode 100644 lib/header.dart diff --git a/assets/back.png b/assets/back.png new file mode 100644 index 0000000000000000000000000000000000000000..bb65f3f475c52328cce6b2d4831333ecfcb9a658 GIT binary patch literal 1020 zcmV){W6vrhQ?2rsIa06JhtF|GFu9BI4t(tC{8}tS_LdXr; z8{`OCwX241vdW?`-E|Xg0B!7oO(Io)Q!{*+B*S3&#jZDiu=U>mrziQzmN>iTp_Hn) z?yylT^6i@&(coNFl;Smfq6(#0?VeSw88H%NU@V@r(REV47QmNFv&EKT}(BhtV-Q-*z-c|wi|D5C0GX-9^5Niv}?-&vo5Kmc&EfxFJPrtZi2DOax@D<>wnWE)wPd z_?KA;`+4!vZ$Q`>+B>`&4wP)t1w7AhW?g*L9lYZ8Q3NE60EE7j;&K_aES3u)>lhTn z2$0g65Xqw0I8DfHP##8r=LNloljOw7S*48kH-lnbTwM)b=1)9;>D0b3YzXA`tMJRh zHP9|FvB`p%RWv}m5Q5iMxi|~gU?wZ1d?+)#^&?l3*F-d*Uw`%VYve*l0DU);^^ofn zSS4$McI~;3fC7c~`O*2w&c0qSXTxT@yW8yP_G4pir5*tg|K;;J^ZkJR{^hdP*@ZFj zFqA5QNc^;7+p+TjAWl4#@9mjQOjC(~W#aeW?Xf4%9%VZMD2X>d22c}k6aYo>#sE+i zZv+5k@reVVE-Q2?*sJYUd;ydPbI z%8@7l%qetMFHz0L3{Y>!xn<4baJRkb)@OagA9w9(`YIgxDzy;RYQ*p+$A9{gA z9}6V9rVUfEr-+6l|S}KFO<&PYBAp5 z+On$x>*hJclSO#`qc)j0L_gUuAi20Bz7X4Si-VfUuBqbdW^|WAUSd zDD)!;GrPv3LJW$IBU)MM4pGa`i-+FW*&t3tKPePM({vwQw>=E*CEwnO6AxRl5isq< z_!em$Daqbrb@jR(OrpMUmS^!3-@pE}On7AXP5{#m>a_WV@B4b|Ja$@0Y_+RU*glUL qEvEHK$+qJ-?SjiX(Z){W6vrhQ?2rsIa06JhtF|GFu9BI4t(tC{8}tS_LdXr; z8{`OCwX241vdW?`-E|Xg0B!7oO(Io)Q!{*+B*S3&#jZDiu=U>mrziQzmN>iTp_Hn) z?yylT^6i@&(coNFl;Smfq6(#0?VeSw88H%NU@V@r(REV47QmNFv&EKT}(BhtV-Q-*z-c|wi|D5C0GX-9^5Niv}?-&vo5Kmc&EfxFJPrtZi2DOax@D<>wnWE)wPd z_?KA;`+4!vZ$Q`>+B>`&4wP)t1w7AhW?g*L9lYZ8Q3NE60EE7j;&K_aES3u)>lhTn z2$0g65Xqw0I8DfHP##8r=LNloljOw7S*48kH-lnbTwM)b=1)9;>D0b3YzXA`tMJRh zHP9|FvB`p%RWv}m5Q5iMxi|~gU?wZ1d?+)#^&?l3*F-d*Uw`%VYve*l0DU);^^ofn zSS4$McI~;3fC7c~`O*2w&c0qSXTxT@yW8yP_G4pir5*tg|K;;J^ZkJR{^hdP*@ZFj zFqA5QNc^;7+p+TjAWl4#@9mjQOjC(~W#aeW?Xf4%9%VZMD2X>d22c}k6aYo>#sE+i zZv+5k@reVVE-Q2?*sJYUd;ydPbI z%8@7l%qetMFHz0L3{Y>!xn<4baJRkb)@OagA9w9(`YIgxDzy;RYQ*p+$A9{gA z9}6V9rVUfEr-+6l|S}KFO<&PYBAp5 z+On$x>*hJclSO#`qc)j0L_gUuAi20Bz7X4Si-VfUuBqbdW^|WAUSd zDD)!;GrPv3LJW$IBU)MM4pGa`i-+FW*&t3tKPePM({vwQw>=E*CEwnO6AxRl5isq< z_!em$Daqbrb@jR(OrpMUmS^!3-@pE}On7AXP5{#m>a_WV@B4b|Ja$@0Y_+RU*glUL qEvEHK$+qJ-?SjiX(Z createState() => _HeaderSectionState(); +} + +class _HeaderSectionState extends State { + @override + Widget build(BuildContext context) { + return SizedBox( + width: width(context) * 100, + height: height(context) * 30, + child: Column( + children: [ + HeaderWidget(variant: 'main', onPressed: () {}, handleBack: () {}), + HeaderWidget(variant: 'default', onPressed: () {}, handleBack: () {}), + ], + ), + ); + } +} diff --git a/example/lib/main.dart b/example/lib/main.dart index c1479a0..1e9a0ac 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -2,6 +2,7 @@ import 'package:example/bottom_sheet_section.dart'; import 'package:example/button_section.dart'; import 'package:example/colors_section.dart'; import 'package:example/fonts_section.dart'; +import 'package:example/header_section.dart'; import 'package:example/inputs_section.dart'; import 'package:example/search_section.dart'; import 'package:example/small_button_section.dart'; @@ -35,6 +36,7 @@ class MainApp extends StatelessWidget { SmallButtonSection(), TabBarWidget(), BottomSheetSection(), + HeaderSection(), ], ), ), diff --git a/lib/header.dart b/lib/header.dart new file mode 100644 index 0000000..9c21f71 --- /dev/null +++ b/lib/header.dart @@ -0,0 +1,50 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:ui_kit/fonts.dart'; + +class HeaderWidget extends StatefulWidget { + const HeaderWidget({ + super.key, + required this.variant, + required this.onPressed, + required this.handleBack, + }); + final String variant; + final VoidCallback onPressed; + final VoidCallback handleBack; + + @override + State createState() => _HeaderWidgetState(); +} + +class _HeaderWidgetState extends State { + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16), + child: widget.variant == 'main' + ? Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset('assets/back.png', width: 32, height: 32), + SvgPicture.asset('assets/delete.svg'), + ], + ), + SizedBox(height: 24), + Text('Корзина', style: title1ExtraBold), + ], + ) + : Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset('assets/back.png', width: 32, height: 32), + Text('Корзина', style: title1ExtraBold), + SvgPicture.asset('assets/delete.svg'), + ], + ), + ); + } +} diff --git a/lib/ui_kit.dart b/lib/ui_kit.dart index fa558d0..ad5f394 100644 --- a/lib/ui_kit.dart +++ b/lib/ui_kit.dart @@ -9,3 +9,4 @@ export "search.dart"; export 'button.dart'; export 'tabbar.dart'; export 'bottom_sheet.dart'; +export 'header.dart';