import 'package:equatable/equatable.dart';

abstract class EditorSessionState extends Equatable {
  const EditorSessionState();

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

class EditorSessionInitial extends EditorSessionState {}

class EditorSessionStarting extends EditorSessionState {}

class EditorSessionActive extends EditorSessionState {
  final Uri editUrl;

  const EditorSessionActive({required this.editUrl});

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

class EditorSessionReadOnly extends EditorSessionState {
  final Uri viewUrl;

  const EditorSessionReadOnly({required this.viewUrl});

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

class EditorSessionFailed extends EditorSessionState {
  final String message;

  const EditorSessionFailed({required this.message});

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

class EditorSessionExpired extends EditorSessionState {}
