fix: context

This commit is contained in:
Simon Ding
2024-09-27 15:03:00 +08:00
parent ecfe31ea45
commit 4e457e99b9

View File

@@ -38,7 +38,7 @@ class _DetailCardState extends ConsumerState<DetailCard> {
margin: const EdgeInsets.all(4), margin: const EdgeInsets.all(4),
clipBehavior: Clip.hardEdge, clipBehavior: Clip.hardEdge,
child: Container( child: Container(
constraints: BoxConstraints(maxHeight: 400), constraints: const BoxConstraints(maxHeight: 400),
decoration: BoxDecoration( decoration: BoxDecoration(
image: DecorationImage( image: DecorationImage(
fit: BoxFit.cover, fit: BoxFit.cover,
@@ -52,7 +52,7 @@ class _DetailCardState extends ConsumerState<DetailCard> {
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
screenWidth < 600 screenWidth < 600
? SizedBox() ? const SizedBox()
: Flexible( : Flexible(
flex: 2, flex: 2,
child: Padding( child: Padding(
@@ -72,14 +72,14 @@ class _DetailCardState extends ConsumerState<DetailCard> {
children: [ children: [
//const Text(""), //const Text(""),
Text( Text(
"${widget.details.name} ${widget.details.name != widget.details.originalName ? widget.details.originalName : ''} ${widget.details.airDate == null? "": (widget.details.airDate!.split("-")[0])}", "${widget.details.name} ${widget.details.name != widget.details.originalName ? widget.details.originalName : ''} ${widget.details.airDate == null ? "" : (widget.details.airDate!.split("-")[0])}",
style: const TextStyle( style: const TextStyle(
fontSize: 24, fontSize: 24,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
height: 2.5), height: 2.5),
), ),
const Divider(thickness: 1, height: 1), const Divider(thickness: 1, height: 1),
Text( const Text(
"", "",
style: TextStyle(height: 0.2), style: TextStyle(height: 0.2),
), ),
@@ -93,14 +93,14 @@ class _DetailCardState extends ConsumerState<DetailCard> {
label: Text( label: Text(
"${widget.details.storage!.name}: ${widget.details.mediaType == "tv" ? widget.details.storage!.tvPath : widget.details.storage!.moviePath}" "${widget.details.storage!.name}: ${widget.details.mediaType == "tv" ? widget.details.storage!.tvPath : widget.details.storage!.moviePath}"
"${widget.details.targetDir}"), "${widget.details.targetDir}"),
padding: EdgeInsets.all(0), padding: const EdgeInsets.all(0),
), ),
Chip( Chip(
clipBehavior: Clip.hardEdge, clipBehavior: Clip.hardEdge,
shape: ContinuousRectangleBorder( shape: ContinuousRectangleBorder(
borderRadius: BorderRadius.circular(100.0)), borderRadius: BorderRadius.circular(100.0)),
label: Text("${widget.details.resolution}"), label: Text("${widget.details.resolution}"),
padding: EdgeInsets.all(0), padding: const EdgeInsets.all(0),
), ),
widget.details.limiter != null && widget.details.limiter != null &&
widget.details.limiter!.sizeMax > 0 widget.details.limiter!.sizeMax > 0
@@ -109,13 +109,13 @@ class _DetailCardState extends ConsumerState<DetailCard> {
shape: ContinuousRectangleBorder( shape: ContinuousRectangleBorder(
borderRadius: borderRadius:
BorderRadius.circular(100.0)), BorderRadius.circular(100.0)),
padding: EdgeInsets.all(0), padding: const EdgeInsets.all(0),
label: Text( label: Text(
"${(widget.details.limiter!.sizeMin).readableFileSize()} - ${(widget.details.limiter!.sizeMax).readableFileSize()}")) "${(widget.details.limiter!.sizeMin).readableFileSize()} - ${(widget.details.limiter!.sizeMax).readableFileSize()}"))
: const SizedBox(), : const SizedBox(),
MenuAnchor( MenuAnchor(
style: style: const MenuStyle(
MenuStyle(alignment: Alignment.bottomRight), alignment: Alignment.bottomRight),
menuChildren: [ menuChildren: [
ActionChip.elevated( ActionChip.elevated(
onPressed: () => launchUrl(url), onPressed: () => launchUrl(url),
@@ -124,10 +124,10 @@ class _DetailCardState extends ConsumerState<DetailCard> {
shape: ContinuousRectangleBorder( shape: ContinuousRectangleBorder(
borderRadius: borderRadius:
BorderRadius.circular(100.0)), BorderRadius.circular(100.0)),
padding: EdgeInsets.all(0), padding: const EdgeInsets.all(0),
label: Text("TMDB")), label: const Text("TMDB")),
isBlank(widget.details.imdbid) isBlank(widget.details.imdbid)
? SizedBox() ? const SizedBox()
: ActionChip.elevated( : ActionChip.elevated(
onPressed: () => launchUrl(imdbUrl), onPressed: () => launchUrl(imdbUrl),
backgroundColor: Colors.indigo[700], backgroundColor: Colors.indigo[700],
@@ -135,8 +135,8 @@ class _DetailCardState extends ConsumerState<DetailCard> {
shape: ContinuousRectangleBorder( shape: ContinuousRectangleBorder(
borderRadius: borderRadius:
BorderRadius.circular(100.0)), BorderRadius.circular(100.0)),
padding: EdgeInsets.all(0), padding: const EdgeInsets.all(0),
label: Text("IMDB"), label: const Text("IMDB"),
) )
], ],
builder: (context, controller, child) { builder: (context, controller, child) {
@@ -152,8 +152,8 @@ class _DetailCardState extends ConsumerState<DetailCard> {
shape: ContinuousRectangleBorder( shape: ContinuousRectangleBorder(
borderRadius: borderRadius:
BorderRadius.circular(100.0)), BorderRadius.circular(100.0)),
padding: EdgeInsets.all(0), padding: const EdgeInsets.all(0),
label: Text("外部链接")); label: const Text("外部链接"));
}, },
), ),
], ],
@@ -170,7 +170,7 @@ class _DetailCardState extends ConsumerState<DetailCard> {
children: [ children: [
downloadButton(), downloadButton(),
editIcon(), editIcon(),
deleteIcon(), deleteIcon(context),
], ],
) )
], ],
@@ -185,14 +185,14 @@ class _DetailCardState extends ConsumerState<DetailCard> {
); );
} }
Widget deleteIcon() { Widget deleteIcon(BuildContext oriContext) {
return IconButton( return IconButton(
tooltip: widget.details.mediaType == "tv" ? "删除剧集" : "删除电影", tooltip: widget.details.mediaType == "tv" ? "删除剧集" : "删除电影",
onPressed: () => showConfirmDialog(), onPressed: () => showConfirmDialog(oriContext),
icon: const Icon(Icons.delete)); icon: const Icon(Icons.delete));
} }
Future<void> showConfirmDialog() { Future<void> showConfirmDialog(BuildContext oriContext) {
return showDialog<void>( return showDialog<void>(
context: context, context: context,
barrierDismissible: true, barrierDismissible: true,
@@ -210,9 +210,13 @@ class _DetailCardState extends ConsumerState<DetailCard> {
.read(mediaDetailsProvider(widget.details.id.toString()) .read(mediaDetailsProvider(widget.details.id.toString())
.notifier) .notifier)
.delete() .delete()
.then((v) => context.go(widget.details.mediaType == "tv" .then((v) {
if (oriContext.mounted) {
oriContext.go(widget.details.mediaType == "tv"
? WelcomePage.routeTv ? WelcomePage.routeTv
: WelcomePage.routeMoivie)); : WelcomePage.routeMoivie);
}
});
Navigator.of(context).pop(); Navigator.of(context).pop();
}, },
child: const Text("确认")) child: const Text("确认"))
@@ -292,7 +296,11 @@ class _DetailCardState extends ConsumerState<DetailCard> {
.notifier) .notifier)
.edit(values["resolution"], values["target_dir"], .edit(values["resolution"], values["target_dir"],
values["limiter"]) values["limiter"])
.then((v) => Navigator.of(context).pop()); .then((v) {
if (context.mounted) {
Navigator.of(context).pop();
}
});
} }
}, },
label: const Text("确认")) label: const Text("确认"))