customerio / customerio-reactnative

MIT License
25 stars 13 forks source link

fix: push permission status value as received from native modules #116

Closed ami-aman closed 1 year ago

ami-aman commented 1 year ago

Related to GH issue https://github.com/customerio/customerio-reactnative/issues/115

PushPermissionStatus.NotDetermined is NotDetermined but the package receives Notdetermined from native modules

This PR fixes the mismatch

github-actions[bot] commented 1 year ago

Pull request title looks good 👍!

If this pull request gets merged, it will cause a new release of the software. Example: If this project's latest release version is 1.0.0. If this pull request gets merged in, the next release of this project will be 1.0.1. This pull request is not a breaking change.

All merged pull requests will eventually get deployed. But some types of pull requests will trigger a deployment (such as features and bug fixes) while some pull requests will wait to get deployed until a later time.

This project uses a special format for pull requests titles. Expand this section to learn more (expand by clicking the ᐅ symbol on the left side of this sentence)...
This project uses a special format for pull requests titles. Don't worry, it's easy! This pull request title should be in this format: ``` : short description of change being made ``` **If your pull request [introduces breaking changes](https://web.archive.org/web/20220725195319/https://nordicapis.com/what-are-breaking-changes-and-how-do-you-avoid-them/)** to the code, use this format: ``` !: short description of breaking change ``` where `` is one of the following: - `feat:` - A feature is being added or modified by this pull request. Use this if you made any changes to any of the features of the project. - `fix:` - A bug is being fixed by this pull request. Use this if you made any fixes to bugs in the project. - `docs:` - This pull request is making documentation changes, only. - `refactor:` - A change was made that doesn't fix a bug or add a feature. - `test:` - Adds missing tests or fixes broken tests. - `style:` - Changes that do not effect the code (whitespace, linting, formatting, semi-colons, etc) - `perf:` - Changes improve performance of the code. - `build:` - Changes to the build system (maven, npm, gulp, etc) - `ci:` - Changes to the CI build system (Travis, GitHub Actions, Circle, etc) - `chore:` - Other changes to project that don't modify source code or test files. - `revert:` - Reverts a previous commit that was made. ### Examples: ``` feat: edit profile photo refactor!: remove deprecated v1 endpoints build: update npm dependencies style: run formatter ``` Need more examples? Want to learn more about this format? [Check out the official docs](https://www.conventionalcommits.org/). **Note:** If your pull request does multiple things such as adding a feature _and_ makes changes to the CI server _and_ fixes some bugs then you might want to consider splitting this pull request up into multiple smaller pull requests.
ami-aman commented 1 year ago

My vote is to make a bug fix for the native SDKs that returns 'NotDetermined' instead of 'Notdetermined' to fix this issue.

Levi, based on your PR you are using .capitalized here, the enum returns Notdetermined and NOT NotDetermined.

Hence, native module returns Notdetermined but reference property in javascript returns NotDetermined.

Does this answer your question ?

levibostian commented 1 year ago

My original code review feedback was not very helpful I am realizing.

My feedback is suggesting that instead of fixing this bug in the typescript/javascript layer of the code, we fix the bug in the Swift/native layer. This solution feels error-prone to me because of inconsistent naming. Instead of having both NotDetermined and Notdeteremined strings being used in the code base, I like the solution of only having NotDetermined strings being used in the code. If we were to fix the bug in the Swift/native layer, we would no longer need to handle Notdetermined strings from occurring in the code base.

To demonstrate this idea, I did create this PR. That new PR is not tested, but it is ready for a review to give feedback if that solution is preferred over this one.

mrehan27 commented 1 year ago

I think the solution proposed by Levi is the right fix for this. Notdetermined string was due to the bug, and we should fix the string and have NotDetermined instead.

ami-aman commented 1 year ago

Although I am fine with the change, our clients who already use "Notdetermined" will experience a code break. But if you all feel that we should still go ahead and make the change then I am fine with that as well. In that case, feel free to discard this PR.