45 lines
1.2 KiB
Dart
45 lines
1.2 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
class CustomButton extends StatelessWidget {
|
||
|
final String buttonText;
|
||
|
final Widget targetScreen;
|
||
|
final VoidCallback? onPressed; // Optional onPressed function
|
||
|
|
||
|
const CustomButton({
|
||
|
super.key,
|
||
|
required this.buttonText,
|
||
|
required this.targetScreen,
|
||
|
this.onPressed, // Optional onPressed function
|
||
|
});
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return InkWell(
|
||
|
onTap: () {
|
||
|
// Execute any additional onPressed function if provided
|
||
|
if (onPressed != null) {
|
||
|
onPressed!();
|
||
|
}
|
||
|
// Navigate to the target screen
|
||
|
Navigator.push(
|
||
|
context,
|
||
|
MaterialPageRoute(builder: (context) => targetScreen),
|
||
|
);
|
||
|
},
|
||
|
child: Container(
|
||
|
width: double.infinity, // Full width
|
||
|
height: 50, // Set height
|
||
|
decoration: BoxDecoration(
|
||
|
color: const Color(0xFF4545DB), // Button color
|
||
|
borderRadius: BorderRadius.circular(25), // Border radius
|
||
|
),
|
||
|
alignment: Alignment.center,
|
||
|
child: Text(
|
||
|
buttonText,
|
||
|
style: const TextStyle(color: Colors.white),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|