Open
Description
We'll be updating the library and making a new release, specifically for Expensify's use cases. This will be a breaking change. We'll describe the release plan below.
Community note:
- This will likely be a breaking change. We'll make sure to include instructions on how to upgrade in the release notes.
- We will only be focused on fixing issues needed for Expensify's sharing feature. If you have another urgent issue that we're not addressing, and you'd like to submit a PR for, please discuss with us here and we'll make a plan together.
Phase 0: Fix blockers for new RN apps
These are issues that prevented current apps encountered immediately on trying to use react-native-share-menu. We've already merged these changes:
- 1. jsBundleUrl arguments changed in recent React Native versions (ios: No exact matches in call to instance method 'jsBundleURL' in ReactShareViewController.swift #209).
- 2. Update Android compileSdkVersion (Android configuration is out-of-date #261).
- 3. ShareMenuModule.java needs to implement NativeEventEmitter methods to avoid warnings (Fix Android NativeEventEmitter warnings #268).
Phase 1: Make the library maintainable
- 1. Update the example project so we can evaluate PRs more easily (Update example project #284)
- 2. Set up a changelog format so we can track changes and consolidate release notes (Set up changelog format #288)
- 3. Make a test release candidate so that we can ensure the transfer of the project to Expensify is complete and we're able to release the library when we're ready (Do a test release #289)
Phase 2: Necessary fixes
- 1. Support a "No Share Extension UI" flow, for Expensify (Support "No Share Extension UI" flow on iOS #285)
- 2. Fix app group naming logic (Improve app group configuration for iOS #287)
- 3. Fix issues with loading files for storage in the iOS share extension (Ensure iOS share extension can load files of all types, from all apps #290)
- 4. Detect mime-types correctly for files (Report content types more clearly (Android and iOS) #291)
- 5. Manage copied file deletion (Add a method to manage copied files on iOS #292)
- 6. Add a privacy manifest (Add a privacy manifest for XCode 15 #286)
- 7. Ensure this library is compatible with react-navigation deep-linking(Ensure react-navigation deep-linking works correctly alongside react-native-share-menu #304)
Phase 2.5: Possibly helpful fixes
These are items we don't need for Expensify, but we've implemented solutions for while prototyping options. If these prove to be stable, we'll likely merge them:
- 1.
detachViewDelegate
should be called in more locations to prevent crashes (Fix detach view delegate #271). - 2. The addition of the
isExtension
method, which can be used to behave differently in JavaScript if your code is running inside the share extension (Add isExtension to ShareMenuReactView #265)
Phase 3: New Architecture support
Phase 4: Release it!
- 1. Figure out if we need to update references to
github.com/meedan
- 2. Audit Dependabot PRs for security vulnerability fixes
- 3. Consider updating GitHub "releases" tab, or clearing it out (it is currently showing 5.0 as the latest, instead of 6.0, which on npm)
- 4. Consolidate the changelog, add to release notes
- 5. Make the release!
Out of scope
- Fixing anything related to sharing multiple items. Expensify does not currently need this, so we won't be addressing that right now.
- Expo config plugin support. This is possible to set up as a separate project from this repo, and I highly encourage this!
- Bugs and features not listed here that do not affect the "No Share Extension UI" flow
Metadata
Metadata
Assignees
Labels
No labels