ExperimentVariantAssignmentCard constructor

ExperimentVariantAssignmentCard({
  1. Key? key,
  2. required List<ExperimentVariantRow> rows,
  3. Future<void> onSelectOverride(
    1. String experimentKey,
    2. String? variant
    )?,
  4. bool busy = false,
  5. String title = 'Experiment assignments',
  6. String emptyLabel = 'No experiments registered.',
  7. String assignedLabel = 'Assigned variant',
  8. String overriddenLabel = 'Overridden for testing',
  9. String clearOverrideLabel = 'Clear override',
  10. String actionErrorLabel = 'Action failed. Try again.',
})

Implementation

ExperimentVariantAssignmentCard({
  super.key,
  required List<ExperimentVariantRow> rows,
  this.onSelectOverride,
  this.busy = false,
  this.title = 'Experiment assignments',
  this.emptyLabel = 'No experiments registered.',
  this.assignedLabel = 'Assigned variant',
  this.overriddenLabel = 'Overridden for testing',
  this.clearOverrideLabel = 'Clear override',
  this.actionErrorLabel = 'Action failed. Try again.',
}) : rows = List.unmodifiable(rows) {
  if (this.rows.map((r) => r.experimentKey).toSet().length !=
      this.rows.length) {
    throw ArgumentError.value(
      rows,
      'rows',
      'experimentKey values must be unique',
    );
  }
  for (final (name, value) in [
    ('title', title),
    ('emptyLabel', emptyLabel),
    ('assignedLabel', assignedLabel),
    ('overriddenLabel', overriddenLabel),
    ('clearOverrideLabel', clearOverrideLabel),
    ('actionErrorLabel', actionErrorLabel),
  ]) {
    if (value.trim().isEmpty) {
      throw ArgumentError.value(value, name, 'must not be blank');
    }
  }
}