* feed items
* update some more
* moar
* profile card
* composer and notifications
* settings screen
* remove border from first item in feeds
* remove border from first item in feeds
* more removal of top border
* fix flatlist rendering
* oops
* scroll to top fab
* a.border
* centeredview/list
* placeholder
* web sidebar
* search posts
* feeds list
* user lists
* list header
* account list width 1
* hide top border feedgens
* same for lists
* fix tab bar web desktop
* wait...
* show the border on desktop web
* fix lists
* fix lists
* round
* alf the repost dropdown on web + import icons
* alf like icon
* convert other post controls
* add missing padding to share button
* refine buttons and use better icons
* revert buttonicon changes
* remove ButtonIcon and ButtonText from repost dialog
* use 15px font size when not big
* reduce size and use contrast_25
* add hover state to logged out view
* add `userSelect: 'none'` to buttons
* use width rather than height
* fix quote close behaviour
* prettier
* Fix Esc on repost
* Use new icons for placeholder
* Fix placeholder
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Revise FeedSourceCard load state to allow deletion for failures
* Translate
* Remove test error feed
* Fix missing uri param
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Optimisticaly update order of saved feeds
* Better show disabled state for pin button
* Improve loading/disabled states
* Improve placeholder
* Simplify loading components
* Add lists screen
* Update Lists screen and List create/edit modal to support curate lists
* Rework the ProfileList screen and add curatelist support
* More ProfileList progress
* Update list modals
* Rename mutelists to modlists
* Layout updates/fixes
* More layout fixes
* Modal fixes
* List list screen updates
* Update feed page to give more info
* Layout fixes to ListAddUser modal
* Layout fixes to FlatList and Feed on desktop
* Layout fix to LoadLatestBtn on Web
* Handle did resolution before showing the ProfileList screen
* Rename the CustomFeed routes to ProfileFeed for consistency
* Fix layout issues with the pager and feeds
* Factor out some common code
* Fix UIs for mobile
* Fix user list rendering
* Fix: dont bubble custom feed errors in the merge feed
* Refactor feed models to reduce usage of the SavedFeeds model
* Replace CustomFeedModel with FeedSourceModel which abstracts feed-generators and lists
* Add the ability to pin lists
* Add pinned lists to mobile
* Remove dead code
* Rework the ProfileScreenHeader to create more real-estate for action buttons
* Improve layout behavior on web mobile breakpoints
* Refactor feed & list pages to use new Tabs layout component
* Refactor to ProfileSubpageHeader
* Implement modlist block and mute
* Switch to new api and just modify state on modlist actions
* Fix some UI overflows
* Fix: dont show edit buttons on lists you dont own
* Fix alignment issue on long titles
* Improve loading and error states for feeds & lists
* Update list dropdown icons for ios
* Fetch feed display names in the mergefeed
* Improve rendering off offline feeds in the feed-listing page
* Update Feeds listing UI to react to changes in saved/pinned state
* Refresh list and feed on posts tab press
* Fix pinned feed ordering UI
* Fixes to list pinning
* Remove view=simple qp
* Add list to feed tuners
* Render richtext
* Add list href
* Add 'view avatar'
* Remove unused import
* Fix missing import
* Correctly reflect block by list state
* Replace the <Tabs> component with the more effective <PagerWithHeader> component
* Improve the responsiveness of the PagerWithHeader
* Fix visual jank in the feed loading state
* Improve performance of the PagerWithHeader
* Fix a case that would cause the header to animate too aggressively
* Add the ability to scroll to top by tapping the selected tab
* Fix unit test runner
* Update modlists test
* Add curatelist tests
* Fix: remove link behavior in ListAddUser modal
* Fix some layout jank in the PagerWithHeader on iOS
* Simplify ListItems header rendering
* Wait for the appview to recognize the list before proceeding with list creation
* Fix glitch in the onPageSelecting index of the Pager
* Fix until()
* Copy fix
Co-authored-by: Eric Bailey <git@esb.lol>
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* 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>
* 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>
* Get home screen's swipable pager working with the drawer
* Add tab bar to pager
* Implement popular & following views on home screen
* Visual tune-up
* Move the feed selector to the footer
* Fix to 'new posts' poll
* Add the view header as a feed item
* Use the native driver on the tabbar indicator to improve perf
* Reduce home polling to the currently active page; also reuse some code
* Add soft reset on tap selected in tab bar
* Remove explicit 'onboarding' flow
* Choose good stuff based on service
* Add foaf-based follow discovery
* Fall back to who to follow
* Fix backgrounds
* Switch to the off-spec goodstuff route
* 1.8
* Fix for dev & staging
* Swap the tab bar items and rename suggested to what's hot
* Go to whats-hot by default if you have no follows
* Implement pager and tabbar for desktop web
* Pin deps to make expo happy
* Add language filtering to goodstuff
* Update to RN 71.1.0 (#100)
* Update to RN 71
* Adds missing lint plugin
* Add missing native changes
* Bump @atproto/api@0.0.7 (#112)
* Image not loading on swipe (#114)
* Adds prefetching to images
* Adds image prefetch
* bugfix for images not showing on swipe
* Fixes prefetch bug
* Update src/view/com/util/PostEmbeds.tsx
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Fixes to session management (#117)
* Update session-management to solve incorrectly dropped sessions
* Reset the nav on account switch
* Reset the feed on me.load()
* Update tests to reflect new account-switching behavior
* Increase max image resolutions and sizes (#118)
* Slightly increase the hitslop for post controls
* Fix character counter color in dark mode
* Update login to use new session.create api, which enables email login (close#93) (#119)
* Replaces the alert with dropdown for profile image and banner (#123)
* replaces the alert with dropdown for profile image and banner
* lint
* Fix to ordering of images in the embed grid (#121)
* Add explicit link-embed controls to the composer (#120)
* Add explicit link-embed controls
* Update the target rez/size of link embed thumbs
* Remove the alert before publishing without a link card
* [Draft] Fixes image failing on reupload issue (#128)
* Fixes image failing on reupload issue
* Use tmp folder instead of documents
* lint
* Image performance improvements (#126)
* Switch out most images for FastImage
* Add image loading placeholders
* Fix tests
* Collection of fixes to list rendering (#127)
* Fix bug that caused endless spinners in profile feeds
* Bundle fetches of suggested actors into one update
* Fixes to suggested follow rendering
* Fix missing replacement of flex:1 to height:100
* Fixes to navigation swipes (#129)
* Nav swipe: increase the distance traveled in response to gesture movement.
This causes swipes to feel faster and more responsive.
* Fix: fully clamp the swipe against the edge
* Improve the performance of swipes by skipping the interaction manager
* Adds dark mode to the edit screen (#130)
* Adds dark mode to edit screen
* lint
* lint
* lint
* Reduce render cost of post controls and improve perceived responsiveness (#132)
* Move post control animations into conditional render and increase perceived responsiveness
* Remove log
* Adds dark mode to the dropdown (#131)
* Adds dark mode to the bottom sheet
* Make background button lighter (like before)
* lint
* Fix bug in lightbox rendering (#133)
* Fix layout in onboarding to not overflow the footer
* Configure feed FlatList (removeClippedSubviews=true) to improve scroll performance (#136)
* Disable like/repost animations to see if theyre causing #135 (#137)
* Composer: mention tagging now works in middle of text (close#105) (#139)
* Implement account deletion (#141)
* Fix photo & camera permission management (#140)
* Check photo & camera perms and alert the user if not available (close#64)
- Adds perms checks with a prompt to update settings if needed
- Moves initial access of photos in the composer so that the initial prompt
occurs at an intuitive time.
* Add react-native-permissions test mock
* Fix issue causing multiple access requests
* Use longer var names
* Update podfile.lock
* Lint fix
* Move photo perm request in composer to the gallery btn instead of when the carousel is opened
* Adds more tracking all around the app (#142)
* Adds more tracking all around the app
* more events
* lint
* using better analytics naming
* missed file
* more fixes
* Calculate image aspect ratio on load (#146)
* Calculate image aspect ratio on load
* Move aspect ratio bounds to constants
* Adds detox testing and instructions (#147)
* Adds detox testing and instructions
* lint
* lint
* Error cleanup (close#79) (#148)
* Avoid surfacing errors to the user when it's not critical
* Remove now-unused GetAssertionsView
* Apply cleanError() consistently
* Give a better error message for Upstream Failures (http status 502)
* Hide errors in notifications because they're not useful
* More e2e tests (create account) (#150)
* Adds respots under the 'post' tab under profile (#158)
* Adds dark mode to delete account screen (#159)
* 87 dark mode edit profile (#162)
* Adds dark mode to delete account screen
* Adds one more missed darkmode
* more fixes
* Remove fallback gradient on external links without thumbs (#164)
* Remove fallback gradient on external links without thumbs
* Remove fallback gradient on external links without thumbs in the composer preview
* Fix refresh behavior around a series of models (repost, graph, vote) (#163)
* Fix refresh behavior around a series of models (repost, graph, vote)
* Fix cursor behavior in reposted-by view
* Fixes issue where retrying on image upload fails (#166)
* Fixes issue where retrying on image upload fails
* Lint, longer test time
* Longer waitfor time in tests
* even longer timeout
* longer timeout
* missed file
* Update src/view/com/composer/ComposePost.tsx
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Update src/view/com/composer/ComposePost.tsx
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* 154 cached image profile (#167)
* Fixes issue where retrying on image upload fails
* Lint, longer test time
* Longer waitfor time in tests
* even longer timeout
* longer timeout
* missed file
* Fixes image cache error on second try for profile screen
* lint
* lint
* lint
* Refactor session management to use a new "Agent" API (#165)
* Add the atp-agent implementation (temporarily in this repo)
* Rewrite all session & API management to use the new atp-agent
* Update tests for the atp-agent refactor
* Refactor management of session-related state. Includes:
- More careful management of when state is cleared or fetched
- Debug logging to help trace future issues
- Clearer APIs overall
* Bubble session-expiration events to the user and display a toast to explain
* Switch to the new @atproto/api@0.1.0
* Minor aesthetic cleanup in SessionModel
* Wire up ReportAccount and ReportPost (#168)
* Fixes embeds for youtube channels (#169)
* Bump app ios version to 1.1 (needed after app store submission)
* Fix potential issues with promise guards when an error occurs (#170)
* Refactor models to use bundleAsync and lock regions (#171)
* Fix to an edge case with feed re-ordering for threads (#172)
* 151 fix youtube channel embed (#173)
* Fixes embeds for youtube channels
* Tests for youtube extract meta
* lint
* Add 'doesnt use non-exempt encryption' to ios config
* Rework the search UI and add (#174)
* Add search tab and move icon to footer
* Remove subtitles from view header
* Remove unused code
* Clean up UI of search screen
* Search: give better user feedback to UI state and add a cancel button
* Add WhoToFollow section to search
* Add a temporary SuggestedPosts solution using the patented 'bsky team algo'
* Trigger reload of suggested content in search on open
* Wait five min between reloading discovery content
* Reduce weight of solid search icon in footer
* Fix lint
* Fix tests
* 151 feat youtube embed iframe (#176)
* youtube embed iframe temp commit
* Fixes styling and code cleanup
* lint
* Now clicking between the pause and settings button doesn't trigger the parent
* use modest branding (less yt logos)
* Stop playing the video once there's a navigation event
* Make sure the iframe is unmounted on any navigation event
* fixes tests
* lint
* Add scroll-to-top for all screens (#177)
* Adds hardcoded suggested list (#178)
* Adds hardcoded suggested list
* Update suggested-actors-view to support page sizes smaller than the hardcoded list
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* more robust centering of the play button (#181)
Co-authored-by: Aryan Goharzad <arrygoo@gmail.com>
* Bundle of UI modifications (#175)
* Adjust visual balance of SuggestedPosts and WhoToFollow
* Fix bug in the discovery load trigger
* Adjust search header aesthetic and have it scroll away
* More visual balance tweaks on the search page
* Even more visual balance tweaks on the search page
* Hide the footer on scroll in search
* Ditch the composer prompt buttons in the home feed
* Center the view header title
* Hide header on scroll on the home feed
* Fix e2e tests
* Fix home feed positioning (closes#189) (#195)
* Fix home feed positioning for floating header
* Fix positioning of errors in home feed
* Fix lint
* Don't show new-content notification for reposts (close#179) (#197)
* Show the splash screen during session resumption (close#186) (#199)
* Fix to suggested follows: chunk the hardcoded fetches to 25 at a time (close#196) (#198)
* UI updates to the floating action button (#201)
* Update FAB to use a plus icon and not drop shadow
* Update FAB positioning to be more consistent in different shell modes
* Animate the FAB's repositioning
* Remove the 'loading' placeholder from images as it degraded feed perf (#202)
* Remove the 'loading' placeholder from images as it degraded feed perf
* Remove references
* Fix RN bug that causes home feed not to load more; also fix home feed load view. (#208)
RN has a bug where rendering a flatlist with an empty array appears to break its
virtual list windowing behaviors. See https://stackoverflow.com/a/67873596
* Only give the loading spinner on the home feed during PTR (#207)
(cherry picked from commit b7a5da12fdfacef74873b5cf6d75f20d259bde0e)
* Implement our own lifecycle tracking to ensure it never fires while the app is backgrounded (close#193) (#211)
* Push notification fixes (#210)
* Fix to when screen analytics events are firing
* Fix: dont trigger update state when backgrounded
* Small fix to notifee API usage
* Fix: properly load notification info for push card
* Add feedback link to main menu (close#191) (#212)
* Add "follows you" information and sync follow state between views (#215)
* Bump @atproto/api@0.1.2 and update API usage
* Add 'follows you' pill to profile header (close#110)
* Add 'follows you' to followers and follows (close#103)
* Update reposted-by and liked-by views to use the same components as followers and following
* Create a local follows cache MyFollowsModel to keep views in sync (close#205)
* Add incremental hydration to the MyFollows model
* Fix tests
* Update deps
* Fix lint
* Fix to paginated fetches
* Fix reference
* Fix potential state-desync issue
* Fixes to notifications (#216)
* Improve push-notification for follows
* Refresh notifications on screen open (close#214)
* Avoid showing loader more than needed in post threads
* Refactor notification polling to handle view-state more effectively
* Delete a bunch of tests taht werent adding value
* Remove the accounts integration test; we'll use the e2e test instead
* Load latest in notifications when the screen is open rather than full refresh
* Randomize hard-coded suggested follows (#226)
* Ensure follows are loaded before filtering hardcoded suggestions
* Randomize hard-coded suggested profiles (close#219)
* Sanitizes posts on publish and render (#217)
* Sanatizes posts on publish and render
* lint
* lint and added sanitize to thread view as well
* adjusts indices based on replaced text
* Woops, fixes a bug
* bugfix + cleanup
* comment
* lint
* move sanitize text to later in the flow
* undo changes to compose post
* Add RichText library building upon the sanitizePost library method
* Add lodash.clonedeep dep
* Switch to RichText processing on record load & render
* Fix lint
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* A group of notifications fixes (#227)
* Fix: don't group together notifications that can't visually be grouped (close#221)
* Mark all notifications read on PTR
* Small optimization: useCallback and useMemo in posts feed
* Add loading spinner to footer of notifications (close#222)
* Fix to scrolling to posts within a thread (#228)
* Fix: render the entire thread at start so that scrollToIndex works always (close#270)
* Visual fixes to thread 'load more'
* A few small perf improvements to thread rendering
* Fix lint
* 1.2
* Remove unused logger lib
* Remove state-mock
* Type fixes
* Reorganize the folder structure for lib and switch to typescript path aliases
* Move build-flags into lib
* Move to the state path alias
* Add view path alias
* Fix lint
* iOS build fixes
* Wrap analytics in native/web splitter and re-enable in all view code
* Add web version of react-native-webview
* Add web split for version number
* Fix BlurView import for web
* Add web split for fastimage
* Create web split for permissions lib
* Fix for web high priority images
---------
Co-authored-by: Aryan Goharzad <arrygoo@gmail.com>
* Rework 'navIdx' variables from number arrays to strings to avoid equality-check failures in react hooks
* Resolve all remaining lint issues
* Fix tests
* Use node v18 in gh action test
* Increase left margin on feed and embiggen avis
* Decrease feed margins a bit
* Tweak post bottom margin
* Update loading placeholder to match feed
* Update 'view full thread' positioning
* Update postthread to match feed layout
* Update notifications and individual post to match new layout
* Add missing aborted check
* Add theming system
* Add standard Button control and update RadioButtons
* Unify radiobutton with design system
* Update debug screen to have multiple views
* Add ToggleButton
* Update error controls to use design system
* Add typography to <Text> element
* Move DropdownButton into the design system
* Clean out old code
* Move Text into design system
* Add 'inverted' color palette
* Move LoadingPlaceholder into the design system