import 'package:equatable/equatable.dart';
import 'package:syncrow_web/pages/routines/models/icon_model.dart';

abstract class SettingState extends Equatable {
  const SettingState();

  @override
  List<Object> get props => [];
}

class LoadingState extends SettingState {
  const LoadingState();

  @override
  List<Object> get props => [];
}

class InitialState extends SettingState {
  const InitialState();

  @override
  List<Object> get props => [];
}

class IconLoadedState extends SettingState {
  final List<String> status;

  const IconLoadedState(this.status);

  @override
  List<Object> get props => [status];
}

class TabToRunSettingLoaded extends SettingState {
  final String selectedIcon;
  final List<IconModel> iconList;
  final bool showInDevice;

  const TabToRunSettingLoaded({
    required this.selectedIcon,
    required this.iconList,
    required this.showInDevice,
  });

  @override
  List<Object> get props => [selectedIcon, iconList, showInDevice];
}

class FailedState extends SettingState {
  final String error;

  const FailedState({required this.error});

  @override
  List<Object> get props => [error];
}
