kopia lustrzana https://gitlab.com/mysocialportal/relatica
Move EntryTreeItem flattening access to the RP Provider
rodzic
6f59f54a43
commit
6115df7395
|
@ -8,7 +8,6 @@ import '../../models/flattened_tree_item.dart';
|
|||
import '../../riverpod_controllers/entry_tree_item_services.dart';
|
||||
import '../../riverpod_controllers/timeline_entry_services.dart';
|
||||
import '../../services/auth_service.dart';
|
||||
import '../../utils/entry_tree_item_flattening.dart';
|
||||
import 'flattened_tree_entry_control.dart';
|
||||
|
||||
class PostControl extends ConsumerStatefulWidget {
|
||||
|
@ -47,18 +46,25 @@ class _PostControlState extends ConsumerState<PostControl> {
|
|||
Widget build(BuildContext context) {
|
||||
final profile = context.watch<AccountsService>().currentProfile;
|
||||
//TODO Handle it not existing
|
||||
final item = ref.watch(entryTreeManagerProvider(profile, widget.id)).value;
|
||||
|
||||
ref.watch(timelineEntryManagerProvider(profile, widget.id));
|
||||
if (!widget.isRoot) {
|
||||
return FlattenedTreeEntryControl(
|
||||
originalItem:
|
||||
item.flatten(topLevelOnly: true, profile: profile, ref: ref).first,
|
||||
originalItem: ref
|
||||
.watch(entryTreeManagerProvider(profile, widget.id).notifier)
|
||||
.flattened(topLevelOnly: true)
|
||||
.value
|
||||
.first,
|
||||
openRemote: widget.openRemote,
|
||||
showStatusOpenButton: widget.showStatusOpenButton,
|
||||
);
|
||||
}
|
||||
|
||||
final items = item.flatten(profile: profile, ref: ref);
|
||||
final items = ref
|
||||
.watch(entryTreeManagerProvider(profile, widget.id).notifier)
|
||||
.flattened()
|
||||
.value;
|
||||
|
||||
return buildListView(context, items);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,12 +9,14 @@ import '../friendica_client/paging_data.dart';
|
|||
import '../models/auth/profile.dart';
|
||||
import '../models/entry_tree_item.dart';
|
||||
import '../models/exec_error.dart';
|
||||
import '../models/flattened_tree_item.dart';
|
||||
import '../models/image_entry.dart';
|
||||
import '../models/media_attachment_uploads/media_upload_attachment.dart';
|
||||
import '../models/media_attachment_uploads/new_entry_media_items.dart';
|
||||
import '../models/timeline_entry.dart';
|
||||
import '../models/timeline_identifiers.dart';
|
||||
import '../models/visibility.dart';
|
||||
import '../utils/entry_tree_item_flattening.dart';
|
||||
import '../utils/media_upload_attachment_helper.dart';
|
||||
import 'timeline_entry_services.dart';
|
||||
|
||||
|
@ -106,6 +108,23 @@ class EntryTreeManager extends _$EntryTreeManager {
|
|||
_etmLogger.finest('Removing for $entryId for $profile');
|
||||
ref.read(_entryTreeItemsProvider(userProfile)).remove(entryId);
|
||||
}
|
||||
|
||||
Result<List<FlattenedTreeItem>, ExecError> flattened({
|
||||
int level = FlatteningExtensions.baseLevel,
|
||||
bool topLevelOnly = false,
|
||||
}) {
|
||||
if (state.isFailure) {
|
||||
return state.errorCast();
|
||||
}
|
||||
return Result.ok(
|
||||
state.value.flatten(
|
||||
level: level,
|
||||
topLevelOnly: topLevelOnly,
|
||||
profile: userProfile,
|
||||
ref: ref,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
final _tluLogger = Logger('TimelineUpdater');
|
||||
|
|
|
@ -569,7 +569,7 @@ class _PostTreeEntryByIdProviderElement
|
|||
String get id => (origin as PostTreeEntryByIdProvider).id;
|
||||
}
|
||||
|
||||
String _$entryTreeManagerHash() => r'bd1ab2131cc75235d1d222aef7996ec2734efb24';
|
||||
String _$entryTreeManagerHash() => r'1ce486491c19cc513a681f6dfa53362a98db0343';
|
||||
|
||||
abstract class _$EntryTreeManager
|
||||
extends BuildlessNotifier<Result<EntryTreeItem, ExecError>> {
|
||||
|
|
|
@ -14,7 +14,7 @@ extension FlatteningExtensions on EntryTreeItem {
|
|||
{int level = baseLevel,
|
||||
bool topLevelOnly = false,
|
||||
required Profile profile,
|
||||
required WidgetRef ref}) {
|
||||
required Ref ref}) {
|
||||
final items = <FlattenedTreeItem>[];
|
||||
|
||||
// TODO handle if entries aren't in manager
|
||||
|
|
Ładowanie…
Reference in New Issue