* upgrade sentry to support profiling monitoring
* remove console logs in production builds
* feeds tab bar and bottom bar animation centralized
* refactor FeedPage out of Home
* add script to start in production mode
* move FAB inner to reanimated
* move FABInner back to `Animated` RN animation
* add perf commands
* add testing with Maestro and perf with Flashlight
* fix merge conflicts
* fix resourceClass name in eas.json
* fix onEndReachedThreshold in Feed
* memoize styles
* go back to old styling for LoadLatestBtn
* remove reanimated code from useMinimalShellMode
* move shell animations to hook/reanimated for perf
* fix empty state issue
* make shell animation feel smoother
* make shell animation more smooth
* run animation with autorun
* specify keys for tab bar properly
* remove comments
* remove already imported dep
* fix lint
* add testing instructions
* mock sentry-expo for jest
* fix jest mocks
* Fix the load-latest button on desktop and tablet
* Fix: don't move the FAB in tablet mode
* Fix type error
* Fix tabs bar positioning on tablet
* Fix types
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Update testrunner to use new dev-env
* Fix label testcase
* Vendor the dev-infra scripts from the atproto repo for the dev-env server runner
* Bump detox to fix the ios sim control issue
* Use iphone 15 pro for tests
* Ensure the reminders never trigger during tests
* Skip the shell tests due to a crash bug with detox and the drawer
* Add link warning modal when URLs do not match their text
* Simplify the misleading link case for clarity
* Fix typecheck
* fix dark mode
* Give a stronger visual indication of the root domain in the link warning
* More rigorous URL mismatch logic
* Remove debug
---------
Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
* move content languages to screen
* add dropdown library, style primary lang select
* update settings button
* show selected langauges in button
* use primary language in translator link
* update copy
* lint
* Fix error state for recommended feeds
* Handle failure to set default feeds more safely
* Dont return undefined within react-query
* Update yarn.lock
* Feeds navigation on right side of desktop (#1403)
* Remove home feed header on desktop
* Add feeds to right sidebar
* Add simple non-moving header to desktop
* Improve loading state of custom feed header
* Remove log
Co-authored-by: Eric Bailey <git@esb.lol>
* Remove dead comment
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Redesign feeds tab (#1439)
* consolidate saved feeds and discover into one screen
* Add hoverStyle behavior to <Link>
* More UI work on SavedFeeds
* Replace satellite icon with a hashtag
* Tune My Feeds mobile ui
* Handle no results in my feeds
* Remove old DiscoverFeeds screen
* Remove multifeed
* Remove DiscoverFeeds from router
* Improve loading placeholders
* Small fixes
* Fix types
* Fix overflow issue on firefox
* Add icons prompting to open feeds
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Merge feed prototype [WIP] (#1398)
* POC WIP for the mergefeed
* Add feed API wrapper and move mergefeed into it
* Show feed source in mergefeed
* Add lodash.random dep
* Improve mergefeed sampling and reliability
* Tune source ui element
* Improve mergefeed edge condition handling
* Remove in-place update of feeds for performance
* Fix link on native
* Fix bad ref
* Improve variety in mergefeed sampling
* Fix types
* Fix rebase error
* Add missing source field (got dropped in merge)
* Update find more link
* Simplify the right hand feeds nav
* Bring back load latest button on desktop & unify impl
* Add 'From' to source
* Add simple headers to desktop home & notifications
* Fix thread view jumping around horizontally
* Add unread indicators to desktop headers
* Add home feed preference for enabling the mergefeed
* Add a preference for showing replies among followed users only (#1448)
* Add a preference for showing replies among followed users only
* Simplify the reply filter UI
* Fix typo
* Simplified custom feed header
* Add soft reset to custom feed screen
* Drop all the in-post translate links except when expanded (#1455)
* Update mobile feed settings links to match desktop
* Fixes to feeds screen loading states
* Bolder active state of feeds tab on mobile web
* Fix dark mode issue
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Ansh <anshnanda10@gmail.com>
* add React Query and hook up to existing functionality
* wire in remote data, add error message
* remove hard-coded feeds
* oops fix logic
* add loading state
* fix loading on mobile
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* update to expo 49
* update expo-camera to fix console erorrs
* run doctor again
* fix ts errors
* patch @sentry/react-native
Getting `cannot read property 'ignoreLogs' of undefined` in this file.
Ironically, this may be a cyclical imports problem. LogBox isn't enabled
in production, so this patch should only affect dev/test.
* fix type error
* reinstall newer reanimated
* pin expo-dev-client to fix reanimated dev-build issue
* fix type errors, fix bad conflict res
* Fix to notifications badge z-index on desktop
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* move `PreferencesHomeFeed` to a screen instead of a modal
* add web route for home feed preferences
* upgrade `@miblanchard/react-native-slider` to fix lint
* fix web route naming
* fix desktop web styling
* add `react-native-slider` mock
* Default isAdultContentEnabled to false on all devices.
The original intent of setting the default based on the device was
to make the maximally-permissive choice. It turns out this was a
mistake as it created sync issues between devices; users would be
confused by the lack of congruity between them. We have to go with
false by default to ensure sync is retained.
* Update preferences model to use new sdk api
* Delete dead code
* Dont show the iOS adult content warning in content filtering settings if adult content is enabled
* Bump @atproto/api@0.6.8
* Codebase style consistency
* add emoji-mart package for emoji dropdown picker
* remove emoji picker modal
* load emoji mart data not as part of the main bundle
* remove @emoji-mart/data
* setup emoji insertion with events
* get emoji data from local static assets
* close emoji picker after one emoji has been inserted
* Switch emoji picker trigger to an icon
* Update emoji-mart-data.js
* make grabbing emoji data work on more browsers
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* add likes tab
(cherry picked from commit 6c5ffd964ca0b185ddfc37088d82712a006a1163)
* only show Likes tab to authenticated user
(cherry picked from commit ecc1254411d760158b6d7a4c5f05d940db872dfc)
* Bump @atproto/api@0.6.5
* fix types
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
The tiptap useEditor() hook creates an awkward challenge for passing
event handlers into its plugins and native events. By introducing a
memoized editor, we should be able to shuttle events out of tiptap
without retriggering the useEditor hook. The emitter can then change
its registered handlers with each state update.
* add media tab
* fix loading state
* cleanup
* update naming
* upgrade api package
* fix load state
* add scroll view to tabs
* fix overflow on mobile web
* Add self-label modal
* Use the shield-exclamation icon consistently on post moderation
* Wire up self-labeling
* Bump @atproto/api@0.6.0
* Bump @atproto/dev-env@^0.2.3
* Add e2e test for self-labeling
* Fix types