Merge branch 'design'

This commit is contained in:
guozhigq
2024-10-19 15:46:22 +08:00
46 changed files with 782 additions and 783 deletions

View File

@ -7,6 +7,7 @@ class HttpError extends StatelessWidget {
required this.fn,
this.btnText,
this.isShowBtn = true,
this.isInSliver = true,
super.key,
});
@ -14,46 +15,42 @@ class HttpError extends StatelessWidget {
final Function()? fn;
final String? btnText;
final bool isShowBtn;
final bool isInSliver;
@override
Widget build(BuildContext context) {
return SliverToBoxAdapter(
child: SizedBox(
height: 400,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/images/error.svg",
height: 200,
),
const SizedBox(height: 30),
Text(
errMsg ?? '请求异常',
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.titleSmall,
),
const SizedBox(height: 20),
if (isShowBtn)
FilledButton.tonal(
onPressed: () {
fn!();
},
style: ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith((states) {
return Theme.of(context).colorScheme.primary.withAlpha(20);
}),
),
child: Text(
btnText ?? '点击重试',
style:
TextStyle(color: Theme.of(context).colorScheme.primary),
),
Color primary = Theme.of(context).colorScheme.primary;
final errorContent = SizedBox(
height: 400,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset("assets/images/error.svg", height: 200),
const SizedBox(height: 30),
Text(
errMsg ?? '请求异常',
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.titleSmall,
),
const SizedBox(height: 20),
if (isShowBtn)
FilledButton.tonal(
onPressed: () => fn?.call(),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith((states) {
return primary.withAlpha(20);
}),
),
],
),
child: Text(btnText ?? '点击重试', style: TextStyle(color: primary)),
),
],
),
);
if (isInSliver) {
return SliverToBoxAdapter(child: errorContent);
} else {
return Center(child: errorContent);
}
}
}

View File

@ -20,6 +20,7 @@ class NetworkImgLayer extends StatelessWidget {
// 图片质量 默认1%
this.quality,
this.origAspectRatio,
this.radius,
});
final String? src;
@ -30,6 +31,18 @@ class NetworkImgLayer extends StatelessWidget {
final Duration? fadeInDuration;
final int? quality;
final double? origAspectRatio;
final double? radius;
BorderRadius getBorderRadius(String? type, double? radius) {
return BorderRadius.circular(
radius ??
(type == 'avatar'
? 50
: type == 'emote'
? 0
: StyleString.imgRadius.x),
);
}
@override
Widget build(BuildContext context) {
@ -72,13 +85,7 @@ class NetworkImgLayer extends StatelessWidget {
return src != '' && src != null
? ClipRRect(
clipBehavior: Clip.antiAlias,
borderRadius: BorderRadius.circular(
type == 'avatar'
? 50
: type == 'emote'
? 0
: StyleString.imgRadius.x,
),
borderRadius: getBorderRadius(type, radius),
child: CachedNetworkImage(
imageUrl: imageUrl,
width: width,
@ -107,11 +114,7 @@ class NetworkImgLayer extends StatelessWidget {
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.onInverseSurface.withOpacity(0.4),
borderRadius: BorderRadius.circular(type == 'avatar'
? 50
: type == 'emote'
? 0
: StyleString.imgRadius.x),
borderRadius: getBorderRadius(type, radius),
),
child: type == 'bg'
? const SizedBox()