import 'package:easycook_mobile/theme.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:flutter_rating_stars/flutter_rating_stars.dart'; class TulisUlasanPage extends StatefulWidget { @override State createState() => _TulisUlasanPageState(); } class _TulisUlasanPageState extends State { double value = 0; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Tulis Ulasan'), centerTitle: true, foregroundColor: Colors.black, backgroundColor: Colors.white, elevation: 0.5, ), body: Container( padding: EdgeInsets.only(top: 33, left: 16, right: 16, bottom: 51), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ // Rating Row( children: [ Text( 'Rasa', style: GoogleFonts.montserrat().copyWith( fontSize: 14, fontWeight: FontWeight.bold, ), ), ], ), Center( child: RatingStars( value: value, onValueChanged: (v) { setState(() { value = v; }); }, starBuilder: (index, color) => Icon( Icons.star_rate, color: color, ), starCount: 5, starSize: 20, valueLabelColor: Colors.orange, valueLabelTextStyle: const TextStyle( color: Colors.white, fontWeight: FontWeight.w400, fontStyle: FontStyle.normal, fontSize: 12.0), valueLabelRadius: 10, maxValue: 5, starSpacing: 2, maxValueVisibility: true, valueLabelVisibility: true, animationDuration: Duration(milliseconds: 1000), valueLabelPadding: const EdgeInsets.symmetric(vertical: 1, horizontal: 8), valueLabelMargin: const EdgeInsets.only(right: 8), starOffColor: Colors.black, starColor: Colors.orange, ), ), Row( children: [ Text( 'Kemudahan Memasak', style: GoogleFonts.montserrat().copyWith( fontSize: 14, fontWeight: FontWeight.bold, ), ), ], ), Center( child: RatingStars( value: value, onValueChanged: (v) { setState(() { value = v; }); }, starBuilder: (index, color) => Icon( Icons.star_rate, color: color, ), starCount: 5, starSize: 20, valueLabelColor: Colors.orange, valueLabelTextStyle: const TextStyle( color: Colors.white, fontWeight: FontWeight.w400, fontStyle: FontStyle.normal, fontSize: 12.0), valueLabelRadius: 10, maxValue: 5, starSpacing: 2, maxValueVisibility: true, valueLabelVisibility: true, animationDuration: Duration(milliseconds: 1000), valueLabelPadding: const EdgeInsets.symmetric(vertical: 1, horizontal: 8), valueLabelMargin: const EdgeInsets.only(right: 8), starOffColor: Colors.black, starColor: Colors.orange, ), ), Row( children: [ Text( 'Kemudahan alat dan bahan', style: GoogleFonts.montserrat().copyWith( fontSize: 14, fontWeight: FontWeight.bold, ), ), ], ), Center( child: RatingStars( value: value, onValueChanged: (v) { setState(() { value = v; }); }, starBuilder: (index, color) => Icon( Icons.star_rate, color: color, ), starCount: 5, starSize: 20, valueLabelColor: Colors.orange, valueLabelTextStyle: const TextStyle( color: Colors.white, fontWeight: FontWeight.w400, fontStyle: FontStyle.normal, fontSize: 12.0), valueLabelRadius: 10, maxValue: 5, starSpacing: 2, maxValueVisibility: true, valueLabelVisibility: true, animationDuration: Duration(milliseconds: 1000), valueLabelPadding: const EdgeInsets.symmetric(vertical: 1, horizontal: 8), valueLabelMargin: const EdgeInsets.only(right: 8), starOffColor: Colors.black, starColor: Colors.orange, ), ), Row( children: [ Text( 'Kelayakan dimasak ulang', style: GoogleFonts.montserrat().copyWith( fontSize: 14, fontWeight: FontWeight.bold, ), ), ], ), Center( child: RatingStars( value: value, onValueChanged: (v) { setState(() { value = v; }); }, starBuilder: (index, color) => Icon( Icons.star_rate, color: color, ), starCount: 5, starSize: 20, valueLabelColor: Colors.orange, valueLabelTextStyle: const TextStyle( color: Colors.white, fontWeight: FontWeight.w400, fontStyle: FontStyle.normal, fontSize: 12.0), valueLabelRadius: 10, maxValue: 5, starSpacing: 2, maxValueVisibility: true, valueLabelVisibility: true, animationDuration: Duration(milliseconds: 1000), valueLabelPadding: const EdgeInsets.symmetric(vertical: 1, horizontal: 8), valueLabelMargin: const EdgeInsets.only(right: 8), starOffColor: Colors.black, starColor: Colors.orange, ), ), // Review Row( children: [ Text( 'Tulis Review', style: GoogleFonts.montserrat().copyWith( fontSize: 14, fontWeight: FontWeight.bold, ), ), ], ), TextField( decoration: const InputDecoration( border: OutlineInputBorder(), enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Colors.black12, width: 1.5, ), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: Colors.blueAccent, width: 3.0, ), ), hintText: "Tulis Komentar", hintStyle: TextStyle(color: Colors.black12), ), style: TextStyle(color: Colors.black), autofocus: false, ), // Form Foto Row( children: [ Text( 'Tambah Foto', style: GoogleFonts.montserrat().copyWith( fontSize: 14, fontWeight: FontWeight.bold, ), ), ], ), Row( children: [ Container( width: 93, height: 100, decoration: BoxDecoration( border: Border.all( color: Colors.amber, ), borderRadius: BorderRadius.circular(5), ), child: Center( child: SvgPicture.asset('assets/icons/Camera.svg'), ), ), ], ), Row( children: [ Text( 'Tambahkan maksimal 3 foto', style: GoogleFonts.montserrat().copyWith( fontSize: 12, color: Colors.black26, ), ), ], ), // Button SizedBox( height: 48, width: 328, child: TextButton( style: TextButton.styleFrom( backgroundColor: Colors.orange, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20), ), ), onPressed: () {}, child: Text( 'Kirim', style: GoogleFonts.montserrat().copyWith( color: Colors.white, fontWeight: FontWeight.bold, ), ), ), ), ], ), ), ); } }