* Update the ProfilePreview to use a swipe-up to navigate
* Use the profile cache to optimize load performance
* Hack to align the header in the profile preview against the screen view
* Fix profiles cache logic to ensure cache is used
* Fix dark mode on profile preview
* fix comments
* add zeego package
* get basic native dropdown working
* add separator and icon components
* refined native dropdown component
* add android build properties to app.json
* move `PostDropdownBtn` to its own component
* fix selectors issue
* move `PostDropdownBtn` to its own component
* fix hitslop
* fix post dropdown hitslop
* fix android dropdown icons
* move `UserAvatar.tsx` to native dropdown
* use native dropdown in `ProfileHeader.tsx`
* use native dropdown in `PostThreadItem.tsx`
* use native dropdown in `UserBanner.tsx`
* use native dropdown in `CustomFeed.tsx`
* replace `testId` with `testID` (which is what is used everywhere)
* move `Settings.tsx` to use native dropdown
* create jest mocks for zeego
* create jest mock for `zeego/dropdown-menu`
* web styles for native dropdown
* remove example native dropdown
* adjust web styles
* fix propagation
* fix pressable in `Settings.tsx`
* animate dropdown on web
* add keyboard nav and hover styles
* add hitslop to constants
* add comments to NativeDropdown component
* temporarily removed android icons
* add testID to PostDropdownBtn
* add testID back to all NativeDropdown button implementations
* add postDropdownBtn testID
* add testID to dropdown items
* remove testID from dropdown menu item
* refactor home-screen tests for native dropdown
* refactor profile-screen tests for native dropdown
* refactor thread-muting tests for native dropdown
* refactor thread-screen tests for native dropdown
* fix dropdown color for post dropdown button
* remove icons from android dropdown menu
* fix `create-account.test.ts`
* fix `invite-codes.test.ts`
* Add an image preview in the alt modal
* Composer: add info about alt text and a green checkmark when done
* Shrink the alt visual indicator a bit so it doesnt obscure the image
* Fix typo
* Fix: avoid requiring multiple tabs to save alt text
* update react-native-screens
* Improve the alt text help tip
* Remove redundant hints
---------
Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
* replace delete list button text with icon
* fix mute list styling on desktop
* add share button to nav bar on a list
* fix styling when on profile
* bug: add key to ImageHorzList
* clean up code & refactor
* fix styling for ListItems
* create a reusable ListActions component for actions on a list
* remove dead styles
* add keys to ListActions
* add helpers to set list embed
* render list embeds
* fix list sharing on web
* make style prop optional in ListCard
* update `@atproto/api` to `0.3.13`
* add SelectLangBtn
* memoized objects that are created to reduce re-creation on re-render
* add langs when uploading post
* only send the top 3 languages otherwise backend will throw error
* mv ContentLanguagesSettings to folder
* add post languages settings modal and state
* fix typos
* modify feed manip to also check langs label on post
* Fix tests
* Remove log
* Update feed-manip.ts
* Fix syntax errors
* UI tuneups
* Show the currently selected languages in the composer
* fix linting
* Use a bcp-47 matching function
* Fix a duplicate language issue
* Fix web
* Dont include lang in prompt
* Make select language btn an observer
* Keep device languages on top of language selection UIs
* Fix android build settings
* Enforce a max of 3 languages in posts
* Fix tests
* Fix types
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Update Reanimated API to v3
* Fix failing tests after updating Reanimated
* Include changes from package.json in Reanimated library to patch
* upgrade reanimated to 3.3.0
* remove patch
* upgrade bottom sheet
---------
Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
* Use proxy for fetching link meta
* Remove link meta test due to hitting proxy
* setup different staging and prod proxy URLs
---------
Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Add lists and profilelist screens
* Implement lists screen and lists-list in profiles
* Add empty states to the lists screen
* Switch (mostly) from blocklists to mutelists
* Rework: create a new moderation screen and move everything related under it
* Fix moderation screen on desktop web
* Tune the empty state code
* Change content moderation modal to content filtering
* Add CreateMuteList modal
* Implement mutelist creation
* Add lists listings
* Add the ability to create new mutelists
* Add 'add to list' tool
* Satisfy the hashtag hyphen haters
* Add update/delete/subscribe/unsubscribe to lists
* Show which list caused a mute
* Add list un/subscribe
* Add the mute override when viewing a profile's posts
* Update to latest backend
* Add simulation tests and tune some behaviors
* Fix lint
* Bump deps
* Fix list refresh after creation
* Mute list subscriptions -> Mute lists
* top-level Makefile
The primary motivation here is the `build-web` command, which calls the
yarn build and then also copies over JS files. The Dockerfile does this
and I always forget when doing it manually.
* build-web: cp bundles in yarn command, not Makefile+Dockerfile
* Add keyboard shortcuts: new, escape, and hard break
* Add preferences modal
* Remove code accidentally re-added due to rebase
* Fix incorrect copy and lint
* Put stuff back so diffs are clearer
* Re-add invite codes to settings
* Address comments
* Tune the copy
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* React Native accessibility
* First round of changes
* Latest update
* Checkpoint
* Wrap up
* Lint
* Remove unhelpful image hints
* Fix navigation
* Fix rebase and lint
* Mitigate an known issue with the password entry in login
* Fix composer dismiss
* Remove focus on input elements for web
* Remove i and npm
* pls work
* Remove stray declaration
* Regenerate yarn.lock
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* setup sentry
* add sentry to transformIgnorePatterns to fix jest issues
* update README with sourcemap instructions
* only enable integrations on native
* fix sentry web
* remove testing code
* fix sentry authToken
* Switch over to paul's auth tokens temporarily (lol)
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Quick fix to prompt
* Add blocked accounts screen
* Add blocking tools to profile
* Blur avis/banners of blocked users
* Factor blocking state into moderation dsl
* Filter post slices from the feed if any are hidden
* Handle various block UIs
* Filter in the client on blockedBy
* Implement block list
* Fix some copy
* Bump deps
* Fix lint
* Add ScreenHider component
* Add blur attribute to UserAvatar and UserBanner
* Remove dead suggested posts component and model
* Bump @atproto/api@0.2.10
* Rework moderation tooling to give a more precise DSL
* Add label mocks
* Apply finer grained moderation controls
* Refactor ProfileCard to just take the profile object
* Apply moderation to user listings and banner
* Apply moderation to notifications
* Fix lint
* Tune avatar & banner blur settings per platform
* 1.24
* Switch android to use slide left/right animations on navigation
* Bump the repost icon down by a pixel
* Tune theme colors for contrast and darker bg on darkmode
* Move back handler to a point in the init flow that leads to more consistent capture of events
* Fix image share flow on android
* Fix lint
* Add todo about sharing not available
* Drop the android slide animation because it's too slow
* Fix 'flashes of white' in dark mode android
* Add alt text support and rework image layout
* Add additional BottomSheet implementation to account for nested Composer modal
* Use mobile gallery layout on mobile web
* Missing key
* Fix lint
* Move altimage modal into the standard modal system
* Fix overflow wrapping of images
* Fixes to the alt-image modal
* Remove unnecessary switch
* Restore old imagelayoutgrid code
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* add isLikedPressed flag to disallow like counter out of sync
* create revertible helper for updateDataOptimistically
* test implementation
* Update updateDataOptimistically() and apply to reposts
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* add prebuild command to package.json
* add ProfileTab navigator and screen
* add prop to remove back button from profile
* fix MyProfileTabNavigatorParams type
* fix dep array for rendering ProfileHeader
* just added ts-ignore
* enable opening drawer in profile tab
* clean up useNavigationTabState
* clean up code
* fix hideBackButton code flow
* WIP
* WIP
* Fix header offset on web
* Remove debug
* Fix web mobile feed and FAB layout
* Fix modals on mobile web
* Remove dead code
* Remove ios config that shouldnt be committed now
* Move bottom bar into its own folder
* Fix web drawer navigation and state behaviors
* Remove dark mode toggle from web drawer for now
* Fix search on mobile web
* Fix the logged out splash screen on mobile web
* Fixes to detox simulator
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Rework notifications to sync locally in full and give users better control
* Fix positioning of load more btn on web
* Improve behavior of load more notifications btn
* Fix to post rendering
* Fix notification fetch abort condition
* Add start of post-hiding by labels
* Create a standard postcontainer and improve show/hide UI on posts
* Add content hiding to expanded post form
* Improve label rendering to give more context to users when appropriate
* Fix rendering bug
* Add user/profile labeling
* Implement content filtering preferences
* Filter notifications by content prefs
* Update test-pds config
* Bump deps
* add android & ios folders to .gitignore
* delete android and ios dirs
* fix android build errors
* fix status bar color
* fix top cutoff on composer in android
* fix weird whitespace issue in post
* fix greyed out header android
* fix main feed getting cut off android
* fix swiping on main feed
* fix profile tabs switching on android
* A few app.json config items for iOS
* Update app.json for bgfetch
* make swiping work on android
* make splash screen cover
* add eas.json
* fix image container on android
* fix android status bar color
* use expo-splash-screen instead of react-native-splash-screen
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Add mobile UIs for invite codes
* Update invite code UIs for web
* Finish implementing invite code behaviors (including notifications of invited users)
* Bump deps
* Update web right nav to use real data; also fix lint
* Fix: handle validation failures correctly in feed-view
* Fix: convert the off-spec feed view to lex objects
* Fix to fetching all follows during init
* Bump @atproto/api@0.2.1
* Fix: properly group together like notifications
* 1.12
* Remove the hackcheck for upgrades
* Rename the PostEmbeds folder to match the codebase style
* Updates to latest lex refactor
* Update to use new bsky agent
* Update to use api package's richtext library
* Switch to upsertProfile
* Add TextEncoder/TextDecoder polyfill
* Add Intl.Segmenter polyfill
* Update composer to calculate lengths by grapheme
* Fix detox
* Fix login in e2e
* Create account e2e passing
* Implement an e2e mocking framework
* Don't use private methods on mobx models as mobx can't track them
* Add tooling for e2e-specific builds and add e2e media-picker mock
* Add some tests and fix some bugs around profile editing
* Add shell tests
* Add home screen tests
* Add thread screen tests
* Add tests for other user profile screens
* Add search screen tests
* Implement profile imagery change tools and tests
* Update to new embed behaviors
* Add post tests
* Fix to profile-screen test
* Fix session resumption
* Update web composer to new api
* 1.11.0
* Fix pagination cursor parameters
* Add quote posts to notifications
* Fix embed layouts
* Remove youtube inline player and improve tap handling on link cards
* Reset minimal shell mode on all screen loads and feed swipes (close#299)
* Update podfile.lock
* Improve post notfound UI (close#366)
* Bump atproto packages
* Fix dark mode rendering of 'follows you' pill
* Fix the darkmode coloring of the PTR
* Fix dark mode styles in dns instructions
* Only lint the src dir