2022-08-18 10:52:57 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2023-10-19 06:06:28 +00:00
|
|
|
import "package:photos/theme/ente_theme.dart";
|
2023-10-26 14:30:49 +00:00
|
|
|
import "package:photos/ui/viewer/search/search_widget_new.dart";
|
2022-08-18 10:52:57 +00:00
|
|
|
|
2022-08-19 04:50:07 +00:00
|
|
|
class SearchSuffixIcon extends StatefulWidget {
|
2022-08-23 11:46:05 +00:00
|
|
|
final bool shouldShowSpinner;
|
2022-12-30 12:10:17 +00:00
|
|
|
const SearchSuffixIcon(this.shouldShowSpinner, {Key? key}) : super(key: key);
|
2022-08-18 10:52:57 +00:00
|
|
|
|
2022-08-19 04:50:07 +00:00
|
|
|
@override
|
|
|
|
State<SearchSuffixIcon> createState() => _SearchSuffixIconState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _SearchSuffixIconState extends State<SearchSuffixIcon>
|
|
|
|
with TickerProviderStateMixin {
|
2022-08-18 10:52:57 +00:00
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
2023-10-19 06:06:28 +00:00
|
|
|
final colorScheme = getEnteColorScheme(context);
|
2022-08-23 05:23:12 +00:00
|
|
|
return AnimatedSwitcher(
|
|
|
|
duration: const Duration(milliseconds: 175),
|
2022-08-23 11:46:05 +00:00
|
|
|
child: widget.shouldShowSpinner
|
2022-08-23 05:23:12 +00:00
|
|
|
? Padding(
|
|
|
|
padding: const EdgeInsets.all(12),
|
|
|
|
child: SizedBox(
|
|
|
|
height: 20,
|
|
|
|
width: 20,
|
|
|
|
child: Center(
|
|
|
|
child: CircularProgressIndicator(
|
|
|
|
strokeWidth: 2,
|
2023-10-19 06:06:28 +00:00
|
|
|
color: colorScheme.strokeMuted,
|
2022-08-23 05:23:12 +00:00
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
: IconButton(
|
2022-11-19 10:59:57 +00:00
|
|
|
visualDensity: const VisualDensity(horizontal: -1, vertical: -1),
|
2022-08-23 05:23:12 +00:00
|
|
|
onPressed: () {
|
2023-10-26 14:30:49 +00:00
|
|
|
context
|
|
|
|
.findAncestorStateOfType<SearchWidgetNewState>()!
|
|
|
|
.textController
|
|
|
|
.clear();
|
2022-08-23 05:23:12 +00:00
|
|
|
},
|
|
|
|
icon: Icon(
|
|
|
|
Icons.close,
|
2023-10-19 06:06:28 +00:00
|
|
|
color: colorScheme.strokeMuted,
|
2022-08-19 04:50:07 +00:00
|
|
|
),
|
2022-08-18 10:52:57 +00:00
|
|
|
),
|
2022-08-23 05:23:12 +00:00
|
|
|
);
|
2022-08-18 10:52:57 +00:00
|
|
|
}
|
|
|
|
}
|