Avoid StatefulWidgets as much as possible
Do
class CustomTextButton extends StatelessWidget {
  ...
}
Don't
class CustomTextButton extends StatefulWidget {
  const CustomTextButton{Key? key}  : super(key: key);
  @override
  State<CustomTextButton> createState() => _CustomTextButtonState();
}
class _CustomTextButtonState extends State<CustomTextButton>{
  ...
}
Conclusion: StatefulWidget can rebuild itself, it also decreases the performance. That's why always use StatelessWidget and only if necessary StatefulWidget and use constructor of the reusable widget.