Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-08-16 10:52:39 +08:00
parent 2090fd2312
commit 55733d30c5
86 changed files with 1359 additions and 1740 deletions

View File

@@ -54,36 +54,32 @@ class _LiveSearchChildPageState extends State<LiveSearchChildPage>
Widget get _buildLoading {
return switch (widget.searchType) {
LiveSearchType.room => SliverGrid(
gridDelegate: SliverGridDelegateWithExtentAndRatio(
mainAxisSpacing: StyleString.cardSpace,
crossAxisSpacing: StyleString.cardSpace,
maxCrossAxisExtent: Grid.smallCardWidth,
childAspectRatio: StyleString.aspectRatio,
mainAxisExtent: MediaQuery.textScalerOf(context).scale(90),
),
delegate: SliverChildBuilderDelegate(
(context, index) {
return const VideoCardVSkeleton();
},
childCount: 10,
),
LiveSearchType.room => SliverGrid.builder(
gridDelegate: roomDelegate,
itemBuilder: (context, index) => const VideoCardVSkeleton(),
itemCount: 10,
),
LiveSearchType.user => SliverGrid(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: Grid.smallCardWidth * 2,
mainAxisExtent: 60,
),
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return const MsgFeedTopSkeleton();
},
childCount: 12,
),
LiveSearchType.user => SliverGrid.builder(
gridDelegate: userDelegate,
itemBuilder: (context, index) => const MsgFeedTopSkeleton(),
itemCount: 12,
),
};
}
late final roomDelegate = SliverGridDelegateWithExtentAndRatio(
mainAxisSpacing: StyleString.cardSpace,
crossAxisSpacing: StyleString.cardSpace,
maxCrossAxisExtent: Grid.smallCardWidth,
childAspectRatio: StyleString.aspectRatio,
mainAxisExtent: MediaQuery.textScalerOf(context).scale(60),
);
late final userDelegate = SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: Grid.smallCardWidth * 2,
mainAxisExtent: 60,
);
Widget _buildBody(LoadingState<List?> loadingState) {
return switch (loadingState) {
Loading() => _buildLoading,
@@ -92,51 +88,34 @@ class _LiveSearchChildPageState extends State<LiveSearchChildPage>
? Builder(
builder: (context) {
return switch (widget.searchType) {
LiveSearchType.room => SliverGrid(
gridDelegate: SliverGridDelegateWithExtentAndRatio(
mainAxisSpacing: StyleString.cardSpace,
crossAxisSpacing: StyleString.cardSpace,
maxCrossAxisExtent: Grid.smallCardWidth,
childAspectRatio: StyleString.aspectRatio,
mainAxisExtent: MediaQuery.textScalerOf(
context,
).scale(60),
),
delegate: SliverChildBuilderDelegate(
(context, index) {
if (index == response.length - 1) {
_controller.onLoadMore();
}
return LiveCardVSearch(
item: response[index],
);
},
childCount: response!.length,
),
LiveSearchType.room => SliverGrid.builder(
gridDelegate: roomDelegate,
itemBuilder: (context, index) {
if (index == response.length - 1) {
_controller.onLoadMore();
}
return LiveCardVSearch(
item: response[index],
);
},
itemCount: response!.length,
),
LiveSearchType.user => SliverGrid(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: Grid.smallCardWidth * 2,
mainAxisExtent: 60,
),
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
if (index == response.length - 1) {
_controller.onLoadMore();
}
return LiveSearchUserItem(
item: response[index],
);
},
childCount: response!.length,
),
LiveSearchType.user => SliverGrid.builder(
gridDelegate: userDelegate,
itemBuilder: (context, index) {
if (index == response.length - 1) {
_controller.onLoadMore();
}
return LiveSearchUserItem(
item: response[index],
);
},
itemCount: response!.length,
),
};
},
)
: HttpError(
onReload: _controller.onReload,
),
: HttpError(onReload: _controller.onReload),
Error(:var errMsg) => HttpError(
errMsg: errMsg,
onReload: _controller.onReload,