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(() {
|
useEffect(() {
|
||||||
void syncSelectedCategoryWithScroll() {
|
void syncSelectedCategoryWithScroll() {
|
||||||
final viewport =
|
final viewport = scrollViewKey.currentContext
|
||||||
scrollViewKey.currentContext?.findRenderObject()
|
?.findRenderObject();
|
||||||
as RenderBox?;
|
if (viewport is! RenderBox) return;
|
||||||
if (viewport == null) return;
|
|
||||||
|
|
||||||
var firstVisibleIndex = 0;
|
final selectedIndex = headerKeys.lastIndexWhere((headerKey) {
|
||||||
|
final renderObject = headerKey.currentContext
|
||||||
for (var index = 0; index < headerKeys.length; index++) {
|
|
||||||
final header = headerKeys[index].currentContext
|
|
||||||
?.findRenderObject();
|
?.findRenderObject();
|
||||||
if (header is! RenderBox) continue;
|
|
||||||
|
|
||||||
final headerTop = header
|
if (renderObject is! RenderBox) return false;
|
||||||
|
|
||||||
|
final top = renderObject
|
||||||
.localToGlobal(Offset.zero, ancestor: viewport)
|
.localToGlobal(Offset.zero, ancestor: viewport)
|
||||||
.dy;
|
.dy;
|
||||||
|
|
||||||
if (headerTop > 1) break;
|
return top <= 1;
|
||||||
|
});
|
||||||
|
|
||||||
firstVisibleIndex = index;
|
if (selectedIndex != selectedCategory.value) {
|
||||||
}
|
selectedCategory.value = selectedIndex;
|
||||||
|
final chipContext = chipKeys[selectedIndex].currentContext;
|
||||||
if (firstVisibleIndex != selectedCategory.value) {
|
|
||||||
selectedCategory.value = firstVisibleIndex;
|
|
||||||
final chipContext =
|
|
||||||
chipKeys[firstVisibleIndex].currentContext;
|
|
||||||
|
|
||||||
if (chipContext != null) {
|
if (chipContext != null) {
|
||||||
unawaited(
|
unawaited(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue