make calculation a bit easier to read
This commit is contained in:
parent
647f84f31f
commit
5480889848
1 changed files with 13 additions and 18 deletions
|
|
@ -59,31 +59,26 @@ class EmojiPicker extends HookConsumerWidget {
|
|||
|
||||
useEffect(() {
|
||||
void syncSelectedCategoryWithScroll() {
|
||||
final viewport =
|
||||
scrollViewKey.currentContext?.findRenderObject()
|
||||
as RenderBox?;
|
||||
if (viewport == null) return;
|
||||
final viewport = scrollViewKey.currentContext
|
||||
?.findRenderObject();
|
||||
if (viewport is! RenderBox) return;
|
||||
|
||||
var firstVisibleIndex = 0;
|
||||
|
||||
for (var index = 0; index < headerKeys.length; index++) {
|
||||
final header = headerKeys[index].currentContext
|
||||
final selectedIndex = headerKeys.lastIndexWhere((headerKey) {
|
||||
final renderObject = headerKey.currentContext
|
||||
?.findRenderObject();
|
||||
if (header is! RenderBox) continue;
|
||||
|
||||
final headerTop = header
|
||||
if (renderObject is! RenderBox) return false;
|
||||
|
||||
final top = renderObject
|
||||
.localToGlobal(Offset.zero, ancestor: viewport)
|
||||
.dy;
|
||||
|
||||
if (headerTop > 1) break;
|
||||
return top <= 1;
|
||||
});
|
||||
|
||||
firstVisibleIndex = index;
|
||||
}
|
||||
|
||||
if (firstVisibleIndex != selectedCategory.value) {
|
||||
selectedCategory.value = firstVisibleIndex;
|
||||
final chipContext =
|
||||
chipKeys[firstVisibleIndex].currentContext;
|
||||
if (selectedIndex != selectedCategory.value) {
|
||||
selectedCategory.value = selectedIndex;
|
||||
final chipContext = chipKeys[selectedIndex].currentContext;
|
||||
|
||||
if (chipContext != null) {
|
||||
unawaited(
|
||||
|
|
|
|||
Loading…
Reference in a new issue