mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-21 19:28:27 +08:00
tweaks (#1780)
* opt: sized * fix: self send * feat: ctrl enter to send * opt: checked * opt: download notifier * opt: Future.syncValue * mod: account * mod: loading state * opt: DebounceStreamMixin * opt: report * opt: enum map * opt: file handler * opt: dyn color * opt: Uint8List subview * opt: FileExt * opt: computeLuminance * opt: isNullOrEmpty * opt: Get context * update [skip ci] Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * opt dynamicColor [skip ci] Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * fixes [skip ci] * update Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * update Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> --------- Signed-off-by: My-Responsitories <107370289+My-Responsitories@users.noreply.github.com> Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
committed by
GitHub
parent
02e0d34127
commit
ce5e85e64b
@@ -1,6 +1,5 @@
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/pages/common/common_controller.dart';
|
||||
import 'package:PiliPlus/utils/extension/iterable_ext.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
abstract class CommonListController<R, T> extends CommonController<R, T> {
|
||||
@@ -27,8 +26,8 @@ abstract class CommonListController<R, T> extends CommonController<R, T> {
|
||||
LoadingState<R> response = await customGetData();
|
||||
if (response is Success<R>) {
|
||||
if (!customHandleResponse(isRefresh, response)) {
|
||||
List<T>? dataList = getDataList(response.response);
|
||||
if (dataList.isNullOrEmpty) {
|
||||
final dataList = getDataList(response.response);
|
||||
if (dataList == null || dataList.isEmpty) {
|
||||
isEnd = true;
|
||||
if (isRefresh) {
|
||||
loadingState.value = Success(dataList);
|
||||
@@ -38,7 +37,7 @@ abstract class CommonListController<R, T> extends CommonController<R, T> {
|
||||
isLoading = false;
|
||||
return;
|
||||
}
|
||||
handleListResponse(dataList!);
|
||||
handleListResponse(dataList);
|
||||
if (isRefresh) {
|
||||
checkIsEnd(dataList.length);
|
||||
loadingState.value = Success(dataList);
|
||||
|
||||
@@ -3,10 +3,10 @@ import 'package:PiliPlus/pages/common/common_list_controller.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
mixin MultiSelectData {
|
||||
bool? checked;
|
||||
bool checked = false;
|
||||
}
|
||||
|
||||
mixin MultiSelectBase<T extends MultiSelectData> {
|
||||
abstract interface class MultiSelectBase<T extends MultiSelectData> {
|
||||
RxBool get enableMultiSelect;
|
||||
|
||||
int get checkedCount;
|
||||
@@ -28,7 +28,7 @@ mixin BaseMultiSelectMixin<T extends MultiSelectData>
|
||||
RxObjectMixin get state;
|
||||
List<T> get list;
|
||||
|
||||
Iterable<T> get allChecked => list.where((v) => v.checked == true);
|
||||
Iterable<T> get allChecked => list.where((v) => v.checked);
|
||||
|
||||
@override
|
||||
void handleSelect({bool checked = false, bool disableSelect = true}) {
|
||||
@@ -44,8 +44,8 @@ mixin BaseMultiSelectMixin<T extends MultiSelectData>
|
||||
|
||||
@override
|
||||
void onSelect(T item) {
|
||||
item.checked = !(item.checked ?? false);
|
||||
if (item.checked!) {
|
||||
item.checked = !item.checked;
|
||||
if (item.checked) {
|
||||
rxCount.value++;
|
||||
} else {
|
||||
rxCount.value--;
|
||||
@@ -70,13 +70,13 @@ mixin CommonMultiSelectMixin<T extends MultiSelectData>
|
||||
int get checkedCount => rxCount.value;
|
||||
|
||||
Iterable<T> get allChecked =>
|
||||
loadingState.value.data!.where((v) => v.checked == true);
|
||||
loadingState.value.data!.where((v) => v.checked);
|
||||
|
||||
@override
|
||||
void onSelect(T item) {
|
||||
List<T> list = loadingState.value.data!;
|
||||
item.checked = !(item.checked ?? false);
|
||||
if (item.checked!) {
|
||||
item.checked = !item.checked;
|
||||
if (item.checked) {
|
||||
rxCount.value++;
|
||||
} else {
|
||||
rxCount.value--;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import 'package:PiliPlus/pages/common/common_list_controller.dart';
|
||||
import 'package:PiliPlus/pages/common/multi_select/base.dart';
|
||||
|
||||
abstract class MultiSelectController<R, T extends MultiSelectData>
|
||||
extends CommonListController<R, T>
|
||||
with CommonMultiSelectMixin<T>, DeleteItemMixin {}
|
||||
abstract class MultiSelectController<
|
||||
R,
|
||||
T extends MultiSelectData
|
||||
> = CommonListController<R, T>
|
||||
with CommonMultiSelectMixin<T>, DeleteItemMixin;
|
||||
|
||||
@@ -200,6 +200,12 @@ abstract class CommonPublishPageState<T extends CommonPublishPage>
|
||||
);
|
||||
}
|
||||
|
||||
void onSubmitted(String value) {
|
||||
if (enablePublish.value) {
|
||||
onPublish();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> onPublish();
|
||||
|
||||
Future<void> onCustomPublish({List? pictures});
|
||||
|
||||
@@ -280,7 +280,7 @@ abstract class CommonRichTextPubPageState<T extends CommonRichTextPubPage>
|
||||
_onInsertUser(res, fromClick);
|
||||
} else if (res is Set<MentionItem>) {
|
||||
for (var e in res) {
|
||||
e.checked = null;
|
||||
e.checked = false;
|
||||
_onInsertUser(e, fromClick);
|
||||
}
|
||||
res.clear();
|
||||
|
||||
@@ -17,7 +17,7 @@ abstract class CommonSearchController<R, T> extends CommonListController<R, T> {
|
||||
@override
|
||||
Future<void> onRefresh() {
|
||||
if (editController.value.text.isEmpty) {
|
||||
return Future.value();
|
||||
return Future.syncValue(null);
|
||||
}
|
||||
return super.onRefresh();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user