aurcache/frontend/lib/screens/dashboard/components/header.dart

126 lines
3.4 KiB
Dart
Raw Normal View History

2023-12-29 17:13:51 +00:00
import 'package:aurcache/api/packages.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
2023-12-29 17:13:51 +00:00
import '../../../api/API.dart';
import '../../../core/constants/color_constants.dart';
import '../../../responsive.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: () {},
),
if (!Responsive.isMobile(context))
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Hello, Arch User 👋",
style: Theme.of(context).textTheme.headline6,
),
SizedBox(
height: 8,
),
Text(
2023-12-29 17:13:51 +00:00
"Welcome to your Build server",
style: Theme.of(context).textTheme.subtitle2,
),
],
),
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: [
CircleAvatar(
backgroundImage: AssetImage("assets/images/profile_pic.png"),
),
if (!Responsive.isMobile(context))
Padding(
padding:
const EdgeInsets.symmetric(horizontal: defaultPadding / 2),
child: Text("Deniz Çolak"),
),
Icon(Icons.keyboard_arrow_down),
],
),
);
}
}
class SearchField extends StatelessWidget {
2023-12-29 17:13:51 +00:00
SearchField({
Key? key,
}) : super(key: key);
2023-12-29 17:13:51 +00:00
final controller = TextEditingController();
@override
Widget build(BuildContext context) {
return TextField(
2023-12-29 17:13:51 +00:00
controller: controller,
decoration: InputDecoration(
hintText: "Search",
fillColor: secondaryColor,
filled: true,
2023-12-29 17:13:51 +00:00
border: const OutlineInputBorder(
borderSide: BorderSide.none,
2023-12-29 17:13:51 +00:00
borderRadius: BorderRadius.all(Radius.circular(10)),
),
suffixIcon: InkWell(
2023-12-29 17:13:51 +00:00
onTap: () {
// todo this is only temporary -> add this to a proper page
API.addPackage(name: controller.text);
},
child: Container(
padding: EdgeInsets.all(defaultPadding * 0.75),
margin: EdgeInsets.symmetric(horizontal: defaultPadding / 2),
2023-12-29 17:13:51 +00:00
decoration: const BoxDecoration(
color: greenColor,
2023-12-29 17:13:51 +00:00
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: SvgPicture.asset(
"assets/icons/Search.svg",
),
),
),
),
);
}
}