enableOptionalTasks method

Future<void> enableOptionalTasks(
  1. bool? enabled
)

Sets User.optionalTasksEnabled to enabled for the current user.

Implementation

// Using positional parameters here for ease of use in the UI.
// ignore: avoid_positional_boolean_parameters
Future<void> enableOptionalTasks(bool? enabled) async {
  if (!state.hasData) {
    log('Cannot set optional tasks enabled: No user loaded.');

    return;
  }

  if (enabled == null) {
    log('Cannot set optional tasks enabled: No value provided.');

    return;
  }

  try {
    final patch = state.requireData.copyWith(
      optionalTasksEnabled: enabled,
    );

    data(
      patch,
    );

    await _userDatasource.updateUser(
      _auth.state.requireData[Webservice.lb_planner_api],
      patch,
    );

    await captureEvent('optional_tasks_enabled', properties: {'enabled': enabled});
  } catch (e, st) {
    log('Failed to set optional tasks enabled.', e, st);

    return;
  }
}