diff --git a/lib/model/note_search_condition.dart b/lib/model/note_search_condition.dart new file mode 100644 index 000000000..68235aca7 --- /dev/null +++ b/lib/model/note_search_condition.dart @@ -0,0 +1,20 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; +import 'package:misskey_dart/misskey_dart.dart'; + +part 'note_search_condition.freezed.dart'; + +@freezed +class NoteSearchCondition with _$NoteSearchCondition { + const NoteSearchCondition._(); + + const factory NoteSearchCondition({ + @Default("") String query, + User? user, + CommunityChannel? channel, + @Default(false) bool localOnly, + }) = _NoteSearchCondition; + + bool get isEmpty { + return query.isEmpty && channel == null && user == null; + } +} diff --git a/lib/model/note_search_condition.freezed.dart b/lib/model/note_search_condition.freezed.dart new file mode 100644 index 000000000..453ea572f --- /dev/null +++ b/lib/model/note_search_condition.freezed.dart @@ -0,0 +1,225 @@ +// 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 'note_search_condition.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(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#custom-getters-and-methods'); + +/// @nodoc +mixin _$NoteSearchCondition { + String get query => throw _privateConstructorUsedError; + User? get user => throw _privateConstructorUsedError; + CommunityChannel? get channel => throw _privateConstructorUsedError; + bool get localOnly => throw _privateConstructorUsedError; + + @JsonKey(ignore: true) + $NoteSearchConditionCopyWith get copyWith => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $NoteSearchConditionCopyWith<$Res> { + factory $NoteSearchConditionCopyWith( + NoteSearchCondition value, $Res Function(NoteSearchCondition) then) = + _$NoteSearchConditionCopyWithImpl<$Res, NoteSearchCondition>; + @useResult + $Res call( + {String query, User? user, CommunityChannel? channel, bool localOnly}); + + $UserCopyWith<$Res>? get user; + $CommunityChannelCopyWith<$Res>? get channel; +} + +/// @nodoc +class _$NoteSearchConditionCopyWithImpl<$Res, $Val extends NoteSearchCondition> + implements $NoteSearchConditionCopyWith<$Res> { + _$NoteSearchConditionCopyWithImpl(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? query = null, + Object? user = freezed, + Object? channel = freezed, + Object? localOnly = null, + }) { + return _then(_value.copyWith( + query: null == query + ? _value.query + : query // ignore: cast_nullable_to_non_nullable + as String, + user: freezed == user + ? _value.user + : user // ignore: cast_nullable_to_non_nullable + as User?, + channel: freezed == channel + ? _value.channel + : channel // ignore: cast_nullable_to_non_nullable + as CommunityChannel?, + localOnly: null == localOnly + ? _value.localOnly + : localOnly // ignore: cast_nullable_to_non_nullable + as bool, + ) as $Val); + } + + @override + @pragma('vm:prefer-inline') + $UserCopyWith<$Res>? get user { + if (_value.user == null) { + return null; + } + + return $UserCopyWith<$Res>(_value.user!, (value) { + return _then(_value.copyWith(user: value) as $Val); + }); + } + + @override + @pragma('vm:prefer-inline') + $CommunityChannelCopyWith<$Res>? get channel { + if (_value.channel == null) { + return null; + } + + return $CommunityChannelCopyWith<$Res>(_value.channel!, (value) { + return _then(_value.copyWith(channel: value) as $Val); + }); + } +} + +/// @nodoc +abstract class _$$_NoteSearchConditionCopyWith<$Res> + implements $NoteSearchConditionCopyWith<$Res> { + factory _$$_NoteSearchConditionCopyWith(_$_NoteSearchCondition value, + $Res Function(_$_NoteSearchCondition) then) = + __$$_NoteSearchConditionCopyWithImpl<$Res>; + @override + @useResult + $Res call( + {String query, User? user, CommunityChannel? channel, bool localOnly}); + + @override + $UserCopyWith<$Res>? get user; + @override + $CommunityChannelCopyWith<$Res>? get channel; +} + +/// @nodoc +class __$$_NoteSearchConditionCopyWithImpl<$Res> + extends _$NoteSearchConditionCopyWithImpl<$Res, _$_NoteSearchCondition> + implements _$$_NoteSearchConditionCopyWith<$Res> { + __$$_NoteSearchConditionCopyWithImpl(_$_NoteSearchCondition _value, + $Res Function(_$_NoteSearchCondition) _then) + : super(_value, _then); + + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? query = null, + Object? user = freezed, + Object? channel = freezed, + Object? localOnly = null, + }) { + return _then(_$_NoteSearchCondition( + query: null == query + ? _value.query + : query // ignore: cast_nullable_to_non_nullable + as String, + user: freezed == user + ? _value.user + : user // ignore: cast_nullable_to_non_nullable + as User?, + channel: freezed == channel + ? _value.channel + : channel // ignore: cast_nullable_to_non_nullable + as CommunityChannel?, + localOnly: null == localOnly + ? _value.localOnly + : localOnly // ignore: cast_nullable_to_non_nullable + as bool, + )); + } +} + +/// @nodoc + +class _$_NoteSearchCondition extends _NoteSearchCondition { + const _$_NoteSearchCondition( + {this.query = "", this.user, this.channel, this.localOnly = false}) + : super._(); + + @override + @JsonKey() + final String query; + @override + final User? user; + @override + final CommunityChannel? channel; + @override + @JsonKey() + final bool localOnly; + + @override + String toString() { + return 'NoteSearchCondition(query: $query, user: $user, channel: $channel, localOnly: $localOnly)'; + } + + @override + bool operator ==(dynamic other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$_NoteSearchCondition && + (identical(other.query, query) || other.query == query) && + (identical(other.user, user) || other.user == user) && + (identical(other.channel, channel) || other.channel == channel) && + (identical(other.localOnly, localOnly) || + other.localOnly == localOnly)); + } + + @override + int get hashCode => Object.hash(runtimeType, query, user, channel, localOnly); + + @JsonKey(ignore: true) + @override + @pragma('vm:prefer-inline') + _$$_NoteSearchConditionCopyWith<_$_NoteSearchCondition> get copyWith => + __$$_NoteSearchConditionCopyWithImpl<_$_NoteSearchCondition>( + this, _$identity); +} + +abstract class _NoteSearchCondition extends NoteSearchCondition { + const factory _NoteSearchCondition( + {final String query, + final User? user, + final CommunityChannel? channel, + final bool localOnly}) = _$_NoteSearchCondition; + const _NoteSearchCondition._() : super._(); + + @override + String get query; + @override + User? get user; + @override + CommunityChannel? get channel; + @override + bool get localOnly; + @override + @JsonKey(ignore: true) + _$$_NoteSearchConditionCopyWith<_$_NoteSearchCondition> get copyWith => + throw _privateConstructorUsedError; +} diff --git a/lib/router/app_router.dart b/lib/router/app_router.dart index 6acccbb40..ab9338f9d 100644 --- a/lib/router/app_router.dart +++ b/lib/router/app_router.dart @@ -4,6 +4,7 @@ import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:miria/model/account.dart'; import 'package:miria/model/image_file.dart'; +import 'package:miria/model/note_search_condition.dart'; import 'package:miria/model/tab_setting.dart'; import 'package:miria/view/announcements_page/announcements_page.dart'; import 'package:miria/view/antenna_page/antenna_page.dart'; diff --git a/lib/router/app_router.gr.dart b/lib/router/app_router.gr.dart index 5b179e22b..a2f2c9672 100644 --- a/lib/router/app_router.gr.dart +++ b/lib/router/app_router.gr.dart @@ -15,13 +15,23 @@ abstract class _$AppRouter extends RootStackRouter { @override final Map pagesMap = { - NotesAfterRenoteRoute.name: (routeData) { - final args = routeData.argsAs(); + AnnouncementRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: NotesAfterRenotePage( + child: AnnouncementPage( key: args.key, - note: args.note, + account: args.account, + ), + ); + }, + AntennaNotesRoute.name: (routeData) { + final args = routeData.argsAs(); + return AutoRoutePage( + routeData: routeData, + child: AntennaNotesPage( + key: args.key, + antenna: args.antenna, account: args.account, ), ); @@ -36,33 +46,27 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - AntennaNotesRoute.name: (routeData) { - final args = routeData.argsAs(); + ChannelsRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: AntennaNotesPage( + child: ChannelsPage( key: args.key, - antenna: args.antenna, account: args.account, ), ); }, - NotificationRoute.name: (routeData) { - final args = routeData.argsAs(); + ChannelDetailRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: NotificationPage( + child: ChannelDetailPage( key: args.key, account: args.account, + channelId: args.channelId, ), ); }, - LoginRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const LoginPage(), - ); - }, ClipDetailRoute.name: (routeData) { final args = routeData.argsAs(); return AutoRoutePage( @@ -84,227 +88,230 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - NoteCreateRoute.name: (routeData) { - final args = routeData.argsAs(); + ExploreRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: NoteCreatePage( + child: ExplorePage( key: args.key, - initialAccount: args.initialAccount, - initialText: args.initialText, - initialMediaFiles: args.initialMediaFiles, - channel: args.channel, - reply: args.reply, - renote: args.renote, - note: args.note, - noteCreationMode: args.noteCreationMode, + account: args.account, ), ); }, - HashtagRoute.name: (routeData) { - final args = routeData.argsAs(); + ExploreRoleUsersRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: HashtagPage( + child: ExploreRoleUsersPage( key: args.key, - hashtag: args.hashtag, + item: args.item, account: args.account, ), ); }, - UserFolloweeRoute.name: (routeData) { - final args = routeData.argsAs(); + FavoritedNoteRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: UserFolloweePage( + child: FavoritedNotePage( key: args.key, - userId: args.userId, account: args.account, ), ); }, - UserRoute.name: (routeData) { - final args = routeData.argsAs(); + FederationRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: UserPage( + child: FederationPage( key: args.key, - userId: args.userId, account: args.account, + host: args.host, ), ); }, - UserFollowerRoute.name: (routeData) { - final args = routeData.argsAs(); + HashtagRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: UserFollowerPage( + child: HashtagPage( key: args.key, - userId: args.userId, + hashtag: args.hashtag, account: args.account, ), ); }, - PhotoEditRoute.name: (routeData) { - final args = routeData.argsAs(); - return AutoRoutePage( + LoginRoute.name: (routeData) { + return AutoRoutePage( routeData: routeData, - child: PhotoEditPage( - account: args.account, - file: args.file, - onSubmit: args.onSubmit, - key: args.key, - ), + child: const LoginPage(), ); }, - AnnouncementRoute.name: (routeData) { - final args = routeData.argsAs(); + NotesAfterRenoteRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: AnnouncementPage( + child: NotesAfterRenotePage( key: args.key, + note: args.note, account: args.account, ), ); }, - SplashRoute.name: (routeData) { + NoteCreateRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: const SplashPage(), + child: NoteCreatePage( + key: args.key, + initialAccount: args.initialAccount, + initialText: args.initialText, + initialMediaFiles: args.initialMediaFiles, + channel: args.channel, + reply: args.reply, + renote: args.renote, + note: args.note, + noteCreationMode: args.noteCreationMode, + ), ); }, - SeveralAccountGeneralSettingsRoute.name: (routeData) { - final args = routeData.argsAs(); + NoteDetailRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: SeveralAccountGeneralSettingsPage( + child: NoteDetailPage( key: args.key, + note: args.note, account: args.account, ), ); }, - SeveralAccountSettingsRoute.name: (routeData) { - final args = routeData.argsAs(); + NotificationRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: SeveralAccountSettingsPage( + child: NotificationPage( key: args.key, account: args.account, ), ); }, - InstanceMuteRoute.name: (routeData) { - final args = routeData.argsAs(); - return AutoRoutePage( + PhotoEditRoute.name: (routeData) { + final args = routeData.argsAs(); + return AutoRoutePage( routeData: routeData, - child: InstanceMutePage( - key: args.key, + child: PhotoEditPage( account: args.account, + file: args.file, + onSubmit: args.onSubmit, + key: args.key, ), ); }, - HardMuteRoute.name: (routeData) { - final args = routeData.argsAs(); + SearchRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: HardMutePage( + child: SearchPage( key: args.key, + initialNoteSearchCondition: args.initialNoteSearchCondition, account: args.account, ), ); }, - ReactionDeckRoute.name: (routeData) { - final args = routeData.argsAs(); + AccountListRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: ReactionDeckPage( - key: args.key, - account: args.account, - ), + child: const AccountListPage(), ); }, - UsersListTimelineRoute.name: (routeData) { - final args = routeData.argsAs(); + AppInfoRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: UsersListTimelinePage( - args.account, - args.list, - key: args.key, - ), + child: const AppInfoPage(), ); }, - UsersListRoute.name: (routeData) { - final args = routeData.argsAs(); + GeneralSettingsRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: UsersListPage( - args.account, - key: args.key, - ), + child: const GeneralSettingsPage(), ); }, - UsersListDetailRoute.name: (routeData) { - final args = routeData.argsAs(); + ImportExportRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: UsersListDetailPage( + child: const ImportExportPage(), + ); + }, + SettingsRoute.name: (routeData) { + return AutoRoutePage( + routeData: routeData, + child: const SettingsPage(), + ); + }, + TabSettingsListRoute.name: (routeData) { + return AutoRoutePage( + routeData: routeData, + child: const TabSettingsListPage(), + ); + }, + TabSettingsRoute.name: (routeData) { + final args = routeData.argsAs( + orElse: () => const TabSettingsRouteArgs()); + return AutoRoutePage( + routeData: routeData, + child: TabSettingsPage( key: args.key, - account: args.account, - listId: args.listId, + tabIndex: args.tabIndex, ), ); }, - ChannelDetailRoute.name: (routeData) { - final args = routeData.argsAs(); + HardMuteRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: ChannelDetailPage( + child: HardMutePage( key: args.key, account: args.account, - channelId: args.channelId, ), ); }, - ChannelsRoute.name: (routeData) { - final args = routeData.argsAs(); + InstanceMuteRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: ChannelsPage( + child: InstanceMutePage( key: args.key, account: args.account, ), ); }, - FederationRoute.name: (routeData) { - final args = routeData.argsAs(); + ReactionDeckRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: FederationPage( + child: ReactionDeckPage( key: args.key, account: args.account, - host: args.host, ), ); }, - NoteDetailRoute.name: (routeData) { - final args = routeData.argsAs(); + SeveralAccountGeneralSettingsRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: NoteDetailPage( + child: SeveralAccountGeneralSettingsPage( key: args.key, - note: args.note, account: args.account, ), ); }, - SearchRoute.name: (routeData) { - final args = routeData.argsAs(); + SeveralAccountSettingsRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: SearchPage( + child: SeveralAccountSettingsPage( key: args.key, - initialSearchText: args.initialSearchText, account: args.account, ), ); @@ -321,70 +328,73 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - ImportExportRoute.name: (routeData) { + SplashRoute.name: (routeData) { return AutoRoutePage( routeData: routeData, - child: const ImportExportPage(), + child: const SplashPage(), ); }, - GeneralSettingsRoute.name: (routeData) { + UsersListDetailRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: const GeneralSettingsPage(), + child: UsersListDetailPage( + key: args.key, + account: args.account, + listId: args.listId, + ), ); }, - TabSettingsRoute.name: (routeData) { - final args = routeData.argsAs( - orElse: () => const TabSettingsRouteArgs()); + UsersListRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: TabSettingsPage( + child: UsersListPage( + args.account, key: args.key, - tabIndex: args.tabIndex, ), ); }, - TabSettingsListRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const TabSettingsListPage(), - ); - }, - AppInfoRoute.name: (routeData) { - return AutoRoutePage( - routeData: routeData, - child: const AppInfoPage(), - ); - }, - SettingsRoute.name: (routeData) { + UsersListTimelineRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: const SettingsPage(), + child: UsersListTimelinePage( + args.account, + args.list, + key: args.key, + ), ); }, - AccountListRoute.name: (routeData) { + UserFolloweeRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: const AccountListPage(), + child: UserFolloweePage( + key: args.key, + userId: args.userId, + account: args.account, + ), ); }, - ExploreRoleUsersRoute.name: (routeData) { - final args = routeData.argsAs(); + UserFollowerRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: ExploreRoleUsersPage( + child: UserFollowerPage( key: args.key, - item: args.item, + userId: args.userId, account: args.account, ), ); }, - ExploreRoute.name: (routeData) { - final args = routeData.argsAs(); + UserRoute.name: (routeData) { + final args = routeData.argsAs(); return AutoRoutePage( routeData: routeData, - child: ExplorePage( + child: UserPage( key: args.key, + userId: args.userId, account: args.account, ), ); @@ -399,59 +409,87 @@ abstract class _$AppRouter extends RootStackRouter { ), ); }, - FavoritedNoteRoute.name: (routeData) { - final args = routeData.argsAs(); - return AutoRoutePage( - routeData: routeData, - child: FavoritedNotePage( - key: args.key, - account: args.account, - ), - ); - }, }; } /// generated route for -/// [NotesAfterRenotePage] -class NotesAfterRenoteRoute extends PageRouteInfo { - NotesAfterRenoteRoute({ +/// [AnnouncementPage] +class AnnouncementRoute extends PageRouteInfo { + AnnouncementRoute({ Key? key, - required Note note, required Account account, List? children, }) : super( - NotesAfterRenoteRoute.name, - args: NotesAfterRenoteRouteArgs( + AnnouncementRoute.name, + args: AnnouncementRouteArgs( key: key, - note: note, account: account, ), initialChildren: children, ); - static const String name = 'NotesAfterRenoteRoute'; + static const String name = 'AnnouncementRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class NotesAfterRenoteRouteArgs { - const NotesAfterRenoteRouteArgs({ +class AnnouncementRouteArgs { + const AnnouncementRouteArgs({ this.key, - required this.note, required this.account, }); final Key? key; - final Note note; + final Account account; + + @override + String toString() { + return 'AnnouncementRouteArgs{key: $key, account: $account}'; + } +} + +/// generated route for +/// [AntennaNotesPage] +class AntennaNotesRoute extends PageRouteInfo { + AntennaNotesRoute({ + Key? key, + required Antenna antenna, + required Account account, + List? children, + }) : super( + AntennaNotesRoute.name, + args: AntennaNotesRouteArgs( + key: key, + antenna: antenna, + account: account, + ), + initialChildren: children, + ); + + static const String name = 'AntennaNotesRoute'; + + static const PageInfo page = + PageInfo(name); +} + +class AntennaNotesRouteArgs { + const AntennaNotesRouteArgs({ + this.key, + required this.antenna, + required this.account, + }); + + final Key? key; + + final Antenna antenna; final Account account; @override String toString() { - return 'NotesAfterRenoteRouteArgs{key: $key, note: $note, account: $account}'; + return 'AntennaNotesRouteArgs{key: $key, antenna: $antenna, account: $account}'; } } @@ -494,100 +532,86 @@ class AntennaRouteArgs { } /// generated route for -/// [AntennaNotesPage] -class AntennaNotesRoute extends PageRouteInfo { - AntennaNotesRoute({ +/// [ChannelsPage] +class ChannelsRoute extends PageRouteInfo { + ChannelsRoute({ Key? key, - required Antenna antenna, required Account account, List? children, }) : super( - AntennaNotesRoute.name, - args: AntennaNotesRouteArgs( + ChannelsRoute.name, + args: ChannelsRouteArgs( key: key, - antenna: antenna, account: account, ), initialChildren: children, ); - static const String name = 'AntennaNotesRoute'; + static const String name = 'ChannelsRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class AntennaNotesRouteArgs { - const AntennaNotesRouteArgs({ +class ChannelsRouteArgs { + const ChannelsRouteArgs({ this.key, - required this.antenna, required this.account, }); final Key? key; - final Antenna antenna; - final Account account; @override String toString() { - return 'AntennaNotesRouteArgs{key: $key, antenna: $antenna, account: $account}'; + return 'ChannelsRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [NotificationPage] -class NotificationRoute extends PageRouteInfo { - NotificationRoute({ +/// [ChannelDetailPage] +class ChannelDetailRoute extends PageRouteInfo { + ChannelDetailRoute({ Key? key, required Account account, + required String channelId, List? children, }) : super( - NotificationRoute.name, - args: NotificationRouteArgs( + ChannelDetailRoute.name, + args: ChannelDetailRouteArgs( key: key, account: account, + channelId: channelId, ), initialChildren: children, ); - static const String name = 'NotificationRoute'; + static const String name = 'ChannelDetailRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class NotificationRouteArgs { - const NotificationRouteArgs({ +class ChannelDetailRouteArgs { + const ChannelDetailRouteArgs({ this.key, required this.account, + required this.channelId, }); final Key? key; final Account account; + final String channelId; + @override String toString() { - return 'NotificationRouteArgs{key: $key, account: $account}'; + return 'ChannelDetailRouteArgs{key: $key, account: $account, channelId: $channelId}'; } } -/// generated route for -/// [LoginPage] -class LoginRoute extends PageRouteInfo { - const LoginRoute({List? children}) - : super( - LoginRoute.name, - initialChildren: children, - ); - - static const String name = 'LoginRoute'; - - static const PageInfo page = PageInfo(name); -} - /// generated route for /// [ClipDetailPage] class ClipDetailRoute extends PageRouteInfo { @@ -670,451 +694,407 @@ class ClipListRouteArgs { } /// generated route for -/// [NoteCreatePage] -class NoteCreateRoute extends PageRouteInfo { - NoteCreateRoute({ +/// [ExplorePage] +class ExploreRoute extends PageRouteInfo { + ExploreRoute({ Key? key, - required Account initialAccount, - String? initialText, - List? initialMediaFiles, - CommunityChannel? channel, - Note? reply, - Note? renote, - Note? note, - NoteCreationMode? noteCreationMode, + required Account account, List? children, }) : super( - NoteCreateRoute.name, - args: NoteCreateRouteArgs( + ExploreRoute.name, + args: ExploreRouteArgs( key: key, - initialAccount: initialAccount, - initialText: initialText, - initialMediaFiles: initialMediaFiles, - channel: channel, - reply: reply, - renote: renote, - note: note, - noteCreationMode: noteCreationMode, + account: account, ), initialChildren: children, ); - static const String name = 'NoteCreateRoute'; + static const String name = 'ExploreRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class NoteCreateRouteArgs { - const NoteCreateRouteArgs({ +class ExploreRouteArgs { + const ExploreRouteArgs({ this.key, - required this.initialAccount, - this.initialText, - this.initialMediaFiles, - this.channel, - this.reply, - this.renote, - this.note, - this.noteCreationMode, + required this.account, }); final Key? key; - final Account initialAccount; - - final String? initialText; - - final List? initialMediaFiles; - - final CommunityChannel? channel; - - final Note? reply; - - final Note? renote; - - final Note? note; - - final NoteCreationMode? noteCreationMode; + final Account account; @override String toString() { - return 'NoteCreateRouteArgs{key: $key, initialAccount: $initialAccount, initialText: $initialText, initialMediaFiles: $initialMediaFiles, channel: $channel, reply: $reply, renote: $renote, note: $note, noteCreationMode: $noteCreationMode}'; + return 'ExploreRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [HashtagPage] -class HashtagRoute extends PageRouteInfo { - HashtagRoute({ +/// [ExploreRoleUsersPage] +class ExploreRoleUsersRoute extends PageRouteInfo { + ExploreRoleUsersRoute({ Key? key, - required String hashtag, + required RolesListResponse item, required Account account, List? children, }) : super( - HashtagRoute.name, - args: HashtagRouteArgs( + ExploreRoleUsersRoute.name, + args: ExploreRoleUsersRouteArgs( key: key, - hashtag: hashtag, + item: item, account: account, ), initialChildren: children, ); - static const String name = 'HashtagRoute'; + static const String name = 'ExploreRoleUsersRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class HashtagRouteArgs { - const HashtagRouteArgs({ +class ExploreRoleUsersRouteArgs { + const ExploreRoleUsersRouteArgs({ this.key, - required this.hashtag, + required this.item, required this.account, }); final Key? key; - final String hashtag; + final RolesListResponse item; final Account account; @override String toString() { - return 'HashtagRouteArgs{key: $key, hashtag: $hashtag, account: $account}'; + return 'ExploreRoleUsersRouteArgs{key: $key, item: $item, account: $account}'; } } /// generated route for -/// [UserFolloweePage] -class UserFolloweeRoute extends PageRouteInfo { - UserFolloweeRoute({ +/// [FavoritedNotePage] +class FavoritedNoteRoute extends PageRouteInfo { + FavoritedNoteRoute({ Key? key, - required String userId, required Account account, List? children, }) : super( - UserFolloweeRoute.name, - args: UserFolloweeRouteArgs( + FavoritedNoteRoute.name, + args: FavoritedNoteRouteArgs( key: key, - userId: userId, account: account, ), initialChildren: children, ); - static const String name = 'UserFolloweeRoute'; + static const String name = 'FavoritedNoteRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class UserFolloweeRouteArgs { - const UserFolloweeRouteArgs({ +class FavoritedNoteRouteArgs { + const FavoritedNoteRouteArgs({ this.key, - required this.userId, required this.account, }); final Key? key; - final String userId; - final Account account; @override String toString() { - return 'UserFolloweeRouteArgs{key: $key, userId: $userId, account: $account}'; + return 'FavoritedNoteRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [UserPage] -class UserRoute extends PageRouteInfo { - UserRoute({ +/// [FederationPage] +class FederationRoute extends PageRouteInfo { + FederationRoute({ Key? key, - required String userId, required Account account, + required String host, List? children, }) : super( - UserRoute.name, - args: UserRouteArgs( + FederationRoute.name, + args: FederationRouteArgs( key: key, - userId: userId, account: account, + host: host, ), initialChildren: children, ); - static const String name = 'UserRoute'; + static const String name = 'FederationRoute'; - static const PageInfo page = PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class UserRouteArgs { - const UserRouteArgs({ +class FederationRouteArgs { + const FederationRouteArgs({ this.key, - required this.userId, required this.account, + required this.host, }); final Key? key; - final String userId; - final Account account; + final String host; + @override String toString() { - return 'UserRouteArgs{key: $key, userId: $userId, account: $account}'; + return 'FederationRouteArgs{key: $key, account: $account, host: $host}'; } } /// generated route for -/// [UserFollowerPage] -class UserFollowerRoute extends PageRouteInfo { - UserFollowerRoute({ +/// [HashtagPage] +class HashtagRoute extends PageRouteInfo { + HashtagRoute({ Key? key, - required String userId, + required String hashtag, required Account account, List? children, }) : super( - UserFollowerRoute.name, - args: UserFollowerRouteArgs( + HashtagRoute.name, + args: HashtagRouteArgs( key: key, - userId: userId, + hashtag: hashtag, account: account, ), initialChildren: children, ); - static const String name = 'UserFollowerRoute'; + static const String name = 'HashtagRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class UserFollowerRouteArgs { - const UserFollowerRouteArgs({ +class HashtagRouteArgs { + const HashtagRouteArgs({ this.key, - required this.userId, + required this.hashtag, required this.account, }); final Key? key; - final String userId; + final String hashtag; final Account account; @override String toString() { - return 'UserFollowerRouteArgs{key: $key, userId: $userId, account: $account}'; + return 'HashtagRouteArgs{key: $key, hashtag: $hashtag, account: $account}'; } } /// generated route for -/// [PhotoEditPage] -class PhotoEditRoute extends PageRouteInfo { - PhotoEditRoute({ - required Account account, - required MisskeyPostFile file, - required void Function(Uint8List) onSubmit, - Key? key, - List? children, - }) : super( - PhotoEditRoute.name, - args: PhotoEditRouteArgs( - account: account, - file: file, - onSubmit: onSubmit, - key: key, - ), +/// [LoginPage] +class LoginRoute extends PageRouteInfo { + const LoginRoute({List? children}) + : super( + LoginRoute.name, initialChildren: children, ); - static const String name = 'PhotoEditRoute'; - - static const PageInfo page = - PageInfo(name); -} - -class PhotoEditRouteArgs { - const PhotoEditRouteArgs({ - required this.account, - required this.file, - required this.onSubmit, - this.key, - }); - - final Account account; - - final MisskeyPostFile file; - - final void Function(Uint8List) onSubmit; - - final Key? key; + static const String name = 'LoginRoute'; - @override - String toString() { - return 'PhotoEditRouteArgs{account: $account, file: $file, onSubmit: $onSubmit, key: $key}'; - } + static const PageInfo page = PageInfo(name); } /// generated route for -/// [AnnouncementPage] -class AnnouncementRoute extends PageRouteInfo { - AnnouncementRoute({ +/// [NotesAfterRenotePage] +class NotesAfterRenoteRoute extends PageRouteInfo { + NotesAfterRenoteRoute({ Key? key, + required Note note, required Account account, List? children, }) : super( - AnnouncementRoute.name, - args: AnnouncementRouteArgs( + NotesAfterRenoteRoute.name, + args: NotesAfterRenoteRouteArgs( key: key, + note: note, account: account, ), initialChildren: children, ); - static const String name = 'AnnouncementRoute'; + static const String name = 'NotesAfterRenoteRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class AnnouncementRouteArgs { - const AnnouncementRouteArgs({ +class NotesAfterRenoteRouteArgs { + const NotesAfterRenoteRouteArgs({ this.key, + required this.note, required this.account, }); final Key? key; + final Note note; + final Account account; @override String toString() { - return 'AnnouncementRouteArgs{key: $key, account: $account}'; + return 'NotesAfterRenoteRouteArgs{key: $key, note: $note, account: $account}'; } } /// generated route for -/// [SplashPage] -class SplashRoute extends PageRouteInfo { - const SplashRoute({List? children}) - : super( - SplashRoute.name, - initialChildren: children, - ); - - static const String name = 'SplashRoute'; - - static const PageInfo page = PageInfo(name); -} - -/// generated route for -/// [SeveralAccountGeneralSettingsPage] -class SeveralAccountGeneralSettingsRoute - extends PageRouteInfo { - SeveralAccountGeneralSettingsRoute({ +/// [NoteCreatePage] +class NoteCreateRoute extends PageRouteInfo { + NoteCreateRoute({ Key? key, - required Account account, + required Account initialAccount, + String? initialText, + List? initialMediaFiles, + CommunityChannel? channel, + Note? reply, + Note? renote, + Note? note, + NoteCreationMode? noteCreationMode, List? children, }) : super( - SeveralAccountGeneralSettingsRoute.name, - args: SeveralAccountGeneralSettingsRouteArgs( + NoteCreateRoute.name, + args: NoteCreateRouteArgs( key: key, - account: account, + initialAccount: initialAccount, + initialText: initialText, + initialMediaFiles: initialMediaFiles, + channel: channel, + reply: reply, + renote: renote, + note: note, + noteCreationMode: noteCreationMode, ), initialChildren: children, ); - static const String name = 'SeveralAccountGeneralSettingsRoute'; + static const String name = 'NoteCreateRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class SeveralAccountGeneralSettingsRouteArgs { - const SeveralAccountGeneralSettingsRouteArgs({ +class NoteCreateRouteArgs { + const NoteCreateRouteArgs({ this.key, - required this.account, + required this.initialAccount, + this.initialText, + this.initialMediaFiles, + this.channel, + this.reply, + this.renote, + this.note, + this.noteCreationMode, }); final Key? key; - final Account account; + final Account initialAccount; + + final String? initialText; + + final List? initialMediaFiles; + + final CommunityChannel? channel; + + final Note? reply; + + final Note? renote; + + final Note? note; + + final NoteCreationMode? noteCreationMode; @override String toString() { - return 'SeveralAccountGeneralSettingsRouteArgs{key: $key, account: $account}'; + return 'NoteCreateRouteArgs{key: $key, initialAccount: $initialAccount, initialText: $initialText, initialMediaFiles: $initialMediaFiles, channel: $channel, reply: $reply, renote: $renote, note: $note, noteCreationMode: $noteCreationMode}'; } } /// generated route for -/// [SeveralAccountSettingsPage] -class SeveralAccountSettingsRoute - extends PageRouteInfo { - SeveralAccountSettingsRoute({ +/// [NoteDetailPage] +class NoteDetailRoute extends PageRouteInfo { + NoteDetailRoute({ Key? key, + required Note note, required Account account, List? children, }) : super( - SeveralAccountSettingsRoute.name, - args: SeveralAccountSettingsRouteArgs( + NoteDetailRoute.name, + args: NoteDetailRouteArgs( key: key, + note: note, account: account, ), initialChildren: children, ); - static const String name = 'SeveralAccountSettingsRoute'; + static const String name = 'NoteDetailRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class SeveralAccountSettingsRouteArgs { - const SeveralAccountSettingsRouteArgs({ +class NoteDetailRouteArgs { + const NoteDetailRouteArgs({ this.key, + required this.note, required this.account, }); final Key? key; + final Note note; + final Account account; @override String toString() { - return 'SeveralAccountSettingsRouteArgs{key: $key, account: $account}'; + return 'NoteDetailRouteArgs{key: $key, note: $note, account: $account}'; } } /// generated route for -/// [InstanceMutePage] -class InstanceMuteRoute extends PageRouteInfo { - InstanceMuteRoute({ +/// [NotificationPage] +class NotificationRoute extends PageRouteInfo { + NotificationRoute({ Key? key, required Account account, List? children, }) : super( - InstanceMuteRoute.name, - args: InstanceMuteRouteArgs( + NotificationRoute.name, + args: NotificationRouteArgs( key: key, account: account, ), initialChildren: children, ); - static const String name = 'InstanceMuteRoute'; + static const String name = 'NotificationRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class InstanceMuteRouteArgs { - const InstanceMuteRouteArgs({ +class NotificationRouteArgs { + const NotificationRouteArgs({ this.key, required this.account, }); @@ -1125,277 +1105,284 @@ class InstanceMuteRouteArgs { @override String toString() { - return 'InstanceMuteRouteArgs{key: $key, account: $account}'; + return 'NotificationRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [HardMutePage] -class HardMuteRoute extends PageRouteInfo { - HardMuteRoute({ - Key? key, +/// [PhotoEditPage] +class PhotoEditRoute extends PageRouteInfo { + PhotoEditRoute({ required Account account, + required MisskeyPostFile file, + required void Function(Uint8List) onSubmit, + Key? key, List? children, }) : super( - HardMuteRoute.name, - args: HardMuteRouteArgs( - key: key, + PhotoEditRoute.name, + args: PhotoEditRouteArgs( account: account, + file: file, + onSubmit: onSubmit, + key: key, ), initialChildren: children, ); - static const String name = 'HardMuteRoute'; + static const String name = 'PhotoEditRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class HardMuteRouteArgs { - const HardMuteRouteArgs({ - this.key, +class PhotoEditRouteArgs { + const PhotoEditRouteArgs({ required this.account, + required this.file, + required this.onSubmit, + this.key, }); - final Key? key; - final Account account; + final MisskeyPostFile file; + + final void Function(Uint8List) onSubmit; + + final Key? key; + @override String toString() { - return 'HardMuteRouteArgs{key: $key, account: $account}'; + return 'PhotoEditRouteArgs{account: $account, file: $file, onSubmit: $onSubmit, key: $key}'; } } /// generated route for -/// [ReactionDeckPage] -class ReactionDeckRoute extends PageRouteInfo { - ReactionDeckRoute({ +/// [SearchPage] +class SearchRoute extends PageRouteInfo { + SearchRoute({ Key? key, + NoteSearchCondition? initialNoteSearchCondition, required Account account, List? children, }) : super( - ReactionDeckRoute.name, - args: ReactionDeckRouteArgs( + SearchRoute.name, + args: SearchRouteArgs( key: key, + initialNoteSearchCondition: initialNoteSearchCondition, account: account, ), initialChildren: children, ); - static const String name = 'ReactionDeckRoute'; + static const String name = 'SearchRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = PageInfo(name); } -class ReactionDeckRouteArgs { - const ReactionDeckRouteArgs({ +class SearchRouteArgs { + const SearchRouteArgs({ this.key, + this.initialNoteSearchCondition, required this.account, }); final Key? key; + final NoteSearchCondition? initialNoteSearchCondition; + final Account account; @override String toString() { - return 'ReactionDeckRouteArgs{key: $key, account: $account}'; + return 'SearchRouteArgs{key: $key, initialNoteSearchCondition: $initialNoteSearchCondition, account: $account}'; } } /// generated route for -/// [UsersListTimelinePage] -class UsersListTimelineRoute extends PageRouteInfo { - UsersListTimelineRoute({ - required Account account, - required UsersList list, - Key? key, - List? children, - }) : super( - UsersListTimelineRoute.name, - args: UsersListTimelineRouteArgs( - account: account, - list: list, - key: key, - ), +/// [AccountListPage] +class AccountListRoute extends PageRouteInfo { + const AccountListRoute({List? children}) + : super( + AccountListRoute.name, initialChildren: children, ); - static const String name = 'UsersListTimelineRoute'; + static const String name = 'AccountListRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = PageInfo(name); } -class UsersListTimelineRouteArgs { - const UsersListTimelineRouteArgs({ - required this.account, - required this.list, - this.key, - }); +/// generated route for +/// [AppInfoPage] +class AppInfoRoute extends PageRouteInfo { + const AppInfoRoute({List? children}) + : super( + AppInfoRoute.name, + initialChildren: children, + ); - final Account account; + static const String name = 'AppInfoRoute'; - final UsersList list; + static const PageInfo page = PageInfo(name); +} - final Key? key; +/// generated route for +/// [GeneralSettingsPage] +class GeneralSettingsRoute extends PageRouteInfo { + const GeneralSettingsRoute({List? children}) + : super( + GeneralSettingsRoute.name, + initialChildren: children, + ); - @override - String toString() { - return 'UsersListTimelineRouteArgs{account: $account, list: $list, key: $key}'; - } + static const String name = 'GeneralSettingsRoute'; + + static const PageInfo page = PageInfo(name); } /// generated route for -/// [UsersListPage] -class UsersListRoute extends PageRouteInfo { - UsersListRoute({ - required Account account, - Key? key, - List? children, - }) : super( - UsersListRoute.name, - args: UsersListRouteArgs( - account: account, - key: key, - ), +/// [ImportExportPage] +class ImportExportRoute extends PageRouteInfo { + const ImportExportRoute({List? children}) + : super( + ImportExportRoute.name, initialChildren: children, ); - static const String name = 'UsersListRoute'; + static const String name = 'ImportExportRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = PageInfo(name); } -class UsersListRouteArgs { - const UsersListRouteArgs({ - required this.account, - this.key, - }); +/// generated route for +/// [SettingsPage] +class SettingsRoute extends PageRouteInfo { + const SettingsRoute({List? children}) + : super( + SettingsRoute.name, + initialChildren: children, + ); - final Account account; + static const String name = 'SettingsRoute'; - final Key? key; + static const PageInfo page = PageInfo(name); +} - @override - String toString() { - return 'UsersListRouteArgs{account: $account, key: $key}'; - } +/// generated route for +/// [TabSettingsListPage] +class TabSettingsListRoute extends PageRouteInfo { + const TabSettingsListRoute({List? children}) + : super( + TabSettingsListRoute.name, + initialChildren: children, + ); + + static const String name = 'TabSettingsListRoute'; + + static const PageInfo page = PageInfo(name); } /// generated route for -/// [UsersListDetailPage] -class UsersListDetailRoute extends PageRouteInfo { - UsersListDetailRoute({ +/// [TabSettingsPage] +class TabSettingsRoute extends PageRouteInfo { + TabSettingsRoute({ Key? key, - required Account account, - required String listId, + int? tabIndex, List? children, }) : super( - UsersListDetailRoute.name, - args: UsersListDetailRouteArgs( + TabSettingsRoute.name, + args: TabSettingsRouteArgs( key: key, - account: account, - listId: listId, + tabIndex: tabIndex, ), initialChildren: children, ); - static const String name = 'UsersListDetailRoute'; + static const String name = 'TabSettingsRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class UsersListDetailRouteArgs { - const UsersListDetailRouteArgs({ +class TabSettingsRouteArgs { + const TabSettingsRouteArgs({ this.key, - required this.account, - required this.listId, + this.tabIndex, }); final Key? key; - final Account account; - - final String listId; + final int? tabIndex; @override String toString() { - return 'UsersListDetailRouteArgs{key: $key, account: $account, listId: $listId}'; + return 'TabSettingsRouteArgs{key: $key, tabIndex: $tabIndex}'; } } /// generated route for -/// [ChannelDetailPage] -class ChannelDetailRoute extends PageRouteInfo { - ChannelDetailRoute({ +/// [HardMutePage] +class HardMuteRoute extends PageRouteInfo { + HardMuteRoute({ Key? key, required Account account, - required String channelId, List? children, }) : super( - ChannelDetailRoute.name, - args: ChannelDetailRouteArgs( + HardMuteRoute.name, + args: HardMuteRouteArgs( key: key, account: account, - channelId: channelId, ), initialChildren: children, ); - static const String name = 'ChannelDetailRoute'; + static const String name = 'HardMuteRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class ChannelDetailRouteArgs { - const ChannelDetailRouteArgs({ +class HardMuteRouteArgs { + const HardMuteRouteArgs({ this.key, required this.account, - required this.channelId, }); final Key? key; final Account account; - final String channelId; - @override String toString() { - return 'ChannelDetailRouteArgs{key: $key, account: $account, channelId: $channelId}'; + return 'HardMuteRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [ChannelsPage] -class ChannelsRoute extends PageRouteInfo { - ChannelsRoute({ +/// [InstanceMutePage] +class InstanceMuteRoute extends PageRouteInfo { + InstanceMuteRoute({ Key? key, required Account account, List? children, }) : super( - ChannelsRoute.name, - args: ChannelsRouteArgs( + InstanceMuteRoute.name, + args: InstanceMuteRouteArgs( key: key, account: account, ), initialChildren: children, ); - static const String name = 'ChannelsRoute'; + static const String name = 'InstanceMuteRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class ChannelsRouteArgs { - const ChannelsRouteArgs({ +class InstanceMuteRouteArgs { + const InstanceMuteRouteArgs({ this.key, required this.account, }); @@ -1406,135 +1393,123 @@ class ChannelsRouteArgs { @override String toString() { - return 'ChannelsRouteArgs{key: $key, account: $account}'; + return 'InstanceMuteRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [FederationPage] -class FederationRoute extends PageRouteInfo { - FederationRoute({ +/// [ReactionDeckPage] +class ReactionDeckRoute extends PageRouteInfo { + ReactionDeckRoute({ Key? key, required Account account, - required String host, List? children, }) : super( - FederationRoute.name, - args: FederationRouteArgs( + ReactionDeckRoute.name, + args: ReactionDeckRouteArgs( key: key, account: account, - host: host, ), initialChildren: children, ); - static const String name = 'FederationRoute'; + static const String name = 'ReactionDeckRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class FederationRouteArgs { - const FederationRouteArgs({ +class ReactionDeckRouteArgs { + const ReactionDeckRouteArgs({ this.key, required this.account, - required this.host, }); final Key? key; final Account account; - final String host; - @override String toString() { - return 'FederationRouteArgs{key: $key, account: $account, host: $host}'; + return 'ReactionDeckRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [NoteDetailPage] -class NoteDetailRoute extends PageRouteInfo { - NoteDetailRoute({ +/// [SeveralAccountGeneralSettingsPage] +class SeveralAccountGeneralSettingsRoute + extends PageRouteInfo { + SeveralAccountGeneralSettingsRoute({ Key? key, - required Note note, required Account account, List? children, }) : super( - NoteDetailRoute.name, - args: NoteDetailRouteArgs( + SeveralAccountGeneralSettingsRoute.name, + args: SeveralAccountGeneralSettingsRouteArgs( key: key, - note: note, account: account, ), initialChildren: children, ); - static const String name = 'NoteDetailRoute'; + static const String name = 'SeveralAccountGeneralSettingsRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class NoteDetailRouteArgs { - const NoteDetailRouteArgs({ +class SeveralAccountGeneralSettingsRouteArgs { + const SeveralAccountGeneralSettingsRouteArgs({ this.key, - required this.note, required this.account, }); final Key? key; - final Note note; - final Account account; @override String toString() { - return 'NoteDetailRouteArgs{key: $key, note: $note, account: $account}'; + return 'SeveralAccountGeneralSettingsRouteArgs{key: $key, account: $account}'; } } /// generated route for -/// [SearchPage] -class SearchRoute extends PageRouteInfo { - SearchRoute({ +/// [SeveralAccountSettingsPage] +class SeveralAccountSettingsRoute + extends PageRouteInfo { + SeveralAccountSettingsRoute({ Key? key, - String? initialSearchText, required Account account, List? children, }) : super( - SearchRoute.name, - args: SearchRouteArgs( + SeveralAccountSettingsRoute.name, + args: SeveralAccountSettingsRouteArgs( key: key, - initialSearchText: initialSearchText, account: account, ), initialChildren: children, ); - static const String name = 'SearchRoute'; + static const String name = 'SeveralAccountSettingsRoute'; - static const PageInfo page = PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class SearchRouteArgs { - const SearchRouteArgs({ +class SeveralAccountSettingsRouteArgs { + const SeveralAccountSettingsRouteArgs({ this.key, - this.initialSearchText, required this.account, }); final Key? key; - final String? initialSearchText; - final Account account; @override String toString() { - return 'SearchRouteArgs{key: $key, initialSearchText: $initialSearchText, account: $account}'; + return 'SeveralAccountSettingsRouteArgs{key: $key, account: $account}'; } } @@ -1583,280 +1558,305 @@ class SharingAccountSelectRouteArgs { } /// generated route for -/// [ImportExportPage] -class ImportExportRoute extends PageRouteInfo { - const ImportExportRoute({List? children}) - : super( - ImportExportRoute.name, - initialChildren: children, - ); - - static const String name = 'ImportExportRoute'; - - static const PageInfo page = PageInfo(name); -} - -/// generated route for -/// [GeneralSettingsPage] -class GeneralSettingsRoute extends PageRouteInfo { - const GeneralSettingsRoute({List? children}) +/// [SplashPage] +class SplashRoute extends PageRouteInfo { + const SplashRoute({List? children}) : super( - GeneralSettingsRoute.name, + SplashRoute.name, initialChildren: children, ); - static const String name = 'GeneralSettingsRoute'; + static const String name = 'SplashRoute'; static const PageInfo page = PageInfo(name); } /// generated route for -/// [TabSettingsPage] -class TabSettingsRoute extends PageRouteInfo { - TabSettingsRoute({ +/// [UsersListDetailPage] +class UsersListDetailRoute extends PageRouteInfo { + UsersListDetailRoute({ Key? key, - int? tabIndex, + required Account account, + required String listId, List? children, }) : super( - TabSettingsRoute.name, - args: TabSettingsRouteArgs( + UsersListDetailRoute.name, + args: UsersListDetailRouteArgs( key: key, - tabIndex: tabIndex, + account: account, + listId: listId, ), initialChildren: children, ); - static const String name = 'TabSettingsRoute'; + static const String name = 'UsersListDetailRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class TabSettingsRouteArgs { - const TabSettingsRouteArgs({ +class UsersListDetailRouteArgs { + const UsersListDetailRouteArgs({ this.key, - this.tabIndex, + required this.account, + required this.listId, }); final Key? key; - final int? tabIndex; + final Account account; + + final String listId; @override String toString() { - return 'TabSettingsRouteArgs{key: $key, tabIndex: $tabIndex}'; + return 'UsersListDetailRouteArgs{key: $key, account: $account, listId: $listId}'; } } /// generated route for -/// [TabSettingsListPage] -class TabSettingsListRoute extends PageRouteInfo { - const TabSettingsListRoute({List? children}) - : super( - TabSettingsListRoute.name, +/// [UsersListPage] +class UsersListRoute extends PageRouteInfo { + UsersListRoute({ + required Account account, + Key? key, + List? children, + }) : super( + UsersListRoute.name, + args: UsersListRouteArgs( + account: account, + key: key, + ), initialChildren: children, ); - static const String name = 'TabSettingsListRoute'; + static const String name = 'UsersListRoute'; - static const PageInfo page = PageInfo(name); + static const PageInfo page = + PageInfo(name); } -/// generated route for -/// [AppInfoPage] -class AppInfoRoute extends PageRouteInfo { - const AppInfoRoute({List? children}) - : super( - AppInfoRoute.name, - initialChildren: children, - ); +class UsersListRouteArgs { + const UsersListRouteArgs({ + required this.account, + this.key, + }); - static const String name = 'AppInfoRoute'; + final Account account; - static const PageInfo page = PageInfo(name); + final Key? key; + + @override + String toString() { + return 'UsersListRouteArgs{account: $account, key: $key}'; + } } /// generated route for -/// [SettingsPage] -class SettingsRoute extends PageRouteInfo { - const SettingsRoute({List? children}) - : super( - SettingsRoute.name, +/// [UsersListTimelinePage] +class UsersListTimelineRoute extends PageRouteInfo { + UsersListTimelineRoute({ + required Account account, + required UsersList list, + Key? key, + List? children, + }) : super( + UsersListTimelineRoute.name, + args: UsersListTimelineRouteArgs( + account: account, + list: list, + key: key, + ), initialChildren: children, ); - static const String name = 'SettingsRoute'; + static const String name = 'UsersListTimelineRoute'; - static const PageInfo page = PageInfo(name); + static const PageInfo page = + PageInfo(name); } -/// generated route for -/// [AccountListPage] -class AccountListRoute extends PageRouteInfo { - const AccountListRoute({List? children}) - : super( - AccountListRoute.name, - initialChildren: children, - ); +class UsersListTimelineRouteArgs { + const UsersListTimelineRouteArgs({ + required this.account, + required this.list, + this.key, + }); - static const String name = 'AccountListRoute'; + final Account account; - static const PageInfo page = PageInfo(name); + final UsersList list; + + final Key? key; + + @override + String toString() { + return 'UsersListTimelineRouteArgs{account: $account, list: $list, key: $key}'; + } } /// generated route for -/// [ExploreRoleUsersPage] -class ExploreRoleUsersRoute extends PageRouteInfo { - ExploreRoleUsersRoute({ +/// [UserFolloweePage] +class UserFolloweeRoute extends PageRouteInfo { + UserFolloweeRoute({ Key? key, - required RolesListResponse item, + required String userId, required Account account, List? children, }) : super( - ExploreRoleUsersRoute.name, - args: ExploreRoleUsersRouteArgs( + UserFolloweeRoute.name, + args: UserFolloweeRouteArgs( key: key, - item: item, + userId: userId, account: account, ), initialChildren: children, ); - static const String name = 'ExploreRoleUsersRoute'; + static const String name = 'UserFolloweeRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class ExploreRoleUsersRouteArgs { - const ExploreRoleUsersRouteArgs({ +class UserFolloweeRouteArgs { + const UserFolloweeRouteArgs({ this.key, - required this.item, + required this.userId, required this.account, }); final Key? key; - final RolesListResponse item; + final String userId; final Account account; @override String toString() { - return 'ExploreRoleUsersRouteArgs{key: $key, item: $item, account: $account}'; + return 'UserFolloweeRouteArgs{key: $key, userId: $userId, account: $account}'; } } /// generated route for -/// [ExplorePage] -class ExploreRoute extends PageRouteInfo { - ExploreRoute({ +/// [UserFollowerPage] +class UserFollowerRoute extends PageRouteInfo { + UserFollowerRoute({ Key? key, + required String userId, required Account account, List? children, }) : super( - ExploreRoute.name, - args: ExploreRouteArgs( + UserFollowerRoute.name, + args: UserFollowerRouteArgs( key: key, + userId: userId, account: account, ), initialChildren: children, ); - static const String name = 'ExploreRoute'; + static const String name = 'UserFollowerRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class ExploreRouteArgs { - const ExploreRouteArgs({ +class UserFollowerRouteArgs { + const UserFollowerRouteArgs({ this.key, + required this.userId, required this.account, }); final Key? key; + final String userId; + final Account account; @override String toString() { - return 'ExploreRouteArgs{key: $key, account: $account}'; + return 'UserFollowerRouteArgs{key: $key, userId: $userId, account: $account}'; } } /// generated route for -/// [TimeLinePage] -class TimeLineRoute extends PageRouteInfo { - TimeLineRoute({ +/// [UserPage] +class UserRoute extends PageRouteInfo { + UserRoute({ Key? key, - required TabSetting initialTabSetting, + required String userId, + required Account account, List? children, }) : super( - TimeLineRoute.name, - args: TimeLineRouteArgs( + UserRoute.name, + args: UserRouteArgs( key: key, - initialTabSetting: initialTabSetting, + userId: userId, + account: account, ), initialChildren: children, ); - static const String name = 'TimeLineRoute'; + static const String name = 'UserRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = PageInfo(name); } -class TimeLineRouteArgs { - const TimeLineRouteArgs({ +class UserRouteArgs { + const UserRouteArgs({ this.key, - required this.initialTabSetting, + required this.userId, + required this.account, }); final Key? key; - final TabSetting initialTabSetting; + final String userId; + + final Account account; @override String toString() { - return 'TimeLineRouteArgs{key: $key, initialTabSetting: $initialTabSetting}'; + return 'UserRouteArgs{key: $key, userId: $userId, account: $account}'; } } /// generated route for -/// [FavoritedNotePage] -class FavoritedNoteRoute extends PageRouteInfo { - FavoritedNoteRoute({ +/// [TimeLinePage] +class TimeLineRoute extends PageRouteInfo { + TimeLineRoute({ Key? key, - required Account account, + required TabSetting initialTabSetting, List? children, }) : super( - FavoritedNoteRoute.name, - args: FavoritedNoteRouteArgs( + TimeLineRoute.name, + args: TimeLineRouteArgs( key: key, - account: account, + initialTabSetting: initialTabSetting, ), initialChildren: children, ); - static const String name = 'FavoritedNoteRoute'; + static const String name = 'TimeLineRoute'; - static const PageInfo page = - PageInfo(name); + static const PageInfo page = + PageInfo(name); } -class FavoritedNoteRouteArgs { - const FavoritedNoteRouteArgs({ +class TimeLineRouteArgs { + const TimeLineRouteArgs({ this.key, - required this.account, + required this.initialTabSetting, }); final Key? key; - final Account account; + final TabSetting initialTabSetting; @override String toString() { - return 'FavoritedNoteRouteArgs{key: $key, account: $account}'; + return 'TimeLineRouteArgs{key: $key, initialTabSetting: $initialTabSetting}'; } } diff --git a/lib/view/search_page/note_search.dart b/lib/view/search_page/note_search.dart index eef7cfa2c..dcc62dad7 100644 --- a/lib/view/search_page/note_search.dart +++ b/lib/view/search_page/note_search.dart @@ -1,23 +1,26 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:mfm_parser/mfm_parser.dart'; +import 'package:miria/model/note_search_condition.dart'; import 'package:miria/providers.dart'; import 'package:miria/view/common/account_scope.dart'; import 'package:miria/view/common/misskey_notes/misskey_note.dart'; import 'package:miria/view/common/pushable_listview.dart'; -import 'package:miria/view/search_page/search_page.dart'; import 'package:miria/view/settings_page/tab_settings_page/channel_select_dialog.dart'; import 'package:miria/view/user_page/user_list_item.dart'; import 'package:miria/view/user_select_dialog.dart'; import 'package:misskey_dart/misskey_dart.dart'; +final noteSearchProvider = + StateProvider.autoDispose((ref) => const NoteSearchCondition()); + class NoteSearch extends ConsumerStatefulWidget { - final String? initialSearchText; + final NoteSearchCondition? initialCondition; final FocusNode? focusNode; const NoteSearch({ super.key, - required this.initialSearchText, + required this.initialCondition, this.focusNode, }); @@ -27,13 +30,14 @@ class NoteSearch extends ConsumerStatefulWidget { class NoteSearchState extends ConsumerState { var isDetail = false; - late final controller = - TextEditingController(text: widget.initialSearchText ?? ""); + late final controller = TextEditingController( + text: widget.initialCondition?.query, + ); @override void didChangeDependencies() { super.didChangeDependencies(); - final initial = widget.initialSearchText; + final initial = widget.initialCondition; if (initial != null) { Future(() { ref.read(noteSearchProvider.notifier).state = initial; @@ -49,8 +53,10 @@ class NoteSearchState extends ConsumerState { @override Widget build(BuildContext context) { - final selectedUser = ref.watch(noteSearchUserProvider); - final selectedChannel = ref.watch(noteSearchChannelProvider); + final condition = ref.watch(noteSearchProvider); + final selectedUser = condition.user; + final selectedChannel = condition.channel; + return Column( children: [ Padding( @@ -63,11 +69,12 @@ class NoteSearchState extends ConsumerState { decoration: const InputDecoration( prefixIcon: Icon(Icons.search), ), - focusNode: widget.focusNode, + focusNode: widget.focusNode, autofocus: true, textInputAction: TextInputAction.done, onSubmitted: (value) { - ref.read(noteSearchProvider.notifier).state = value; + ref.read(noteSearchProvider.notifier).state = + condition.copyWith(query: value); }, ), ), @@ -132,8 +139,10 @@ class NoteSearchState extends ConsumerState { ); ref - .read(noteSearchUserProvider.notifier) - .state = selected; + .read(noteSearchProvider.notifier) + .state = condition.copyWith( + user: selected, + ); }, icon: const Icon(Icons.keyboard_arrow_right), @@ -168,10 +177,10 @@ class NoteSearchState extends ConsumerState { ), ); ref - .read( - noteSearchChannelProvider.notifier, - ) - .state = selected; + .read(noteSearchProvider.notifier) + .state = condition.copyWith( + channel: selected, + ); }, icon: const Icon(Icons.keyboard_arrow_right), @@ -186,15 +195,14 @@ class NoteSearchState extends ConsumerState { Row( children: [ Checkbox( - value: - ref.watch(noteSearchLocalOnlyProvider), + value: condition.localOnly, onChanged: (value) => ref - .read( - noteSearchLocalOnlyProvider - .notifier, - ) - .state = - !ref.read(noteSearchLocalOnlyProvider), + .read( + noteSearchProvider.notifier, + ) + .state = condition.copyWith( + localOnly: !condition.localOnly, + ), ), ], ), @@ -224,26 +232,18 @@ class NoteSearchList extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final searchValue = ref.watch(noteSearchProvider); - final channel = ref.watch(noteSearchChannelProvider); - final user = ref.watch(noteSearchUserProvider); - final localOnly = ref.watch(noteSearchLocalOnlyProvider); + final condition = ref.watch(noteSearchProvider); final account = AccountScope.of(context); - final parsedSearchValue = const MfmParser().parse(searchValue); + final parsedSearchValue = const MfmParser().parse(condition.query); final isHashtagOnly = parsedSearchValue.length == 1 && parsedSearchValue[0] is MfmHashTag; - if (searchValue.isEmpty && channel == null && user == null) { + if (condition.isEmpty) { return Container(); } return PushableListView( - listKey: Object.hashAll([ - searchValue, - user?.id, - channel?.id, - localOnly, - ]), + listKey: condition.hashCode, initializeFuture: () async { final Iterable notes; if (isHashtagOnly) { @@ -255,10 +255,10 @@ class NoteSearchList extends ConsumerWidget { } else { notes = await ref.read(misskeyProvider(account)).notes.search( NotesSearchRequest( - query: searchValue, - userId: user?.id, - channelId: channel?.id, - host: localOnly ? "." : null, + query: condition.query, + userId: condition.user?.id, + channelId: condition.channel?.id, + host: condition.localOnly ? "." : null, ), ); } @@ -278,11 +278,11 @@ class NoteSearchList extends ConsumerWidget { } else { notes = await ref.read(misskeyProvider(account)).notes.search( NotesSearchRequest( - query: searchValue, - userId: user?.id, - channelId: channel?.id, + query: condition.query, + userId: condition.user?.id, + channelId: condition.channel?.id, + host: condition.localOnly ? "." : null, untilId: lastItem.id, - host: localOnly ? "." : null, ), ); } diff --git a/lib/view/search_page/search_page.dart b/lib/view/search_page/search_page.dart index 652deaf3e..5c168e586 100644 --- a/lib/view/search_page/search_page.dart +++ b/lib/view/search_page/search_page.dart @@ -1,36 +1,29 @@ import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:miria/model/account.dart'; +import 'package:miria/model/note_search_condition.dart'; import 'package:miria/router/app_router.dart'; import 'package:miria/view/common/account_scope.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:miria/view/search_page/note_search.dart'; import 'package:miria/view/user_select_dialog.dart'; -import 'package:misskey_dart/misskey_dart.dart'; - -final noteSearchProvider = StateProvider.autoDispose((ref) => ""); -final noteSearchUserProvider = StateProvider.autoDispose((ref) => null); -final noteSearchChannelProvider = - StateProvider.autoDispose((ref) => null); - -final noteSearchLocalOnlyProvider = StateProvider.autoDispose((ref) => false); @RoutePage() class SearchPage extends ConsumerStatefulWidget { - final String? initialSearchText; + final NoteSearchCondition? initialNoteSearchCondition; final Account account; const SearchPage({ super.key, - this.initialSearchText, + this.initialNoteSearchCondition, required this.account, }); @override - ConsumerState createState() => NoteSearchPageState(); + ConsumerState createState() => SearchPageState(); } -class NoteSearchPageState extends ConsumerState { +class SearchPageState extends ConsumerState { late final List focusNodes; int tabIndex = 0; @@ -79,7 +72,7 @@ class NoteSearchPageState extends ConsumerState { controller: tabController, children: [ NoteSearch( - initialSearchText: widget.initialSearchText, + initialCondition: widget.initialNoteSearchCondition, focusNode: focusNodes[0], ), Padding( diff --git a/test/view/search_page/search_page_test.dart b/test/view/search_page/search_page_test.dart index 4ed6fd98f..d3ca2b3d4 100644 --- a/test/view/search_page/search_page_test.dart +++ b/test/view/search_page/search_page_test.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:miria/model/note_search_condition.dart'; import 'package:miria/providers.dart'; import 'package:miria/router/app_router.dart'; import 'package:misskey_dart/misskey_dart.dart'; @@ -297,7 +298,10 @@ void main() { overrides: [misskeyProvider.overrideWith((ref, arg) => mockMisskey)], child: DefaultRootWidget( initialRoute: SearchRoute( - account: TestData.account, initialSearchText: "Misskey"), + account: TestData.account, + initialNoteSearchCondition: + const NoteSearchCondition(query: "Misskey"), + ), ), )); await tester.pumpAndSettle();