* Add deactivated-account tracking
* Center button text
* Add Deactivated screen
* Add icon to Deactivated screen
* Abort session resumption if the session is deactivated
* Implement deactivated screen status checks
* Bump api@0.9.5
* Use new typo-fixed scope
* UI refinements
* Rip out virtualization on the web
* Screw around with layout
* onEndReached
* scrollToOffset
* Fix background
* onScroll
* Shell bars
* More scroll
* Fixes
* position: sticky
* Clean up 1
* Clean up 2
* Undo PagerWithHeader changes and fork it
* Trim down both versions
* Cleanup 3
* Memoize, lint
* Don't scroll away modal or lightbox
* Add content-visibility for rows
* Fix composer
* Fix types
* Fix borked scroll animation
* Fixes to layout
* More FlatList parity
* Layout fixes
* Fix more layout
* More layout
* More layouts
* Fix profile layout
* Remove onScroll
* Display: none inactive pages
* Add an intermediate List component
* Fix type
* Add onScrolledDownChange
* Port pager to use onScrolledDownChange
* Fix on mobile
* Don't pass down onScroll (replacement TBD)
* Remove resetMainScroll
* Replace onMainScroll with MainScrollProvider
* Hook ScrollProvider to pager
* Fix the remaining special case
* Optimize a bit
* Enforce that onScroll cannot be passed
* Keep value updated even if no handler
* Also memo it
* Move the fork to List.web
* Add scroll handler
* Consolidate List props a bit
* More stuff
* Rm unused
* Simplify
* Make isScrolledDown work
* Oops
* Fixes
* Hook up context scroll handlers
* Scroll restore for tabs
* Route scroll restoration POC
* Fix some issues with restoration
* Remove bad idea
* Fix pager scroll restoration
* Undo accidental locale changes
* onContentSizeChange
* Scroll to post
* Better positioning
* Layout fixes
* Factor out navigation stuff
* Cleanup
* Oops
* Cleanup
* Fixes and types
* Naming etc
* Fix crash
* Match FL semantics
* Snap the header scroll on the web
* Add body scroll lock
* Scroll to top on search
* Fix types
* Typos
* Fix Safari overflow
* Fix search positioning
* Add border
* Patch react navigation
* Revert "Patch react navigation"
This reverts commit 62516ed9c20410d166e1582b43b656c819495ddc.
* fixes
* scroll
* scrollbar
* cleanup unrelated
* undo unrel
* flatter
* Fix css
* twk
* Add optional sms verification
* Add support link to account creation
* Add e2e tests
* Bump api@0.9.0
* Update lockfile
* Bump api@0.9.1
* Include the phone number in the ui
* Add phone number validation and normalization
* Install on native as well
* Add button and link components
* Comments
* Use new prop
* Add some form elements
* Add labels to input
* Fix line height, add suffix
* Date inputs
* Autofill styles
* Clean up InputDate types
* Improve types for InputText, value handling
* Enforce a11y props on buttons
* Add Dialog, Portal
* Dialog contents
* Native dialog
* Clean up
* Fix animations
* Improvements to web modal, exiting still broken
* Clean up dialog types
* Add Prompt, Dialog refinement, mobile refinement
* Integrate new design tokens, reorg storybook
* Button colors
* Dim mode
* Reorg
* Some styles
* Toggles
* Improve a11y
* Autosize dialog, handle max height, Dialog.ScrolLView not working
* Try to use BottomSheet's own APIs
* Scrollable dialogs
* Add web shadow
* Handle overscroll
* Styles
* Dialog text input
* Shadows
* Button focus states
* Button pressed states
* Gradient poc
* Gradient colors and hovers
* Add hrefAttrs to Link
* Some more a11y
* Toggle invalid states
* Update dialog descriptions for demo
* Icons
* WIP Toggle cleanup
* Refactor toggle to not rely on immediate children
* Make Toggle controlled
* Clean up Toggles storybook
* ToggleButton styles
* Improve a11y labels
* ToggleButton hover darkmode
* Some i18n
* Refactor input
* Allow extension of input
* Remove old input
* Improve icons, add CalendarDays
* Refactor DateField, web done
* Add label example
* Clean up old InputDate, DateField android, text area example
* Consistent imports
* Button context, icons
* Add todo
* Add closeAllDialogs control
* Alignment
* Expand color palette
* Hitslops, add shortcut to Storybook in dev
* Fix multiline on ios
* Mark dialog close button as unused
* add expo web browser + modal
* add in app browser option to settings
* don't show toggle on web
* Tweak browser-choice UIs
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* add apple music embed
* add vimeo embed
* add logic for tenor and giphy embeds
* keep it simple, use playerUri for images too
* add gif embed player
* lint, fix tests
* remove links that can't produce a thumb
* Revert "remove links that can't produce a thumb"
This reverts commit 985b92b4e622db936bb0c79fdf324099b9c8fcd8.
* Revert "Revert "remove links that can't produce a thumb""
This reverts commit 4895ded8b5120c4fc52b43ae85c9a01ea0b1a733.
* Revert "Revert "Revert "remove links that can't produce a thumb"""
This reverts commit 36d04b517ba5139e1639f2eda28d7f9aaa2dbfb6.
* properly obtain giphy metadata regardless of used url
* test fixes
* adjust gif player
* add all twitch embed types
* support m.youtube links
* few logic adjustments
* adjust spotify player height
* prefetch gif before showing
* use memory-disk cache policy on gifs
* use `disk` cachePolicy on ios - can't start/stop animation
* support pause/play on web
* onLoad fix
* remove extra pressable, add accessibility, fix scale issues
* improve size of embed
* add settings
* fix(?) settings
* add source to embed player params
* update tests
* better naming and settings options
* consent modal
* fix test id
* why is webstorm adding .tsx
* web modal
* simplify types
* adjust snap points
* remove unnecessary yt embed library. just use the webview always
* remove now useless WebGifStill 😭
* more type cleanup
* more type cleanup
* combine parse and prefs check in one memo
* improve dimensions of youtube shorts
* oops didn't commit the test 🫥
* add shorts as separate embed type
* fix up schema
* shorts modal
* hide gif details
* support localized spotify embeds
* more cleanup
* improve look and accessibility of gif embeds
* Update routing for the external embeds settings page
* Update and simplify the external embed preferences screen
* Update copy in embedconsent modal and add 'allow all' button
---------
Co-authored-by: Hailey <me@haileyok.com>
* Bump to react-native@0.73, bump expo@next
Includes bumps for all expo deps and dev dependencies. Updates
react-native patch and others, and removes the babel-preset-expo patch.
* Remove duplicate Splash ref
* Bump more deps
* Properly install expo-notifications
* Bump webview dep
* Bump packages according to expo fix; remove pager-view patch as it is no longer needed
* Don't access expo-camera from Web
* Fix crypto dep on web
* Fix some type issues
* Build esnext modules to support dynamic imports
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Implement embed player for YT, spotify, and twitch
* fix: handle blur event
* fix: use video dimensions for twitch
* fix: remove hack (?)
* fix: remove origin whitelist (?)
* fix: prevent ads from opening in browser
* fix: handle embeds that don't have a thumb
* feat: handle dark/light mode
* fix: ts warning
* fix: adjust height of no-thumb label
* fix: adjust height of no-thumb label
* fix: remove debug log, set collapsable to false for player view
* fix: fix dimensions "flash"
* chore: remove old youtube link test
* tests: add tests
* fix: thumbless embed position when loading
* fix: remove background from webview
* cleanup embeds (almost)
* more refactoring
- Use separate layers for player and overlay to prevent weird sizing issues
- Be sure the image is not visible under the player
- Clean up some
* cleanup styles
* parse youtube shorts urls
* remove debug
* add soundcloud tracks and sets (playlists)
* move logic into `ExternalLinkEmbed`
* border radius for yt player on native
* fix styling on web
* allow scrolling in webview on android
* remove unnecessary check
* autoplay yt on web
* fix tests after adding autoplay
* move `useNavigation` to top of component
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Enable PWI
* Disable access to feeds on PWI
* Remove feeds nav item from drawer when signed out
* Replace discover feed on home with a CTA
* Wire up the sign in and create account buttons to go straight to their respective screens
* Give a custom ScreenHider interface for no-pwi
* Add side borders on desktop to the screen hider
* Filter accounts in the autocomplete according to mod settings
* Trim replies in the post thread that are pwi opt-out
* Show 'learn more' on the content hider when no-override is enabled
* Apply the moderation filter on profile cards
* Disable post search on logged-out view
* Update locale files
* Bump api pkg
* Ensure feeds with no posts don't show as NSFPublic
* Fix types
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Add logged out e2e ctrl, fix login test
* Fix log handling via env vars in expo
* Fix create account test
* Upgrade dev-env
* Fix home screen tests
* Fix composer tests
* Fix curate-lists tests, split in two
* Fix invite codes test
* Fix curate-lists tests
* Give up on mergefeed test
* Fix mod lists
* Fix app view url
* Fix profile tests
* Fix profile test with hack
* Keep using globals
* Fix two more
* Fix thread view
* Better skip for merge feed
* Revert debug code
* Do no poll when screen is not focused
* Avoid polling unless focused
* Handle homepage in background
* Fix the intl:check to ignore comments in diffs
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Install lingui eslint plugin, ignore compiled files
* Add lingui step to Lint workflow
* Run check in other job
* Add compile step to web build
* Temp: add a new string to test with
* Add message
* Revert "Temp: add a new string to test with"
This reverts commit ef5459d00c3ea9798279e000a5ac43effc117486.
* Un-track compiled files
* Add check scripts to package.json, build step
* Make sure to compile translations prior to test/typecheck
* Rename scripts
* Unify the autocomplete code; drop fuse
* Persist autocomplete results while they're in progress
* Commit lockfile
* Use ReturnType helper
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* install and setup lingui
* setup dynamic locale activation and async loading
* first pass of automated replacement of text messages
* add some more documentaton
* fix nits
* add `es` and `hi`locales for testing purposes
* make accessibilityLabel localized
* compile and extract new messages
* fix merge conflicts
* fix eslint warning
* change instructions from sending email to opening PR
* fix comments
* 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>
* 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