Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add gestureResponseDistance prop for Fabric (5) #1442

Conversation

kkafar
Copy link
Member

@kkafar kkafar commented May 4, 2022

Description

Part of stack PR. See:

This PR adds gestureResponseDistance prop for Fabric & unifies some logic related to the prop.

Changes

See commits.

Test code and steps to reproduce

TODO

Checklist

@kkafar kkafar force-pushed the @kkafar/unify-impls-customAnimationOnSwipe branch from ce2ef04 to c9cfe8c Compare May 4, 2022 13:02
@kkafar kkafar force-pushed the @kkafar/unify-impls-gestureResponseDistance branch from 1ab0b96 to 2aa8d11 Compare May 4, 2022 13:04
@kkafar kkafar force-pushed the @kkafar/unify-impls-gestureResponseDistance branch from 4ca0e17 to c0413bd Compare May 13, 2022 06:21
@kkafar kkafar marked this pull request as ready for review May 13, 2022 07:50
@kkafar kkafar force-pushed the @kkafar/unify-impls-gestureResponseDistance branch from 897790d to b66419f Compare May 13, 2022 07:56
ios/RNSScreenStack.mm Outdated Show resolved Hide resolved
@kkafar kkafar force-pushed the @kkafar/unify-impls-customAnimationOnSwipe branch from be15f17 to 1269604 Compare May 13, 2022 10:15
kkafar added 13 commits May 13, 2022 12:15
As there is no way for creating custom `equality operator` for custom
struct via codegen && such check (newProps != oldProps) would require
three "ands" I think it is easier and potentially cheaper to just assign
this (w/o surrounding if-check)
RNSScreenStackView#isInGestureResponseDistance:gestureRecognizer: method
to common section

This is now possible, as `gestureResponseDistance` prop is available on
Fabric
This prop is annotated as iOS only in docs
It is still to be checked whether it is only place where this should be
added
@kkafar kkafar force-pushed the @kkafar/unify-impls-gestureResponseDistance branch from b66419f to 2e74e5c Compare May 13, 2022 10:15
…6) (#1443)

* chore: add homeIndicatorHidden prop to codegen

* chore: add prop update on Fabric

* chore: add noop for Android

This prop is iOS only

* chore: move `activityState` prop to common section in RNSScreen
interface

* chore: move activityState setter to common section in RNSScreenView impl

* refact: linter suggestion

* chore: make RNSScreenView#reactSuperview common & make it implement
RNSScreenContainerDelegate protocol

This hasn't been tested yet. However in any instance it crashes (as
    the protocol might be not implemented) we can just implement noops
for Fabric

* chore: move activityState to implemented section in codegen config files

* chore: make series of methods shared (see details)

* `RNSScreenView#notifyFinishTransitioning`
* `RNSScreen#notifyFinishTransitioning`
* `willMoveToParentViewController`
* `RNSScreenContainer#updateContainer`

These methods were coupled together.

* fix: handle activityState on Fabric

Default value for the prop (when it is not set) on Fabric is -1 instead
of nil (I believe we can not get nil from C++) thus this improved
condition should work for both archs.

* chore: add `preventNativeDismiss` prop for Fabric (7) (#1444)

* chore: move preventNativeDismiss prop to common section in RNSScreen
interface

* fix: merge artifact

* chore: add preventNativeDismiss prop to codegen

* chore: add preventNativeDismiss prop update

* fix: add noop for Android

* chore: unify business logic between archs (8) (#1446)

* chore: unify RNSScreen#vieDidLayoutSubviews

* chore: make RNSScreenStack#hitTest:withEvent: method shared

#1416 (comment)

* chore: make RNSScreenStackView#isScrollViewPanGestureRecongnizer & some
helper methods shared

#1416 (comment)

* chore: move backButtonInCustomView to shared sectionin
RNSScreenStackHeaderConfig.h

* chore: move backButtonInCustomView prop to implemented section in JS

* chore: update `backButtonInCustomView` for Fabric

* chore: unify
RNSScreenStackHeaderConfigView#willShowViewController:animated:withConfig

* refact: linter suggestion

* fix: RNSScreen viewDidLayoutSubviews

* chore: copy interfaces to android/src/paper directory

* fix: commit address in comment

It changed after I rebased
@kkafar kkafar merged commit 6af0e86 into @kkafar/unify-impls-customAnimationOnSwipe May 13, 2022
@kkafar kkafar deleted the @kkafar/unify-impls-gestureResponseDistance branch May 13, 2022 11:54
kkafar added a commit that referenced this pull request May 13, 2022
* chore: add customAnimationOnSwipe prop to codegen

* chore: move customAnimationOnSwipe prop to shared section in RNSScreen
interface

* refact: linter suggestion

* chore: add customAnimationOnSwipe update for Fabric

* chore: unify RNSScreenStackAnimator#animateTransition method

This is possible as customAnimationOnSwipe prop is now implemented on
Fabric

* chore: unify RNSScreenStack#gestureRecognizer should begin method

This is possible as customAnimationOnSwipe prop in now implemented on
Fabric

* chore: noop for Android

This prop is annotated as iOS only in docs

* chore: remove not needed difference between implementations

* chore: add `gestureResponseDistance` prop for Fabric (5) (#1442)

* chore: move gestureResponseDistance prop to shared section in RNSScreen
interface

* refact: linter suggestions

* chore: add gestureResponseDistanceProp to Codegen

* chore: add conversion methods for GestureResponseDistanceStruct

* refact: linter suggestion

* chore: add props update for Fabric

As there is no way for creating custom `equality operator` for custom
struct via codegen && such check (newProps != oldProps) would require
three "ands" I think it is easier and potentially cheaper to just assign
this (w/o surrounding if-check)

* chore: unify RNSScreenStack#gestureRecognizerShouldBegin method

* chore: move
RNSScreenStackView#isInGestureResponseDistance:gestureRecognizer: method
to common section

This is now possible, as `gestureResponseDistance` prop is available on
Fabric

* chore: add noop for Android

This prop is annotated as iOS only in docs

* chore: change GestureResponseDistance field type from int to float

* fix: merge artifact

* chore: add deafult value for gestureResponseDistance on JS side

It is still to be checked whether it is only place where this should be
added

* chore: unify RNSScreenStack#isInGestureResponseDistance:topScreen:
method

* chore: add `homeIndicatorHidden` & `activityState` props for Fabric (6) (#1443)

* chore: add homeIndicatorHidden prop to codegen

* chore: add prop update on Fabric

* chore: add noop for Android

This prop is iOS only

* chore: move `activityState` prop to common section in RNSScreen
interface

* chore: move activityState setter to common section in RNSScreenView impl

* refact: linter suggestion

* chore: make RNSScreenView#reactSuperview common & make it implement
RNSScreenContainerDelegate protocol

This hasn't been tested yet. However in any instance it crashes (as
    the protocol might be not implemented) we can just implement noops
for Fabric

* chore: move activityState to implemented section in codegen config files

* chore: make series of methods shared (see details)

* `RNSScreenView#notifyFinishTransitioning`
* `RNSScreen#notifyFinishTransitioning`
* `willMoveToParentViewController`
* `RNSScreenContainer#updateContainer`

These methods were coupled together.

* fix: handle activityState on Fabric

Default value for the prop (when it is not set) on Fabric is -1 instead
of nil (I believe we can not get nil from C++) thus this improved
condition should work for both archs.

* chore: add `preventNativeDismiss` prop for Fabric (7) (#1444)

* chore: move preventNativeDismiss prop to common section in RNSScreen
interface

* fix: merge artifact

* chore: add preventNativeDismiss prop to codegen

* chore: add preventNativeDismiss prop update

* fix: add noop for Android

* chore: unify business logic between archs (8) (#1446)

* chore: unify RNSScreen#vieDidLayoutSubviews

* chore: make RNSScreenStack#hitTest:withEvent: method shared

#1416 (comment)

* chore: make RNSScreenStackView#isScrollViewPanGestureRecongnizer & some
helper methods shared

#1416 (comment)

* chore: move backButtonInCustomView to shared sectionin
RNSScreenStackHeaderConfig.h

* chore: move backButtonInCustomView prop to implemented section in JS

* chore: update `backButtonInCustomView` for Fabric

* chore: unify
RNSScreenStackHeaderConfigView#willShowViewController:animated:withConfig

* refact: linter suggestion

* fix: RNSScreen viewDidLayoutSubviews

* chore: copy interfaces to android/src/paper directory

* fix: commit address in comment

It changed after I rebased
kkafar added a commit that referenced this pull request May 13, 2022
* chore: move hideKeyboardOnSwipe prop to common section in RNSScreen
header

* chore: add hideKeyboardOnSwipe prop to codegen

* chore: make keyboard dismiss logic common

* chore: add hideKeyboardOnSwipe prop update for Fabric

* chore: add noop for Android

This prop is marked as iOS only

* chore: add `customAnimationOnSwipe` prop for Fabric (4) (#1434)

* chore: add customAnimationOnSwipe prop to codegen

* chore: move customAnimationOnSwipe prop to shared section in RNSScreen
interface

* refact: linter suggestion

* chore: add customAnimationOnSwipe update for Fabric

* chore: unify RNSScreenStackAnimator#animateTransition method

This is possible as customAnimationOnSwipe prop is now implemented on
Fabric

* chore: unify RNSScreenStack#gestureRecognizer should begin method

This is possible as customAnimationOnSwipe prop in now implemented on
Fabric

* chore: noop for Android

This prop is annotated as iOS only in docs

* chore: remove not needed difference between implementations

* chore: add `gestureResponseDistance` prop for Fabric (5) (#1442)

* chore: move gestureResponseDistance prop to shared section in RNSScreen
interface

* refact: linter suggestions

* chore: add gestureResponseDistanceProp to Codegen

* chore: add conversion methods for GestureResponseDistanceStruct

* refact: linter suggestion

* chore: add props update for Fabric

As there is no way for creating custom `equality operator` for custom
struct via codegen && such check (newProps != oldProps) would require
three "ands" I think it is easier and potentially cheaper to just assign
this (w/o surrounding if-check)

* chore: unify RNSScreenStack#gestureRecognizerShouldBegin method

* chore: move
RNSScreenStackView#isInGestureResponseDistance:gestureRecognizer: method
to common section

This is now possible, as `gestureResponseDistance` prop is available on
Fabric

* chore: add noop for Android

This prop is annotated as iOS only in docs

* chore: change GestureResponseDistance field type from int to float

* fix: merge artifact

* chore: add deafult value for gestureResponseDistance on JS side

It is still to be checked whether it is only place where this should be
added

* chore: unify RNSScreenStack#isInGestureResponseDistance:topScreen:
method

* chore: add `homeIndicatorHidden` & `activityState` props for Fabric (6) (#1443)

* chore: add homeIndicatorHidden prop to codegen

* chore: add prop update on Fabric

* chore: add noop for Android

This prop is iOS only

* chore: move `activityState` prop to common section in RNSScreen
interface

* chore: move activityState setter to common section in RNSScreenView impl

* refact: linter suggestion

* chore: make RNSScreenView#reactSuperview common & make it implement
RNSScreenContainerDelegate protocol

This hasn't been tested yet. However in any instance it crashes (as
    the protocol might be not implemented) we can just implement noops
for Fabric

* chore: move activityState to implemented section in codegen config files

* chore: make series of methods shared (see details)

* `RNSScreenView#notifyFinishTransitioning`
* `RNSScreen#notifyFinishTransitioning`
* `willMoveToParentViewController`
* `RNSScreenContainer#updateContainer`

These methods were coupled together.

* fix: handle activityState on Fabric

Default value for the prop (when it is not set) on Fabric is -1 instead
of nil (I believe we can not get nil from C++) thus this improved
condition should work for both archs.

* chore: add `preventNativeDismiss` prop for Fabric (7) (#1444)

* chore: move preventNativeDismiss prop to common section in RNSScreen
interface

* fix: merge artifact

* chore: add preventNativeDismiss prop to codegen

* chore: add preventNativeDismiss prop update

* fix: add noop for Android

* chore: unify business logic between archs (8) (#1446)

* chore: unify RNSScreen#vieDidLayoutSubviews

* chore: make RNSScreenStack#hitTest:withEvent: method shared

#1416 (comment)

* chore: make RNSScreenStackView#isScrollViewPanGestureRecongnizer & some
helper methods shared

#1416 (comment)

* chore: move backButtonInCustomView to shared sectionin
RNSScreenStackHeaderConfig.h

* chore: move backButtonInCustomView prop to implemented section in JS

* chore: update `backButtonInCustomView` for Fabric

* chore: unify
RNSScreenStackHeaderConfigView#willShowViewController:animated:withConfig

* refact: linter suggestion

* fix: RNSScreen viewDidLayoutSubviews

* chore: copy interfaces to android/src/paper directory

* fix: commit address in comment

It changed after I rebased
kkafar added a commit that referenced this pull request May 13, 2022
* chore: add method for converting RNSScreenReplaceAnimation enum from Cpp
to obj-c

* chore: update replaceAnimation prop on Fabric

* refact: linter suggestion

* chore: add `hideKeyboardOnSwipe` prop for Fabric (3) (#1433)

* chore: move hideKeyboardOnSwipe prop to common section in RNSScreen
header

* chore: add hideKeyboardOnSwipe prop to codegen

* chore: make keyboard dismiss logic common

* chore: add hideKeyboardOnSwipe prop update for Fabric

* chore: add noop for Android

This prop is marked as iOS only

* chore: add `customAnimationOnSwipe` prop for Fabric (4) (#1434)

* chore: add customAnimationOnSwipe prop to codegen

* chore: move customAnimationOnSwipe prop to shared section in RNSScreen
interface

* refact: linter suggestion

* chore: add customAnimationOnSwipe update for Fabric

* chore: unify RNSScreenStackAnimator#animateTransition method

This is possible as customAnimationOnSwipe prop is now implemented on
Fabric

* chore: unify RNSScreenStack#gestureRecognizer should begin method

This is possible as customAnimationOnSwipe prop in now implemented on
Fabric

* chore: noop for Android

This prop is annotated as iOS only in docs

* chore: remove not needed difference between implementations

* chore: add `gestureResponseDistance` prop for Fabric (5) (#1442)

* chore: move gestureResponseDistance prop to shared section in RNSScreen
interface

* refact: linter suggestions

* chore: add gestureResponseDistanceProp to Codegen

* chore: add conversion methods for GestureResponseDistanceStruct

* refact: linter suggestion

* chore: add props update for Fabric

As there is no way for creating custom `equality operator` for custom
struct via codegen && such check (newProps != oldProps) would require
three "ands" I think it is easier and potentially cheaper to just assign
this (w/o surrounding if-check)

* chore: unify RNSScreenStack#gestureRecognizerShouldBegin method

* chore: move
RNSScreenStackView#isInGestureResponseDistance:gestureRecognizer: method
to common section

This is now possible, as `gestureResponseDistance` prop is available on
Fabric

* chore: add noop for Android

This prop is annotated as iOS only in docs

* chore: change GestureResponseDistance field type from int to float

* fix: merge artifact

* chore: add deafult value for gestureResponseDistance on JS side

It is still to be checked whether it is only place where this should be
added

* chore: unify RNSScreenStack#isInGestureResponseDistance:topScreen:
method

* chore: add `homeIndicatorHidden` & `activityState` props for Fabric (6) (#1443)

* chore: add homeIndicatorHidden prop to codegen

* chore: add prop update on Fabric

* chore: add noop for Android

This prop is iOS only

* chore: move `activityState` prop to common section in RNSScreen
interface

* chore: move activityState setter to common section in RNSScreenView impl

* refact: linter suggestion

* chore: make RNSScreenView#reactSuperview common & make it implement
RNSScreenContainerDelegate protocol

This hasn't been tested yet. However in any instance it crashes (as
    the protocol might be not implemented) we can just implement noops
for Fabric

* chore: move activityState to implemented section in codegen config files

* chore: make series of methods shared (see details)

* `RNSScreenView#notifyFinishTransitioning`
* `RNSScreen#notifyFinishTransitioning`
* `willMoveToParentViewController`
* `RNSScreenContainer#updateContainer`

These methods were coupled together.

* fix: handle activityState on Fabric

Default value for the prop (when it is not set) on Fabric is -1 instead
of nil (I believe we can not get nil from C++) thus this improved
condition should work for both archs.

* chore: add `preventNativeDismiss` prop for Fabric (7) (#1444)

* chore: move preventNativeDismiss prop to common section in RNSScreen
interface

* fix: merge artifact

* chore: add preventNativeDismiss prop to codegen

* chore: add preventNativeDismiss prop update

* fix: add noop for Android

* chore: unify business logic between archs (8) (#1446)

* chore: unify RNSScreen#vieDidLayoutSubviews

* chore: make RNSScreenStack#hitTest:withEvent: method shared

#1416 (comment)

* chore: make RNSScreenStackView#isScrollViewPanGestureRecongnizer & some
helper methods shared

#1416 (comment)

* chore: move backButtonInCustomView to shared sectionin
RNSScreenStackHeaderConfig.h

* chore: move backButtonInCustomView prop to implemented section in JS

* chore: update `backButtonInCustomView` for Fabric

* chore: unify
RNSScreenStackHeaderConfigView#willShowViewController:animated:withConfig

* refact: linter suggestion

* fix: RNSScreen viewDidLayoutSubviews

* chore: copy interfaces to android/src/paper directory

* fix: commit address in comment

It changed after I rebased
kkafar added a commit that referenced this pull request May 13, 2022
* chore: unify RNSScreenStack#updateContainer method

This is now possible as dismissed prop is implemented on both platforms

* fix: set _dismissed = NO in prepareForRecycle

As the component gets recycled, we must re-initialize the prop

* chore: add `replaceAnimation` prop for Fabric (2) (#1432)

* chore: add method for converting RNSScreenReplaceAnimation enum from Cpp
to obj-c

* chore: update replaceAnimation prop on Fabric

* refact: linter suggestion

* chore: add `hideKeyboardOnSwipe` prop for Fabric (3) (#1433)

* chore: move hideKeyboardOnSwipe prop to common section in RNSScreen
header

* chore: add hideKeyboardOnSwipe prop to codegen

* chore: make keyboard dismiss logic common

* chore: add hideKeyboardOnSwipe prop update for Fabric

* chore: add noop for Android

This prop is marked as iOS only

* chore: add `customAnimationOnSwipe` prop for Fabric (4) (#1434)

* chore: add customAnimationOnSwipe prop to codegen

* chore: move customAnimationOnSwipe prop to shared section in RNSScreen
interface

* refact: linter suggestion

* chore: add customAnimationOnSwipe update for Fabric

* chore: unify RNSScreenStackAnimator#animateTransition method

This is possible as customAnimationOnSwipe prop is now implemented on
Fabric

* chore: unify RNSScreenStack#gestureRecognizer should begin method

This is possible as customAnimationOnSwipe prop in now implemented on
Fabric

* chore: noop for Android

This prop is annotated as iOS only in docs

* chore: remove not needed difference between implementations

* chore: add `gestureResponseDistance` prop for Fabric (5) (#1442)

* chore: move gestureResponseDistance prop to shared section in RNSScreen
interface

* refact: linter suggestions

* chore: add gestureResponseDistanceProp to Codegen

* chore: add conversion methods for GestureResponseDistanceStruct

* refact: linter suggestion

* chore: add props update for Fabric

As there is no way for creating custom `equality operator` for custom
struct via codegen && such check (newProps != oldProps) would require
three "ands" I think it is easier and potentially cheaper to just assign
this (w/o surrounding if-check)

* chore: unify RNSScreenStack#gestureRecognizerShouldBegin method

* chore: move
RNSScreenStackView#isInGestureResponseDistance:gestureRecognizer: method
to common section

This is now possible, as `gestureResponseDistance` prop is available on
Fabric

* chore: add noop for Android

This prop is annotated as iOS only in docs

* chore: change GestureResponseDistance field type from int to float

* fix: merge artifact

* chore: add deafult value for gestureResponseDistance on JS side

It is still to be checked whether it is only place where this should be
added

* chore: unify RNSScreenStack#isInGestureResponseDistance:topScreen:
method

* chore: add `homeIndicatorHidden` & `activityState` props for Fabric (6) (#1443)

* chore: add homeIndicatorHidden prop to codegen

* chore: add prop update on Fabric

* chore: add noop for Android

This prop is iOS only

* chore: move `activityState` prop to common section in RNSScreen
interface

* chore: move activityState setter to common section in RNSScreenView impl

* refact: linter suggestion

* chore: make RNSScreenView#reactSuperview common & make it implement
RNSScreenContainerDelegate protocol

This hasn't been tested yet. However in any instance it crashes (as
    the protocol might be not implemented) we can just implement noops
for Fabric

* chore: move activityState to implemented section in codegen config files

* chore: make series of methods shared (see details)

* `RNSScreenView#notifyFinishTransitioning`
* `RNSScreen#notifyFinishTransitioning`
* `willMoveToParentViewController`
* `RNSScreenContainer#updateContainer`

These methods were coupled together.

* fix: handle activityState on Fabric

Default value for the prop (when it is not set) on Fabric is -1 instead
of nil (I believe we can not get nil from C++) thus this improved
condition should work for both archs.

* chore: add `preventNativeDismiss` prop for Fabric (7) (#1444)

* chore: move preventNativeDismiss prop to common section in RNSScreen
interface

* fix: merge artifact

* chore: add preventNativeDismiss prop to codegen

* chore: add preventNativeDismiss prop update

* fix: add noop for Android

* chore: unify business logic between archs (8) (#1446)

* chore: unify RNSScreen#vieDidLayoutSubviews

* chore: make RNSScreenStack#hitTest:withEvent: method shared

#1416 (comment)

* chore: make RNSScreenStackView#isScrollViewPanGestureRecongnizer & some
helper methods shared

#1416 (comment)

* chore: move backButtonInCustomView to shared sectionin
RNSScreenStackHeaderConfig.h

* chore: move backButtonInCustomView prop to implemented section in JS

* chore: update `backButtonInCustomView` for Fabric

* chore: unify
RNSScreenStackHeaderConfigView#willShowViewController:animated:withConfig

* refact: linter suggestion

* fix: RNSScreen viewDidLayoutSubviews

* chore: copy interfaces to android/src/paper directory

* fix: commit address in comment

It changed after I rebased
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants