implemented new loadable state concept
This commit is contained in:
@ -0,0 +1,17 @@
|
||||
import '../../../infrastructure/loadableState/loadable_hydrated_bloc.dart';
|
||||
import '../../../infrastructure/repository/repository.dart';
|
||||
import '../repository/marianum_message_repository.dart';
|
||||
import 'marianum_message_state.dart';
|
||||
|
||||
class MarianumMessageBloc extends LoadableHydratedBloc<void, MarianumMessageState> {
|
||||
MarianumMessageBloc();
|
||||
|
||||
|
||||
@override
|
||||
MarianumMessageState fromStorage(Map<String, dynamic> json) => MarianumMessageState.fromJson(json);
|
||||
@override
|
||||
Map<String, dynamic>? toStorage(MarianumMessageState state) => state.toJson();
|
||||
|
||||
@override
|
||||
Repository repository() => MarianumMessageRepository(emit);
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'marianum_message_state.freezed.dart';
|
||||
part 'marianum_message_state.g.dart';
|
||||
|
||||
|
||||
@freezed
|
||||
class MarianumMessageState with _$MarianumMessageState {
|
||||
const factory MarianumMessageState({
|
||||
required MarianumMessageList messageList,
|
||||
}) = _MarianumMessageState;
|
||||
|
||||
factory MarianumMessageState.fromJson(Map<String, dynamic> json) => _$MarianumMessageStateFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
class MarianumMessageList with _$MarianumMessageList {
|
||||
const factory MarianumMessageList({
|
||||
required String base,
|
||||
required List<MarianumMessage> messages,
|
||||
}) = _MarianumMessageList;
|
||||
|
||||
factory MarianumMessageList.fromJson(Map<String, dynamic> json) => _$MarianumMessageListFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
class MarianumMessage with _$MarianumMessage {
|
||||
const factory MarianumMessage({
|
||||
required String name,
|
||||
required String date,
|
||||
required String url,
|
||||
}) = _MarianumMessage;
|
||||
|
||||
factory MarianumMessage.fromJson(Map<String, dynamic> json) => _$MarianumMessageFromJson(json);
|
||||
}
|
||||
|
||||
|
||||
enum GradeAveragesGradingSystem {
|
||||
highSchool,
|
||||
middleSchool,
|
||||
}
|
@ -0,0 +1,507 @@
|
||||
// coverage:ignore-file
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
|
||||
|
||||
part of 'marianum_message_state.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// FreezedGenerator
|
||||
// **************************************************************************
|
||||
|
||||
T _$identity<T>(T value) => value;
|
||||
|
||||
final _privateConstructorUsedError = UnsupportedError(
|
||||
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
|
||||
|
||||
MarianumMessageState _$MarianumMessageStateFromJson(Map<String, dynamic> json) {
|
||||
return _MarianumMessageState.fromJson(json);
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$MarianumMessageState {
|
||||
MarianumMessageList get messageList => throw _privateConstructorUsedError;
|
||||
|
||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||
@JsonKey(ignore: true)
|
||||
$MarianumMessageStateCopyWith<MarianumMessageState> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $MarianumMessageStateCopyWith<$Res> {
|
||||
factory $MarianumMessageStateCopyWith(MarianumMessageState value,
|
||||
$Res Function(MarianumMessageState) then) =
|
||||
_$MarianumMessageStateCopyWithImpl<$Res, MarianumMessageState>;
|
||||
@useResult
|
||||
$Res call({MarianumMessageList messageList});
|
||||
|
||||
$MarianumMessageListCopyWith<$Res> get messageList;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$MarianumMessageStateCopyWithImpl<$Res,
|
||||
$Val extends MarianumMessageState>
|
||||
implements $MarianumMessageStateCopyWith<$Res> {
|
||||
_$MarianumMessageStateCopyWithImpl(this._value, this._then);
|
||||
|
||||
// ignore: unused_field
|
||||
final $Val _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function($Val) _then;
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? messageList = null,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
messageList: null == messageList
|
||||
? _value.messageList
|
||||
: messageList // ignore: cast_nullable_to_non_nullable
|
||||
as MarianumMessageList,
|
||||
) as $Val);
|
||||
}
|
||||
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
$MarianumMessageListCopyWith<$Res> get messageList {
|
||||
return $MarianumMessageListCopyWith<$Res>(_value.messageList, (value) {
|
||||
return _then(_value.copyWith(messageList: value) as $Val);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$MarianumMessageStateImplCopyWith<$Res>
|
||||
implements $MarianumMessageStateCopyWith<$Res> {
|
||||
factory _$$MarianumMessageStateImplCopyWith(_$MarianumMessageStateImpl value,
|
||||
$Res Function(_$MarianumMessageStateImpl) then) =
|
||||
__$$MarianumMessageStateImplCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({MarianumMessageList messageList});
|
||||
|
||||
@override
|
||||
$MarianumMessageListCopyWith<$Res> get messageList;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$MarianumMessageStateImplCopyWithImpl<$Res>
|
||||
extends _$MarianumMessageStateCopyWithImpl<$Res, _$MarianumMessageStateImpl>
|
||||
implements _$$MarianumMessageStateImplCopyWith<$Res> {
|
||||
__$$MarianumMessageStateImplCopyWithImpl(_$MarianumMessageStateImpl _value,
|
||||
$Res Function(_$MarianumMessageStateImpl) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? messageList = null,
|
||||
}) {
|
||||
return _then(_$MarianumMessageStateImpl(
|
||||
messageList: null == messageList
|
||||
? _value.messageList
|
||||
: messageList // ignore: cast_nullable_to_non_nullable
|
||||
as MarianumMessageList,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$MarianumMessageStateImpl implements _MarianumMessageState {
|
||||
const _$MarianumMessageStateImpl({required this.messageList});
|
||||
|
||||
factory _$MarianumMessageStateImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$MarianumMessageStateImplFromJson(json);
|
||||
|
||||
@override
|
||||
final MarianumMessageList messageList;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'MarianumMessageState(messageList: $messageList)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$MarianumMessageStateImpl &&
|
||||
(identical(other.messageList, messageList) ||
|
||||
other.messageList == messageList));
|
||||
}
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType, messageList);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$MarianumMessageStateImplCopyWith<_$MarianumMessageStateImpl>
|
||||
get copyWith =>
|
||||
__$$MarianumMessageStateImplCopyWithImpl<_$MarianumMessageStateImpl>(
|
||||
this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$MarianumMessageStateImplToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _MarianumMessageState implements MarianumMessageState {
|
||||
const factory _MarianumMessageState(
|
||||
{required final MarianumMessageList messageList}) =
|
||||
_$MarianumMessageStateImpl;
|
||||
|
||||
factory _MarianumMessageState.fromJson(Map<String, dynamic> json) =
|
||||
_$MarianumMessageStateImpl.fromJson;
|
||||
|
||||
@override
|
||||
MarianumMessageList get messageList;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$MarianumMessageStateImplCopyWith<_$MarianumMessageStateImpl>
|
||||
get copyWith => throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
MarianumMessageList _$MarianumMessageListFromJson(Map<String, dynamic> json) {
|
||||
return _MarianumMessageList.fromJson(json);
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$MarianumMessageList {
|
||||
String get base => throw _privateConstructorUsedError;
|
||||
List<MarianumMessage> get messages => throw _privateConstructorUsedError;
|
||||
|
||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||
@JsonKey(ignore: true)
|
||||
$MarianumMessageListCopyWith<MarianumMessageList> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $MarianumMessageListCopyWith<$Res> {
|
||||
factory $MarianumMessageListCopyWith(
|
||||
MarianumMessageList value, $Res Function(MarianumMessageList) then) =
|
||||
_$MarianumMessageListCopyWithImpl<$Res, MarianumMessageList>;
|
||||
@useResult
|
||||
$Res call({String base, List<MarianumMessage> messages});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$MarianumMessageListCopyWithImpl<$Res, $Val extends MarianumMessageList>
|
||||
implements $MarianumMessageListCopyWith<$Res> {
|
||||
_$MarianumMessageListCopyWithImpl(this._value, this._then);
|
||||
|
||||
// ignore: unused_field
|
||||
final $Val _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function($Val) _then;
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? base = null,
|
||||
Object? messages = null,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
base: null == base
|
||||
? _value.base
|
||||
: base // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
messages: null == messages
|
||||
? _value.messages
|
||||
: messages // ignore: cast_nullable_to_non_nullable
|
||||
as List<MarianumMessage>,
|
||||
) as $Val);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$MarianumMessageListImplCopyWith<$Res>
|
||||
implements $MarianumMessageListCopyWith<$Res> {
|
||||
factory _$$MarianumMessageListImplCopyWith(_$MarianumMessageListImpl value,
|
||||
$Res Function(_$MarianumMessageListImpl) then) =
|
||||
__$$MarianumMessageListImplCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({String base, List<MarianumMessage> messages});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$MarianumMessageListImplCopyWithImpl<$Res>
|
||||
extends _$MarianumMessageListCopyWithImpl<$Res, _$MarianumMessageListImpl>
|
||||
implements _$$MarianumMessageListImplCopyWith<$Res> {
|
||||
__$$MarianumMessageListImplCopyWithImpl(_$MarianumMessageListImpl _value,
|
||||
$Res Function(_$MarianumMessageListImpl) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? base = null,
|
||||
Object? messages = null,
|
||||
}) {
|
||||
return _then(_$MarianumMessageListImpl(
|
||||
base: null == base
|
||||
? _value.base
|
||||
: base // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
messages: null == messages
|
||||
? _value._messages
|
||||
: messages // ignore: cast_nullable_to_non_nullable
|
||||
as List<MarianumMessage>,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$MarianumMessageListImpl implements _MarianumMessageList {
|
||||
const _$MarianumMessageListImpl(
|
||||
{required this.base, required final List<MarianumMessage> messages})
|
||||
: _messages = messages;
|
||||
|
||||
factory _$MarianumMessageListImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$MarianumMessageListImplFromJson(json);
|
||||
|
||||
@override
|
||||
final String base;
|
||||
final List<MarianumMessage> _messages;
|
||||
@override
|
||||
List<MarianumMessage> get messages {
|
||||
if (_messages is EqualUnmodifiableListView) return _messages;
|
||||
// ignore: implicit_dynamic_type
|
||||
return EqualUnmodifiableListView(_messages);
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'MarianumMessageList(base: $base, messages: $messages)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$MarianumMessageListImpl &&
|
||||
(identical(other.base, base) || other.base == base) &&
|
||||
const DeepCollectionEquality().equals(other._messages, _messages));
|
||||
}
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
int get hashCode => Object.hash(
|
||||
runtimeType, base, const DeepCollectionEquality().hash(_messages));
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$MarianumMessageListImplCopyWith<_$MarianumMessageListImpl> get copyWith =>
|
||||
__$$MarianumMessageListImplCopyWithImpl<_$MarianumMessageListImpl>(
|
||||
this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$MarianumMessageListImplToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _MarianumMessageList implements MarianumMessageList {
|
||||
const factory _MarianumMessageList(
|
||||
{required final String base,
|
||||
required final List<MarianumMessage> messages}) =
|
||||
_$MarianumMessageListImpl;
|
||||
|
||||
factory _MarianumMessageList.fromJson(Map<String, dynamic> json) =
|
||||
_$MarianumMessageListImpl.fromJson;
|
||||
|
||||
@override
|
||||
String get base;
|
||||
@override
|
||||
List<MarianumMessage> get messages;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$MarianumMessageListImplCopyWith<_$MarianumMessageListImpl> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
MarianumMessage _$MarianumMessageFromJson(Map<String, dynamic> json) {
|
||||
return _MarianumMessage.fromJson(json);
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
mixin _$MarianumMessage {
|
||||
String get name => throw _privateConstructorUsedError;
|
||||
String get date => throw _privateConstructorUsedError;
|
||||
String get url => throw _privateConstructorUsedError;
|
||||
|
||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||
@JsonKey(ignore: true)
|
||||
$MarianumMessageCopyWith<MarianumMessage> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $MarianumMessageCopyWith<$Res> {
|
||||
factory $MarianumMessageCopyWith(
|
||||
MarianumMessage value, $Res Function(MarianumMessage) then) =
|
||||
_$MarianumMessageCopyWithImpl<$Res, MarianumMessage>;
|
||||
@useResult
|
||||
$Res call({String name, String date, String url});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$MarianumMessageCopyWithImpl<$Res, $Val extends MarianumMessage>
|
||||
implements $MarianumMessageCopyWith<$Res> {
|
||||
_$MarianumMessageCopyWithImpl(this._value, this._then);
|
||||
|
||||
// ignore: unused_field
|
||||
final $Val _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function($Val) _then;
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? name = null,
|
||||
Object? date = null,
|
||||
Object? url = null,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
name: null == name
|
||||
? _value.name
|
||||
: name // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
date: null == date
|
||||
? _value.date
|
||||
: date // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
url: null == url
|
||||
? _value.url
|
||||
: url // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
) as $Val);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$$MarianumMessageImplCopyWith<$Res>
|
||||
implements $MarianumMessageCopyWith<$Res> {
|
||||
factory _$$MarianumMessageImplCopyWith(_$MarianumMessageImpl value,
|
||||
$Res Function(_$MarianumMessageImpl) then) =
|
||||
__$$MarianumMessageImplCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call({String name, String date, String url});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$$MarianumMessageImplCopyWithImpl<$Res>
|
||||
extends _$MarianumMessageCopyWithImpl<$Res, _$MarianumMessageImpl>
|
||||
implements _$$MarianumMessageImplCopyWith<$Res> {
|
||||
__$$MarianumMessageImplCopyWithImpl(
|
||||
_$MarianumMessageImpl _value, $Res Function(_$MarianumMessageImpl) _then)
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? name = null,
|
||||
Object? date = null,
|
||||
Object? url = null,
|
||||
}) {
|
||||
return _then(_$MarianumMessageImpl(
|
||||
name: null == name
|
||||
? _value.name
|
||||
: name // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
date: null == date
|
||||
? _value.date
|
||||
: date // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
url: null == url
|
||||
? _value.url
|
||||
: url // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
@JsonSerializable()
|
||||
class _$MarianumMessageImpl implements _MarianumMessage {
|
||||
const _$MarianumMessageImpl(
|
||||
{required this.name, required this.date, required this.url});
|
||||
|
||||
factory _$MarianumMessageImpl.fromJson(Map<String, dynamic> json) =>
|
||||
_$$MarianumMessageImplFromJson(json);
|
||||
|
||||
@override
|
||||
final String name;
|
||||
@override
|
||||
final String date;
|
||||
@override
|
||||
final String url;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'MarianumMessage(name: $name, date: $date, url: $url)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$MarianumMessageImpl &&
|
||||
(identical(other.name, name) || other.name == name) &&
|
||||
(identical(other.date, date) || other.date == date) &&
|
||||
(identical(other.url, url) || other.url == url));
|
||||
}
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
int get hashCode => Object.hash(runtimeType, name, date, url);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$MarianumMessageImplCopyWith<_$MarianumMessageImpl> get copyWith =>
|
||||
__$$MarianumMessageImplCopyWithImpl<_$MarianumMessageImpl>(
|
||||
this, _$identity);
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toJson() {
|
||||
return _$$MarianumMessageImplToJson(
|
||||
this,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class _MarianumMessage implements MarianumMessage {
|
||||
const factory _MarianumMessage(
|
||||
{required final String name,
|
||||
required final String date,
|
||||
required final String url}) = _$MarianumMessageImpl;
|
||||
|
||||
factory _MarianumMessage.fromJson(Map<String, dynamic> json) =
|
||||
_$MarianumMessageImpl.fromJson;
|
||||
|
||||
@override
|
||||
String get name;
|
||||
@override
|
||||
String get date;
|
||||
@override
|
||||
String get url;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$$MarianumMessageImplCopyWith<_$MarianumMessageImpl> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'marianum_message_state.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
_$MarianumMessageStateImpl _$$MarianumMessageStateImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$MarianumMessageStateImpl(
|
||||
messageList: MarianumMessageList.fromJson(
|
||||
json['messageList'] as Map<String, dynamic>),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$MarianumMessageStateImplToJson(
|
||||
_$MarianumMessageStateImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'messageList': instance.messageList,
|
||||
};
|
||||
|
||||
_$MarianumMessageListImpl _$$MarianumMessageListImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$MarianumMessageListImpl(
|
||||
base: json['base'] as String,
|
||||
messages: (json['messages'] as List<dynamic>)
|
||||
.map((e) => MarianumMessage.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$MarianumMessageListImplToJson(
|
||||
_$MarianumMessageListImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'base': instance.base,
|
||||
'messages': instance.messages,
|
||||
};
|
||||
|
||||
_$MarianumMessageImpl _$$MarianumMessageImplFromJson(
|
||||
Map<String, dynamic> json) =>
|
||||
_$MarianumMessageImpl(
|
||||
name: json['name'] as String,
|
||||
date: json['date'] as String,
|
||||
url: json['url'] as String,
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$$MarianumMessageImplToJson(
|
||||
_$MarianumMessageImpl instance) =>
|
||||
<String, dynamic>{
|
||||
'name': instance.name,
|
||||
'date': instance.date,
|
||||
'url': instance.url,
|
||||
};
|
@ -0,0 +1,6 @@
|
||||
import '../../../infrastructure/dataLoader/data_loader.dart';
|
||||
|
||||
class MarianumMessageGetMessages extends DataLoader {
|
||||
@override
|
||||
Future fetch() => Future(() => 'Test');
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
import '../../../infrastructure/loadableState/loadable_state.dart';
|
||||
import '../../../infrastructure/repository/repository.dart';
|
||||
import '../dataProvider/marianum_message_get_messages.dart';
|
||||
|
||||
class MarianumMessageRepository<TState> extends Repository {
|
||||
MarianumMessageRepository(void Function(LoadableState<TState> content) emit) : super([
|
||||
MarianumMessageGetMessages(),
|
||||
]);
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../../../api/mhsl/message/getMessages/getMessagesResponse.dart';
|
||||
import '../../../../../view/pages/more/message/messageView.dart';
|
||||
import '../../../infrastructure/loadableState/loadable_state.dart';
|
||||
import '../../../infrastructure/loadableState/view/loadable_state_consumer.dart';
|
||||
import '../../../infrastructure/utilityWidgets/bloc_providing_builder.dart';
|
||||
import '../bloc/marianum_message_bloc.dart';
|
||||
import '../bloc/marianum_message_state.dart';
|
||||
|
||||
class MarianumMessageListView extends StatelessWidget {
|
||||
const MarianumMessageListView({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Marianum Message'),
|
||||
),
|
||||
body: BlocProvidingBuilder<MarianumMessageBloc, LoadableState<MarianumMessageState>>(
|
||||
create: (context) => MarianumMessageBloc(),
|
||||
child: (context, state) {
|
||||
// if(value.primaryLoading()) return const LoadingSpinner();
|
||||
log(state.toString());
|
||||
return LoadableStateConsumer<MarianumMessageBloc, LoadableState<MarianumMessageState>, MarianumMessageState>(
|
||||
child: (state) => ListView.builder(
|
||||
itemCount: state.messageList.messages.length,
|
||||
itemBuilder: (context, index) {
|
||||
var message = state.messageList.messages.toList()[index];
|
||||
return ListTile(
|
||||
leading: const Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [Icon(Icons.newspaper)],
|
||||
),
|
||||
title: Text(message.name, overflow: TextOverflow.ellipsis),
|
||||
subtitle: Text('vom ${message.date}'),
|
||||
trailing: const Icon(Icons.arrow_right),
|
||||
onTap: () {
|
||||
Navigator.push(context, MaterialPageRoute(builder: (context) => MessageView(basePath: state.messageList.base, message: message as GetMessagesResponseObject)));
|
||||
},
|
||||
);
|
||||
}
|
||||
),
|
||||
);
|
||||
}
|
||||
),
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user