My goal is to create a button when you click on a disabled button it will print a specific message. But if you don't use the enable feature it will not ask you for the specific message in the constructor parameter.
Let say we have this class
class Button {
final String label;
final bool enable;
final String disableMessage;
Button(
this.label, {
bool? enable,
String? disableMessage,
}) : assert(enable == null || disableMessage != null),
enable = enable ?? true,
disableMessage = disableMessage ?? '';
}
I tried with an assert and conditional value but when I call it
Button('name', enable: false);
it doesn't display any error because this is only an assert.
I'm looking a way to have this behavior
Button('name'); // Good
Button('name', enable: false); // Error displayed
Button('name', disabledMessage: 'Button disabled'); // Error displayed
Button('name', enable: false, disabledMessage: 'Button disabled'); // Good
Is it a proper way to have conditional required parameter when another is used ?