* ✨ 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 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
* 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
* Use a post and handle-resolution cache to enable quick postthread loading
* Fix positioning of thread when loaded from cache and give more visual cues
* Include parent posts in cache
* Include notifications in cache
* 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`
* 💄 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>
* add TimeElapsed util component, integrate into PostThreadItem
* integrate into posts
* use consistent naming
* use mobx and single interval for TimeElapsed
* Fix cursor not being a pointer on profile back button
* Change TouchableOpacity to Pressable
* switch back to TouchableWithoutFeedback
---------
Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
* Fix: use more reliable navigation method
* Fix: show lightbox over the active modal
* Fix: close the profile preview on navigation
* Factor out UserPreviewLink and add preview behavior to notifications
* Fix postmeta overflow on web
* Fix lint
* Update postmeta to put the timestamp on the right side on mobile
* Drop the two-line PostMeta mode
* Add ProfilePreview modal
* Tune PostMeta to give the best behavior possible for a given platform
* Remove old showFollowBtn attributes
* Fix style issue
* Switch the follow button in the profile header to use the inverted color for consistency with the rest of the app
* Fix lint
* Fix darkmode
* Tune the profile preview footer
* Better analytics choice
* use Touchables from react-native-gesture-handler
* upgrade `react-native-gesture-handler` to latest version
* add FixedTouchableHighlight for android
* add workaround comment
* wait for animations to complete before loading data
* downgrade RNGH back to the version we had
* Replace the ImageHider blurring effect with a simpler and more reliable card
* A few improvements to ImageHider layout
* Simplify the ImageHider a bit more
* Small web layout tweak
* Clarify hate-group moderation as it's currently used
* Update src/lib/labeling/const.ts
Co-authored-by: Emily Liu <emilyliu7321@gmail.com>
---------
Co-authored-by: Ansh <anshnanda10@gmail.com>
Co-authored-by: Emily Liu <emilyliu7321@gmail.com>
* Fix composer character-counter bouncing around UI elements
* Fix composer toolbar padding when keyboard is dismissed on iOS
* Use the full name of the language in the composer footer
* Add headings to the DropdownButton
* Update the composer language control to use a simpler dropdown
* Fix lint
* Add translate link to Post component used in notifications
* Fix lint
* Add the new zendesk feedback form URL
* Dont wrap handle or display name in the drawer
* Add help link
* Tune drawer footer layout
* Type fixes
* make helpdesk urls more composable for future
* fix typo
---------
Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
* Added instructions for .well-known method
* Factor out SelectableBtn
* Rework the ChangeHandle modal to be a little clearer
* Fix lint
* Fix desktop layout
---------
Co-authored-by: Haider Ali Punjabi <haiderali@cyberservices.com>
Co-authored-by: Haider Ali Punjabi <haideralipunjabi@hackesta.org>
* Add alt text validation option to user preferences
* Fix typos/linting issues
* Update accessibility setting to match styles
* Update the required alt text reminder to go away once it's added
---------
Co-authored-by: Emma Fuller <emma@emmafuller.dev>
* Fix: include alt text on the web lightbox image
* a11y: Dont read the 'ALT' label
* a11y: remove a wrapper behavior from posts
This appears to have been introduced with the goal of creating meta
actions on posts, but the behavior seems counter-productive. The
accessibility inspector was unable to access individual items within
the post and therefore most content was simply skipped.
There may be a way to support the post actions without losing the
ability to access the inner elements but I couldnt find it. -prf
* a11y: apply alt tags to image wrappers so they get read
* a11y: set Link accessibilityLabel to the title if none set
* a11y: skip the SANDBOX watermark
* a11y: improve post meta to not read UI and give a useful date
* ally: improve post controls
* a11y: add labels to lightbox images on mobile
* fix types
* catch permission errors when saving image to album
* Save photos to media library alone (not an album)
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* add separate scroll up/down thresholds to prevent rapid state changes
* set `DY_LIMIT_DOWN` to 150
* Use a different scroll dy limit on web/mobile
---------
Co-authored-by: Sehyun Chung <sehyun.chung@icloud.com>
* Add locale helpers for narrowing languages
* Add a translate link to posts in a different language
* Update language filtering to use narrowing when multiple declared
* Fix a few more RTL layout cases
* Fix types
* Fix: enable font scaling in the composer text input
* Fix: cancel button in search no longer wraps
* Fix: report modals no longer clip off the bottom with scaled fonts
* Fix scrolling on android
* Allow wrapping in dropdown items until we can handle proper sizing
* export track function from analytics.tsx
* fix create account tracking
* fix tracking sign in
* add custom feed events
* fix type errors
* refactor create post event
* add profile follow & unfollow events
* refactor PostsFeedSliceModel into its own file
* refactor PostThreadItemModel into its own file
* reorganize code a lil bit
* refactor post-thread-item to use post-feed-item model under the hood
* add post events
* add post reply tracking
* track custom feed load more
* track list subscribe and unsubscribe
* 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>
* fix desktop window size
* fix desktop window size
* add listener for resize events
* fix when going from mobile to web
* only add eventListener for web
* allow user to add text when reporting post
* add DMCA override
* increase modal size
* fix dark mode text color
* re-organize components
* add details option when reporting account
* hard-code modal size so it works on smaller devices
* fix modal on web
* Remove outline from textarea focus
* Tweak some styles
* Fix lint
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* add 1000ms fallbackToCacheTimeout
* add listener via useOTAUpdate hook and show modal if update is available
* finish expo-updates setup
* setup useOTAUpdate hook
* add 1000ms fallbackToCacheTimeout
* add listener via useOTAUpdate hook and show modal if update is available
* finish expo-updates setup
* setup useOTAUpdate hook
* add OTA updates
* Update build.md
* temporarily disable ota updates
* refactor useOTAUpdate code
* Move suggested follow recommendations to the server
* fix search results color in dark mode
---------
Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
* Remove extraneous custom-feed health check
* Fixes to custom feed preference sync
* Fix lint
* Remove dead code (client-side suggested posts constructor)
* Enforce the feed-fetch limit in the client if the generator fails to observe the parameter
* Bump the number of items fetched in the multifeed per feed from 5 to 10
* Reset the currently active feed when the pinned feeds change
* Some fixes to icons
* Add a prompt to load latest to the multifeed
* Remove debug
* Remove extraneous custom-feed health check
* Fixes to custom feed preference sync
* Fix lint
* Fix to how preferences are synced to enable membership modifications