Skip to content

Commit

Permalink
chore: bugfix event emitter infinite loop
Browse files Browse the repository at this point in the history
  • Loading branch information
azimgd committed Nov 25, 2024
1 parent 5f05ce7 commit 9a0b53e
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 23 deletions.
2 changes: 0 additions & 2 deletions android/src/main/java/com/shadowlist/SLContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -234,8 +234,6 @@ public void setStateWrapper(

mScrollContainerVertical.scrollTo((int)PixelUtil.toPixelFromDIP(scrollPosition[0]), (int)PixelUtil.toPixelFromDIP(scrollPosition[1]));

updateObservers(scrollPosition, visibleStartIndex, visibleEndIndex);

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
Expand Down
2 changes: 1 addition & 1 deletion example/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
import useData from './useData';
import Element from './Element';

const ITEMS_COUNT = 20;
const ITEMS_COUNT = 50;
const IS_INVERTED = false;
const IS_HORIZONTAL = false;
const INITIAL_SCROLL_INDEX = 0;
Expand Down
24 changes: 4 additions & 20 deletions ios/SLContainer.mm
Original file line number Diff line number Diff line change
Expand Up @@ -113,21 +113,9 @@ - (void)updateState:(const State::Shared &)state oldState:(const State::Shared &
scrollContentWidth:nextStateData.scrollContent.width
scrollContentHeight:nextStateData.scrollContent.height];

/**
* Dispatch event emitters
*/
const auto &eventEmitter = static_cast<const SLContainerEventEmitter &>(*_eventEmitter);
eventEmitter.onVisibleChange({visibleStartIndex, visibleEndIndex});

int distanceFromStart = [self->_scrollable shouldNotifyStart:scrollPositionCGPoint];
if (distanceFromStart) {
eventEmitter.onStartReached({distanceFromStart});
}

int distanceFromEnd = [self->_scrollable shouldNotifyEnd:scrollPositionCGPoint];
if (distanceFromEnd) {
eventEmitter.onEndReached({distanceFromEnd});
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(16 * NSEC_PER_MSEC)), dispatch_get_main_queue(), ^{
[self updateVirtualization];
});
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
Expand Down Expand Up @@ -158,7 +146,7 @@ - (void)updateVirtualization
[self->_containerChildrenManager
mount:visibleStartIndex
visibleEndIndex:visibleEndIndex];

[self updateObservers:scrollPositionCGPoint visibleStartIndex:visibleStartIndex visibleEndIndex:visibleEndIndex];
}

Expand All @@ -183,10 +171,6 @@ - (void)updateObservers:(CGPoint)scrollPosition visibleStartIndex:(int)visibleSt
if (distanceFromEnd) {
eventEmitter.onEndReached({distanceFromEnd});
}

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(16 * NSEC_PER_MSEC)), dispatch_get_main_queue(), ^{
[self updateVirtualization];
});
}

- (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
Expand Down

0 comments on commit 9a0b53e

Please sign in to comment.