MCPcopy Create free account
hub / github.com/Snapchat/Valdi / canScroll

Method canScroll

valdi/src/valdi/runtime/Context/ViewNode.cpp:1162–1190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1160 directionAgnosticVelocityFromDirectionDependentVelocity(directionDependentVelocity);
1161 handleOnScroll(
1162 directionDependentContentOffset, directionDependentUnclampedContentOffset, directionAgnosticVelocity);
1163
1164 return {scrollState.getDirectionDependentContentOffset()};
1165}
1166
1167void ViewNode::onScrollEnd(const Point& directionDependentContentOffset,
1168 const Point& directionDependentUnclampedContentOffset) {
1169 if (isUpdatingScrollSpecs()) {
1170 return;
1171 }
1172
1173 auto& scrollState = getOrCreateScrollState();
1174
1175 // Make sure everyone is notified that we are not animating anymore
1176 scrollState.setCurrentlyAnimating(false);
1177
1178 // Trigger typescript's onScrollEnd
1179
1180 auto directionAgnosticContentOffset =
1181 scrollState.resolveDirectionAgnosticContentOffset(directionDependentContentOffset);
1182 auto directionAgnosticUnclampedContentOffset =
1183 scrollState.resolveDirectionAgnosticContentOffset(directionDependentUnclampedContentOffset);
1184
1185 scrollState.notifyOnScrollEnd(directionAgnosticContentOffset, directionAgnosticUnclampedContentOffset);
1186}
1187
1188Point ViewNode::directionAgnosticVelocityFromDirectionDependentVelocity(const Point& directionDependentVelocity) {
1189 if (isHorizontal()) {
1190 auto resolvedVelocityX = isRightToLeft() ? directionDependentVelocity.x * -1 : directionDependentVelocity.x;
1191 return Point(resolvedVelocityX, 0);
1192 } else {
1193 return Point(0, directionDependentVelocity.y);

Callers 2

TESTFunction · 0.80
canViewNodeScrollMethod · 0.80

Calls 1

containsMethod · 0.65

Tested by 1

TESTFunction · 0.64