* 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>
* Remove cropped area in Edit profile screen iOS
* Hide cancel button when saving changes in EditProfile
* Disable fadeOut animation cancel button for web in EditProfile screen
Since react-native-reanimated is not configured for web support (https://docs.swmansion.com/react-native-reanimated/docs/2.x/fundamentals/web-support/), we are enabling fade out animation for iOS and android solely
* Copypaste UserAvatar to EditableUserAvatar
* Swap usages with onSelectNewAvatar to EditableUserAvatar
* Split prop types into UserAvatarProps and EditableUserAvatarProps
* Remove dead branches from EditableUserAvatar
* Remove dead branches from UserAvatar
* Add top inset for profile preview to match target screen
* Avoid flicker by waiting for profile screen navigation
* Fix glimmer to align with the content
* A more reliable (but non-scientific) fix for the flash
* Lower the timeout
* 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>
* quick switch menu
* Some small tweaks and fixes to the account switch modal
* Factor out the account switcher logic to a hook
* Add haptic feedback on account switcher open
* Fix bad merge
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Prefilter the mergefeed to ensure a better mix of following and custom feeds
* Test suite improvements & tests for the mergefeed (#1499)
* Disable invite codes test for now
* Update test sim to latest iphone
* Introduce TestCtrls driver
* Add mergefeed tests
* 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 most responsive queries to the hook
* Fix invalid CSS value
* Fixes to tablet render of post thread
* Fix overflow issues on web
* Fix search header on tablet
* Fix QP margin in web composer
* Fix: only apply double gutter once to flatlist (close#1368)
* Fix styles on discover feeds header
* Fix double discover links in multifeed
* 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
* allow toggling off/on multiple from main composer lang menu
* fix dropdown styles for long labels
* udpate model to use new string field
* update language UI
* save langs to history on submit
* remove edit
* clean up use new fields
* default to deviceLocales
* fix default valu
* feedback
* use radio icon
* Don't insert a newline on cmd+entrl (close#1173)
* Don't linkify selected text on url-paste (close#1149)
* Disable the adult content controls if there is no media on the post (close#1169)
* ✨ Repupose report post modal and re-use for list reporting
* ✨ Allow reporting a feed generator
* ✨♻️ Refactor report modal into one shared component for reporting different collections
* ✅ Adjust report option selector in tests
* ✅ Add test for list reporting
* ♻️✨ Refactor reason options and add options for list and feedgen
* 🧹 Cleanup remaining todo
* Fix to mutelist react keys
* Fix regression from rebase
* Improve customfeed mobile header
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* 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
* First pass moving to the new labeling sdk (it compiles)
* Correct behaviors around interpreting label moderation
* Improve moderation state rendering
* Improve hiders and alerts
* Improve handling of mutes
* Improve profile warnings
* Add profile blurring to profile header
* Add blocks to test cases
* Render labels on profile cards, do not filter
* Filter profiles from suggestions using moderation
* Apply profile blurring to ProfileCard
* Handle blocked and deleted quote posts
* Temporarily translate content filtering settings to new labels
* Fix types
* Tune ContentHider & PostHider click targets
* Put a warning on profilecard label pills
* Fix screenhider learnmore link on mobile
* Enforce no-override on user avatar
* Dont enumerate profile blur-media labels in alerts
* Fixes to muted posts (esp quotes of muted users)
* Fixes to account/profile warnings
* Bump @atproto/api@0.5.0
* Bump @atproto/api@0.5.1
* Fix tests
* 1.43
* Remove log
* Bump @atproto/api@0.5.2
* 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
* 💄 Hide Add to List option on own profile
* ✨ Remove Lists tab when last list is removed
* ✨ Add listener to list delete on profile screen
* ✨ Only show save changes in list modal when changes are made
* Update profile link construction to support handle.invalid
* Update list links to support using handles
* Use did for isMe check to ensure invalid handles dont distort the check
* Shift the red (error) colors away from the pink spectrum
* Add ThemedText helper component
* Add sanitizedHandle() helper to render invalid handles well
* Fix regression: only show avatar in PostMeta when needed
* Restore the color of likes
* Remove users with invalid handles from default autosuggests
* add comments to step 1-3
* add onboarding screen
* add analytics for onboarding tracking
* fix useEffect
* change text
* change icon size
* put onboarding into bottom sheet modal instead of react navigation
* wip
* Simplify the type validation
* Fix: only trigger onboarding modal when account creation succeeds
* Add the 'session-ready' event which fires when the new session is stable
* Use the 'session-ready' event to trigger the onboarding modal
* update copy
* update copy
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>