Skip to content

Commit

Permalink
refactoring the code
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcioQuimbundo committed Jul 5, 2020
1 parent 9cb55fa commit 8e74560
Show file tree
Hide file tree
Showing 7 changed files with 256 additions and 243 deletions.
253 changes: 10 additions & 243 deletions zoom_desktop_flutter/lib/src/ui/home/home_page.dart
@@ -1,12 +1,16 @@
import 'dart:math';

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_reaction_button/flutter_reaction_button.dart';
import 'package:zoom_desktop_flutter/src/cons/global_const.dart';
import 'package:zoom_desktop_flutter/src/data/reaction_video_data.dart';
import 'package:zoom_desktop_flutter/src/ui/home/widgets/profile_photo.dart';
import 'package:zoom_desktop_flutter/src/ui/home/widgets/sprite_painter.dart';
import '../../cons/global_const.dart';
import '../../data/reaction_video_data.dart';
import '../../ui/home/widgets/profile_photo.dart';
import '../../ui/home/widgets/sprite_painter.dart';
import 'widgets/menu_dark_tile.dart';
import 'widgets/user_photo_border_gradient.dart';
import 'widgets/bottom_video_clipper.dart';
import 'widgets/notification_top_menu.dart';
import 'widgets/workspace_selection_card.dart';
import 'widgets/photo_user_meeting.dart';

class HomePage extends StatefulWidget {
@override
Expand Down Expand Up @@ -839,240 +843,3 @@ class _HomePageState extends State<HomePage>
);
}
}

class WorkSpaceSelectionCard extends StatelessWidget {
final bool isActive;
final Function onTap;
final String image;
WorkSpaceSelectionCard({this.isActive = false, this.onTap, this.image});

@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Stack(
children: [
Center(
child: MouseRegion(
cursor: SystemMouseCursors.click,
child: Container(
width: 60,
height: 60,
margin: EdgeInsets.only(top: 10),
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.black38,
blurRadius: 15.0,
offset: Offset(0.0, 0.75))
],
image: DecorationImage(
image: NetworkImage(
image,
),
fit: BoxFit.cover),
borderRadius: BorderRadius.all(Radius.circular(10))),
),
),
),
isActive
? Positioned(
top: 30,
child: Container(
height: 20,
width: 6,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(5),
topRight: Radius.circular(5),
)),
),
)
: Container()
],
),
);
}
}

class PhotoUserMeeting extends StatelessWidget {
final String image;
final String name;
PhotoUserMeeting({this.image, this.name});

@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.only(left: 10),
child: Column(
children: [
Container(
height: 110,
width: 100,
decoration: BoxDecoration(
color: Colors.transparent,
image: DecorationImage(
image: NetworkImage(image), fit: BoxFit.cover),
border: Border.all(color: Colors.white, width: 3),
borderRadius: BorderRadius.circular(6)),
),
SizedBox(
height: 5,
),
Text(
name ?? "",
style: TextStyle(color: Colors.white),
)
],
),
);
}
}

class BottomVideoClipper extends CustomClipper<Path> {
@override
Path getClip(Size size) {
var path = Path();

path.lineTo(0.0, size.height);

path.lineTo(size.width, size.height);

path.lineTo(size.width, 0);

path.lineTo(size.width / 2 + 100, 0);

path.quadraticBezierTo(
size.width / 2, size.height - 20, size.width / 2 - 100, 0);

path.close();
return path;
}

@override
bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}

class NotificationTopMenu extends StatelessWidget {
final String title;
final Color color;
final IconData icon;

const NotificationTopMenu({this.title, this.color, this.icon});

@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.only(right: 40),
child: Row(
children: [
Icon(
icon,
color: color,
size: 16,
),
SizedBox(
width: 5,
),
Text(
title ?? "",
style: TextStyle(color: color, fontSize: 12),
)
],
),
);
}
}

class UserPhotoBorderGradient extends StatelessWidget {
final bool isGradient;
final Color firstColor;
final Color secondColor;
final String photo;
final String name;
UserPhotoBorderGradient(
{this.isGradient,
this.firstColor,
this.secondColor,
this.name,
this.photo});

@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.only(bottom: 20),
child: Column(
children: [
Container(
padding: EdgeInsets.all(2.5),
decoration: BoxDecoration(
gradient: LinearGradient(colors: [
isGradient ? firstColor : Colors.transparent,
isGradient ? secondColor : Colors.transparent
]),
borderRadius: BorderRadius.circular(32),
),
child: Container(
height: 50,
width: 50,
decoration: BoxDecoration(
color: Color(0xFFD6E4ED),
image: DecorationImage(
image: NetworkImage(photo),
),
borderRadius: BorderRadius.all(
Radius.circular(50),
),
),
),
),
Text(
name ?? "",
style: TextStyle(color: isGradient ? secondColor : Colors.grey),
)
],
),
);
}
}

class MenuDarkTile extends StatelessWidget {
const MenuDarkTile({this.active, this.icon, this.title, this.onTap});
final bool active;
final IconData icon;
final String title;
final Function onTap;

@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Container(
margin: EdgeInsets.symmetric(vertical: 5, horizontal: 25),
padding: EdgeInsets.only(top: 12, bottom: 12, left: 25),
decoration: BoxDecoration(
color: active ? Color(0xFF0F1736) : Colors.transparent,
borderRadius: BorderRadius.circular(10)),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Icon(
icon,
color: active ? Color(0xFF37D2F8) : Colors.white24,
size: 18,
),
SizedBox(
width: 10,
),
Text(
title ?? "",
style: TextStyle(
color: active ? Colors.white : Colors.white24, fontSize: 12),
)
],
),
),
);
}
}
@@ -0,0 +1,27 @@
import 'package:flutter/material.dart';

class BottomVideoClipper extends CustomClipper<Path> {
@override
Path getClip(Size size) {
var path = Path();

path.lineTo(0.0, size.height);

path.lineTo(size.width, size.height);

path.lineTo(size.width, 0);

path.lineTo(size.width / 2 + 100, 0);

path.quadraticBezierTo(
size.width / 2, size.height - 20, size.width / 2 - 100, 0);

path.close();
return path;
}

@override
bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}


41 changes: 41 additions & 0 deletions zoom_desktop_flutter/lib/src/ui/home/widgets/menu_dark_tile.dart
@@ -0,0 +1,41 @@
import 'package:flutter/material.dart';

class MenuDarkTile extends StatelessWidget {
const MenuDarkTile({this.active, this.icon, this.title, this.onTap});
final bool active;
final IconData icon;
final String title;
final Function onTap;

@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Container(
margin: EdgeInsets.symmetric(vertical: 5, horizontal: 25),
padding: EdgeInsets.only(top: 12, bottom: 12, left: 25),
decoration: BoxDecoration(
color: active ? Color(0xFF0F1736) : Colors.transparent,
borderRadius: BorderRadius.circular(10)),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Icon(
icon,
color: active ? Color(0xFF37D2F8) : Colors.white24,
size: 18,
),
SizedBox(
width: 10,
),
Text(
title ?? "",
style: TextStyle(
color: active ? Colors.white : Colors.white24, fontSize: 12),
)
],
),
),
);
}
}
@@ -0,0 +1,32 @@
import 'package:flutter/material.dart';

class NotificationTopMenu extends StatelessWidget {
final String title;
final Color color;
final IconData icon;

const NotificationTopMenu({this.title, this.color, this.icon});

@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.only(right: 40),
child: Row(
children: [
Icon(
icon,
color: color,
size: 16,
),
SizedBox(
width: 5,
),
Text(
title ?? "",
style: TextStyle(color: color, fontSize: 12),
)
],
),
);
}
}

0 comments on commit 8e74560

Please sign in to comment.