frequency-dashboard/frontend/lib/screens/dashboard/components/header.dart

106 lines
2.8 KiB
Dart

import 'package:admin/controllers/menu_app_controller.dart';
import 'package:admin/responsive.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import '../../../constants.dart';
class Header extends StatelessWidget {
const Header({
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Row(
children: [
if (!Responsive.isDesktop(context))
IconButton(
icon: Icon(Icons.menu),
onPressed: context.read<MenuAppController>().controlMenu,
),
if (!Responsive.isMobile(context))
Text(
"Dashboard de Frequencia",
style: Theme.of(context).textTheme.titleLarge,
),
if (!Responsive.isMobile(context))
Spacer(flex: Responsive.isDesktop(context) ? 2 : 1),
Expanded(child: SearchField()),
ProfileCard()
],
);
}
}
class ProfileCard extends StatelessWidget {
const ProfileCard({
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.only(left: defaultPadding),
padding: EdgeInsets.symmetric(
horizontal: defaultPadding,
vertical: defaultPadding / 2,
),
decoration: BoxDecoration(
color: secondaryColor,
borderRadius: const BorderRadius.all(Radius.circular(10)),
border: Border.all(color: Colors.white10),
),
child: Row(
children: [
Image.asset(
"assets/images/profile_pic.png",
height: 38,
),
if (!Responsive.isMobile(context))
Padding(
padding:
const EdgeInsets.symmetric(horizontal: defaultPadding / 2),
child: Text("Nota 11"),
),
Icon(Icons.keyboard_arrow_down),
],
),
);
}
}
class SearchField extends StatelessWidget {
const SearchField({
Key? key,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return TextField(
decoration: InputDecoration(
hintText: "Search",
fillColor: secondaryColor,
filled: true,
border: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: const BorderRadius.all(Radius.circular(10)),
),
suffixIcon: InkWell(
onTap: () {},
child: Container(
padding: EdgeInsets.all(defaultPadding * 0.75),
margin: EdgeInsets.symmetric(horizontal: defaultPadding / 2),
decoration: BoxDecoration(
color: primaryColor,
borderRadius: const BorderRadius.all(Radius.circular(10)),
),
child: SvgPicture.asset("assets/icons/Search.svg"),
),
),
),
);
}
}