* add profile button
* separate out button to component
* normalise subscribe to labeller button size
* infinite staletime
* use Link rather than Button and change icon
* adjust icon position
* Revert "[🐴] Ensure keyboard gets dismissed when leaving screen (#4104)"
This reverts commit 3ca671d9aa.
* getting somewhere
* remove some now nuneeded code
* fully implement keyboard controller
* onStartReached check
* fix new messages pill alignment
* scroll to end on press
* simplify pill scroll logic
* update comment
* adjust logic on when to hide the pill
* fix backgrounding jank
* improve look of deleting messages
* add double tap on messages
* better onStartReached logic
* nit
* add hit slop to the gesture
* better gestures for press and hold
* nits
* remove type assertion
* DMs NUX
* delete button for testing
* tweak styles and copy
* rm log
* style tweaks
* reduce amount of words
* Fix not showing on first load
* Spacing tweaks
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Make feeds easier to reorder
* Add reorder e2e test
* Tweak feed card to only allow one line (#4002)
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* cleanup the current logic
* add statsig logs
* implement requests for permissions where needed
* oops
* let `addPushTokenListener` handle the token registration
* place new log event type with the other `notifications` type
* place registration next to handler
* more organization
* only call `gate()` if permission is not yet granted
* be more specific to prevent gate pollution
* nit
* make `token` non-optional in `registerToken`
* remove `prevDid`, move `registerPushToken` into `useEffect`
* keep it outside actually
* nit
* `flexShrink` on iOS and web
`flexShrink` on iOS and web
`flexShrink` on iOS and web
actually, `flexShrink`
use `flex`
* adjust web
* `expect-error` `onMouseUp`
* ignore ref type check
* download CAR file using AtpAgent instead of building URL
* add loader icon on download car button
* actually save to disk on android
* style nits
* bottom margin nit
* localize toast
* remove fallback so back button works correctly
* keep throwing an error if mime type isn't used
* be more explicit with toasts
* send errors to sentry when encountered
---------
Co-authored-by: Hailey <me@haileyok.com>
* Lower seen threshold to 1.5s
* Send feedContext for replies
* Use a simpler and more reliable feedContext fallback
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Handle home algo with backwards compat
* Remove todo, fix pwi view
* Simplify filter logic
* Handle edge case
* Handle home algo in FeedSourceCard
* Fix handling of pinned feed if home algo is disabled
* Handle home algo on ProfileFeed screen
* Rename
* Fix pinned feeds key
* Improve perf of pinned feeds with primary algo
* Update statsig API
* Revert unneeded changes
* Support following feed as well
* Better formatting
* Clarify primary algo usage
* Better comment
* Handle saved feed screen edge case
* Restore Feeds sparkle, fix line height
* Move gate call down
* Filter out primary algo from feeds page
* Filter dupe from Feeds screen
* Simplify logic
* Missing following handling
* Hide primary feed setting outside exp
* Revert testing change
* Migrate usePinnedFeedInfos
* Migrate FeedSourceCard
* Migrate Feeds screen
* Migrate SavedFeeds screen
* Handle timeline in feed infos
* Finish migrating ProfileFeed, FeedSourceCard
* Migrate ProfileList
* Finalize mutation hooks
* Allow unsaving lists
* Handle following feed on Feeds screen
* Handle following on SavedFeeds
* Get rid of deprecated interface usages
* Handle no pinned feeds
* Handle no feeds on Feeds screen
* Reuse component on SavedFeeds screen
* Handle no following feed
* Remove primary algo references
* Migrate to new plural APIs
* Remove unused event
* Prevent duplicate keys
* Make handling much more clear
* Dedupe useHeaderOffset
* Filter unknown feed types at source
* Use just following
* Immprove key handling
* Resume from last tab
* Bump sdk
* Revert Gemfile
* Additional protection in FeedSourceCard
* Fix ProfileList save/unsave handling
* Translate
* Translate
* Match existing handling post-signup
* Ensure onboarding results in correct selected feeds
* Some testing tweaks on create/onboarding
* Revert primary algo consderations
* Remove comment
* Handle default feed setting
* Rm unnecessary type cast
* Remove premature gate check
* Remove nullable check in onPageSelecting, assume the pager checks bounds
* Use null for default selected feed
* Rm unrelated change
* Remove the concept of __key__
I don't think this concept is consistent.
It's introduced on FeedSourceInfo which is used both by pinned feeds and by useFeedSourceInfoQuery. Pinned feeds use the pinning ID there. But there is no pinning ID for useFeedSourceInfoQuery. So this means this field is sometimes one thing and sometimes some other thing. That is a decent sign that it shouldn't be on that type at all.
It's not used anywhere except the desktop feed enumeration. It seems reasonable to assume there that we wouldn't want to show the same feed URL twice. (And if it does occur in the array twice, IMO we should solve that at the API level and dedupe it on read or next write.) So I think we should just use the URL in that place. (I used the descriptor, which is equivalent.)
* Dedupe pinned feeds by URL on read
* Filter timeline out of mergefeed sources
* Put FeedDescriptor into FeedSourceInfo
* Group saved info with feed for pins
This removes a loop within a loop within a loop.
* Fix Feeds link on native
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Swap for chat icon
* Replace icons in left nav
* Replace icons in bottom bars
* Ditch feeds, drop size
* Fine tune
* Swap bell icon, improve alignment and size
* add some better handling for notifications
prep merge
move `useNotificationsListener` into shell
progress
better structure
only show messages notifications while using app if it is the current account
progress
only emit on native
current chat emitter
only show alerts for the current chat
type
add logs
setup handlers
* remove event emitter
* just needs cleanup
* oops
* remove unnecessary `queryClient` param
* few fixes
* cleanup
* nit
* remove folds
* remove comment
* simplify if
* add back invalidate
* comment out other navigations for now
* rename type
* handle various navigation cases
* push to conversation from notification
* update badge in all cases except `chat-message`
* ensure no duplicate notifications
* rm unused `animationOnReplace`
* revert to using `goBack` in the conversation header
* add todo comment
* Remove logs and outdated comments
* Move side effect upwards
* Pull refreshedAccount next to usage
* Simplify account refresh logic
* Extract setupPublicAgentState()
* Collapse setStates into one
* Ignore events from stale agents
* Use agent from state
* Remove clearCurrentAccount
* Move state to a reducer
* Remove global agent
* Fix stale agent reference in create flow
* Proceed to onboarding even if setting date fails
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Implement onViewableItemsChanged on List.web.tsx
* Introduce onItemSeen to List API
* Add FeedFeedback tracker
* Add clickthrough interaction tracking
* Add engagement interaction tracking
* Reduce duplicate sends, introduce a flushAndReset to be triggered on refreshes, and modify the api design a bit
* Wire up SDK types and feedContext
* Avoid needless function allocations
* Fix schema usage
* Add show more / show less buttons
* Fix minor rendering issue on mobile menu
* Wire up sendInteractions()
* Fix logic error
* Fix: it's item not uri
* Update 'seen' to mean 3 seconds on-screen with some significant portion visible
* Fix non-reactive debounce
* Move methods out
* Use a WeakSet for deduping
* Reset timeout
* 3 -> 2 seconds
* Oopsie
* Throttle instead
* Fix divider
* Remove explicit flush calls
* Rm unused
---------
Co-authored-by: dan <dan.abramov@gmail.com>
* Replace pluralize with plural or Plural
* Replace all pluralize (defined by src/lib/strings/helpers.ts) with plural or Plural (defined by @lingui/macro) to make some UI elements translatable.
* Delete pluralize() and related test.
* Import @formatjs polyfill libraries for plural on ios and android
- ios and andorid: import `@formtjs/intl-locale` and `@formatjs/intl-pluralrules` to polyfill `Intl.Locale` and `Intl.PluralRules` which are used in `plural()` and '<Plural />'.
- update `plural` use in notification messages for better translation.
* Rewrite to pass lint
* Add Catalan plural polyfill
* more replacement
* import zh plural data for zh-CN
* Refactor feed header components (#2964)
* Move home-related files to view/com/home
* Add HomeHeader in front of FeedTabBar
* Move isDekstop check outside FeedsTabBar
* Remove PWI logic from tabbar
* Separate platform-specific layout from shared logic
* Rename Home Feed Prefs to Following Feed Prefs (#2965)
* use `useOpenLink` hook for links in ALF (#2975)
* use `useOpenLink` hook for links in ALF
* web only for `outline`
* increase timeout to 15s (#2958)
* Normalize relative day (#2874)
* fix: normalize relative date
* chore: add comments
* refactor: skip flooring normalized diff
* refactor: let -> const
* fix: get own copy of date to prevent mutating
* refactor: rounding does the same trick
* Add handle validation to create account UI (#2959)
* show uiState errors in the box as well
simplify copy
update ui for only letters and numbers
add ui validation to handle selection
* simplify names
* Fix accidental text-node render
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Make dim theme dim (#2966)
* Make dim color scheme dim
* Tweaks
* Overall tweaks
* We have to go darker
* Tweak saturation of blues in dim
* Increase contrast on dark-dark mode
* adjust dim
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
Co-authored-by: Hailey <me@haileyok.com>
* Fix dim mode unread notif color
* use `showControls` to show/hide live text icon on ios (#2982)
* Update .po files
* fix reversed icons in validator 🤦 (#2991)
* Adjust `windowSize` on `PostThread` `FlatList` (#2989)
* adjust window size, cells batching period
* rm batching period change
* Pluralize 'follow(s)'
* Include a space between the msgid count and "follower(s)/following(s)" so the translator can adjust the translated count line to fit within the Drawer.
* pluralie '# following'
* Fix & Update
* Rewrite to use Plural
* rmeove unused import
* When commiting changes, disable 'simple-import-sort' plugin in .eslintrc.js to sync with bluesky-social:main
* Revert simple-import-sort/imports related changes
* Move ProfileHoverCard web to plural util
* Followings -> following
* Add plural following to hovercard
* Followings -> Following
---------
Co-authored-by: Takayuki KUSANO <kusano@tkusano.jp>
Co-authored-by: Takayuki KUSANO <65759+tkusano@users.noreply.github.com>
Co-authored-by: dan <dan.abramov@gmail.com>
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com>
Co-authored-by: Eric Bailey <git@esb.lol>
* add alt text dialog
* multiline alt text input
* add pressable alt text badge
* rename `ALT: ` to `Alt text: ` to avoid including old bad ones
* reuse alt text reminder
* reuse alt text reminder in gallery
* add alt text reminder in the dialog itself
* autofocus text input
* reorder components to fix tab order
* fix close btn position
* add bundle identifiers to `app-info`
* add them to the `.env.example`
* add environment variables for docker build
* add environment variables for native builds and bundles
* also include the hour in bundle date
* organize app info better in settings
* empty state for new chat dialog
* use terniary
* dark mode pending state
* copy message text option
* fix service url input (scrollview ftw)
* whoops, fix equality
* slightly reduce horizontal message padding
* use real API
* remove extra tab icon
* messages list web layout + style improvements
* use style's text color for input
* make new chat button way more obvious
---------
Co-authored-by: Hailey <me@haileyok.com>
* add new routes with placeholder screens
* add clops list
* add a clop input
* add some better padding to the clops
* some more adjustments
* add rnkc
* implement rnkc
* implement rnkc
* be a little less weird about it
* rename clop stuff
* rename more clop
* one more
* add codegenerated lexicon
* replace hailey's types
* use codegen'd types in components
* fix error + throw if fetch failed
* remove bad imports
* update messageslist and messageitem
* import useState
* replace hailey's types
* use codegen'd types in components
* add FAB
* new chat dialog
* error + default search term
* fix typo
* fix web styles
* optimistically set chat data
* use cursor instead of last rev
* [Clipclops] Temp codegenerated lexicon (#3749)
* add codegenerated lexicon
* replace hailey's types
* use codegen'd types in components
* fix error + throw if fetch failed
* remove bad imports
* update messageslist and messageitem
* import useState
* add clop service URL hook
* add dm service url storage
* use context
* use context for service url (temp)
* remove log
* cleanup merge
* fix merge error
* disable hack
* sender-based message styles
* temporary filter
* merge cleanup
* add `hideBackButton`
* rm unneeded return
* tried to be smart
* hide go back button
* use `searchActorTypeahead` instead
---------
Co-authored-by: Hailey <me@haileyok.com>
* add new routes with placeholder screens
* add clops list
* add a clop input
* add some better padding to the clops
* some more adjustments
* add rnkc
* implement rnkc
* implement rnkc
* be a little less weird about it
* rename clop stuff
* rename more clop
* one more
* [Clipclops] Temp codegenerated lexicon (#3749)
* add codegenerated lexicon
* replace hailey's types
* use codegen'd types in components
* fix error + throw if fetch failed
* remove bad imports
* update messageslist and messageitem
* import useState
* add clop service URL hook
* add dm service url storage
* use context
* use context for service url (temp)
* remove log
* nits
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* Extract SearchHistory to a component
* Extract AutocompleteResults to a component
* Extract SearchInputBox to a component
* Add a bunch of memoization
* Optimize switching by rendering both
* Remove subdomain matching
This is only ever useful if you type it exactly correct. Search now does a better job anyway.
* Give recent search decent hitslops
* improve hit area of search text input
use text cursor on web
use a pressable instead
use a vertical padding of 9
oops
move vertical padding to `TextInput` to increase hit area
* Hide it from a11y tree, change cursor
* Hide clear on empty text
* Render either Clear or Cancel
* Remove Clear button
* Animate it
* Better animation
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Add optional momentum events to scroll context
* If there is a velocity, don't snap until momentum end
* Don't show bar on scroll down
* Rm onMomentumBegin
Revert "properly check if the ref is null"
This reverts commit 8f563808a5d39389b0bc47a31e73cd147d1e7e8b.
properly check if the ref is null
ensure dialog is closed on unmount
* dont select the text on web
* TODO REVERT THESE CHANGES
* use `usethrottledvalue` for autocomplete
* use `isFetching` from query
* rm setTimeout
* getting there
* improve functionality of cancel button
* rm todo
* add comment back
* encode `searchText` rather than `queryTerm`
* use "back" on web in some cases
* don't flash results in autocomplete
* remove unnecesary usestate
* rename everything to `query` temporarily
* revert accidental lint
* rm todo
* rm comment
* use `useFocusEffect` to update the query term on back navigation
* `searchText` is always defined here
* Fix race
* remove back functionality
* use `keepPreviousData` for query
* rename `q` to `queryParam`
* remove hack
* remove `q=` on cancel
* blur on submit
* use `setParams` instead of `replace`
* use `replace` on web still
* clear the search input when we clear `q` on native
* onPress dismiss attempt
* Adjustments
* Fix search history
* Always hide autocomplete
* Clear right pane search on select
* `blur` on autosuggestion press
* Rename to reduce diff
* Fixes
* Unify codepaths
* Fixes
* precache the autosuggestion
* do the cache in the link card
* Revert "precache the autosuggestion"
This reverts commit 79c433e984621ba4231a2a4c4b3f4690b0516b4d.
* use `throttledValue` and `keepPreviousData` in sidebar search
* show spinner when fetching pt 1
* show spinner when fetching pt 2
* show spinner properly for autocomplete
* Fix extra border
* Position fixed
* TS
* Revert "TS"
This reverts commit df187ea2d7a96d0f1832bc2392215f4d969a87c9.
* Revert "Position fixed"
This reverts commit 9c721c952b0fa4e5e4a23de38cab916ab13397e6.
* Maybe fix iPad
* Revert "TODO REVERT THESE CHANGES"
This reverts commit 279f717f3091c9df8c73ba35f9a038e12f5a1122.
* Rename var
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Fix link facet detection
Exclude the trailing period from the link, similar as done in the atproto package
* Fix JSON to text conversion
The trimEnd() call was only needed because we were always appending \n\n at the end. Fix that by only adding line breaks after non-final paragraphs.
* Detect paste reliably
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Add email 2fa toggle
* Add UI elements needed for 2fa codes in login
* Wire up to the server
* Give a better failure message for bad 2fa code
* Handle enter key in login form 2fa field
* Trim spaces
* Improve error message
* ios player
autoplay after recycle
remove all items from AVPlayer queue
recurururururursion
use managers in the view
add prefetch
make sure player items stay in order
add controller and item managers
start of the view
create module, ios
* android player
smoother
basic caching
prep cache
somewhat works
backup
other files
android impl
blegh
lets go
touchup
add prefetch to js
use caching
* bogus testing commit
* add dims to type
* save
* add the dimensions to the embed info
* add a new case
* add a new case
* limit this case to giphy
* use gate
* Revert "bogus testing commit"
This reverts commit b3c8751b71f7108de9aa843b22ded4e0249fa854.
* add web player base
* flip mp4/webp
* basic mp4 player for web
* move some stuff into `ExternalLinkEmbed` instead
* use a class component for web
* remove extra component
* add `onPlayerStateChange` event type on web
* layer properly
* fix tests
* add new test
* about ready. native portions done, a few touch ups on web needed
show placeholder on ios
fix type
rm log
display thumbnail until video is ready to play
add oncanplay, playsinline
remove unused method
add `isLoaded` change event
release player when finished
apply gc to the view
cleanup logs
android gc
rm log
automatic gc for assets
make `nativeRef` private
remove unnecessary `await`
cleanup
rev log
only play on prepare whenever needed
rm unused
perfperfperf
rm var
comment + android width
native height calculations
rm pressable
add event dispatcher on android
add event dispatcher on ios
* ready to test ios
fix autoplay ios
clean
oops
* autoplay on web
* normalize across all platforms
add check for `ALT:`
separate gif embed logic to another file
handle permissions requests
flatten web styles
normalize styles
normalize styles
prefetch functions
pause animatable on foreground android
nits
one more oops
idk where that code went
lint
rethink the usage
wrap up
android
clear bg
update gradle
more android
rename dir
update android namespace
web
ios
add deps
use webp
rm unused
update types
use webp on mobile
* rm gate from types
* remove unused event param
* only start placeholder op if doesn't exist in disk cache
* fix gifs animating on app resume android
* remove comment
* add `isLoaded` for ios
* add `isLoaded` to Android
* onload for web
* add visual loading state
* rm a log
* implement isloaded for android
* dialogs
* replace `webpSource` with `source`
* update prop name
* Move to Tenor for GIFs (#3654)
* update some urls
* right order for dimensions
* add GIF coder for ios
* remove giphy check
* rewrite tenor urls
* remove all the unnecessary stuff for consent
* rm print
* rm log
* check if id and filename are strings
* full size playback controls
* pass tests
* add accessibility to gifs
* use `onPlay` and `onPause`
* rm unused logic for description
* add accessibility label to the controls
* add gif into to external embed in composer
* make it optional
* gif dimensions
* make the jsx look nicer
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* error boundary on gif picker
* add dialog.close for web users
* fix size of dialog on web
* Safer coercion
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* add dims to type
* save
* add the dimensions to the embed info
* add a new case
* add a new case
* limit this case to giphy
* use gate
* flip mp4/webp
* fix tests
* add new test
* add autoplay preference
* group accessibility settings into a dedicated page
* fix gray background on web
* Put a11y first
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* create dialog with flatlist in it
* use alf for composer photos/camera/gif buttons
* add gif icons
* focus textinput on gif dialog close
* add giphy API + gif grid
* web support
* add consent confirmation
* track gif select
* desktop web consent styles
* use InlineLinkText instead of Link
* add error/loading state
* hide sideborders on web
* disable composer buttons where necessary
* skip cardyb and set thumbnail directly
* switch legacy analytics to statsig
* remove autoplay prop
* disable photo/gif buttons if external media is present
* memoize listmaybeplaceholder
* fix pagination
* don't set `value` of TextInput, clear via ref
* remove console.log
* close modal if press escape
* pass alt text in the description
* Fix typo
* Rm dialog
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* alignment
remove the unnecessary styles now
seriously?
flex-end everything
flex shrink
test
test
rm unneeded flex
flex the text
don't underline handle in post meta
* use `paddingLeft`
* use `paddingLeft` but with `4`
* Fix overflow color
* Use nbsp to make mobile work
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* automatically add a link card for urls in the composer
simplify was paste check
use a set
simplify the cross platform reuse
web implementation
remove log
pasting in the middle of a block of text
proper regex
dont re-add immediately after paste and remove
don't use `byteIndex`
lfg
automatically add link card
* `mayBePaste`
* remove accidentally pasted url from comment
* Handle leftnav overflow with longer languages' copy
* Update the language dropdown to set ALL language prefs
* Add hackfix to language cachebusting on PWI
* Reset feeds on language change
* fix: make app language picker tap region larger
* fix: add right padding on drawer signup card
noticeable on portuguese language
* fix: mimic hitSlop
* add embed option to post dropdown menu
* put embed post button behind a gate
* increase line height in dialog
* add gate to gate name union
* hide embed button if PWI optout
* Ungate embed button
* Escape HTML, align implementations
* Make dialog conditionally rendered
* Memoize EmbedDialog
* Render dialog lazily
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Right now both light mode and dark mode get light navigation bar, and
looks jarring in the dark modes.
This commit applies a more appropriate color before the UI thread
runs (in app config), as well as applying the current theme background
after the UI shell is mounted.
This should fix#3332.
Co-authored-by: Hailey <me@haileyok.com>
* feat: initial user card hover
* feat: flesh it out some more
* fix: initialize middlewares once
* chore: remove floating-ui react-native
* chore: clean up
* Update moderation apis, fix lint
* Refactor profile hover card to alf
* Clean up
* Debounce, fix positioning when loading
* Fix going away
* Close on all link presses
* Tweak styles
* Disable on mobile web
* cleanup some of the changes pt. 1
* cleanup some of the changes pt. 2
* cleanup some of the changes pt. 3
* cleanup some of the changes pt. 4
* Re-revert files
* Fix handle presentation
* Don't follow yourself, silly
* Collapsed notifications group
* ProfileCard
* Tree view replies
* Suggested follows
* Fix hover-back-on-card edge case
* Moar
---------
Co-authored-by: Mary <git@mary.my.id>
Co-authored-by: Hailey <me@haileyok.com>
* Enable home and feeds on the PWI
* Add global SigninDialog to drive useRequireAuth()
* Tweak desktop styles
* Make the logo in leftnav PWI a clickable home link
* Add label
* Improve dialog on web
* Fix query key
* Go to home after signout from settings screen
* Filter out feeds from the discover listing for logged out users which are known to break without auth
* Update profile header follow/subscribe to give signin prompt
* Show profile feeds tabs on pwi
* Add language selector to account creation footer and pwi left nav desktop
---------
Co-authored-by: dan <dan.abramov@gmail.com>
* fix dampen logic
prevent ghost presses
handle refreshes, animations, and clamps
handle most cases for cancelling the scroll animation
handle animations
save point
simplify
remove unnecessary context
readme
apply offset on pan
find the RCTScrollView
send props, add native gesture recognizer
get the react tag
wrap the profile in context
create module
* fix swiping to go back
* remove debug
* use `findNodeHandle`
* create an expo module view
* port most of it to expo modules
* finish most of expomodules impl
* experiments
* remove refresh ability for now
* remove rn module
* changes
* cleanup a few issues
allow swipe back gesture
clean up types
always run animation if the final offset is < 0
separate logic
update patch readme
get the `RCTRefreshControl` working nicely
* gate new header
* organize
* improve android haptics, offer toggle for haptics
* update haptics.ts
* default to false
* simplify to `playHaptic`
* just leave them as `feedInfo`
* use a hook for `playHaptic`
* missed one of them
* add extra tab to search and translate tab names
* add feature gate
* flatten pager children
* Revert "flatten pager children"
This reverts commit 0050d42558c2c9b7bc4f2ad2df4ae2908fa26f65.
* have pager children as array
* move gate to custom hook
* bundle titles and pages together
* remove comment
* Fix a crash
* Use Views as children
---------
Co-authored-by: dan <dan.abramov@gmail.com>
* Small logic cleanups
* Small logic cleanups (#3451)
* remove a few things
* oops
* stop swallowing the error
* queue callbacks
* oops
* log error if caught
* no need to be nullable
* move isClosing=true up
* reset `isClosing` and `closeCallbacks` on close completion and open
* run queued callbacks on `open` if there are any pending
* rm unnecessary ref and check
* ensure order of calls is always correct
* call `snapToIndex()` on open
* add tester to storybook
---------
Co-authored-by: Hailey <me@haileyok.com>
* uitextview use library w/ fixes
bump
bump
multiple uitextview fixes
* bump
* Open share sheet on link long press
* rm package manager field
* add link warning to longpress
---------
Co-authored-by: Hailey <me@haileyok.com>
* simplify list logic further
more simplification
simplify by removing `isEmpty`
use `isFetchingNextPage` everywhere for clarity
change `isFetching` to `isFetchingNextPage` for clarity
remove some useless `useMemo`s
move `renderItem` and `keyExtractor` out of component
* clean bundle size check
* update deploy
* adjust
* adjust
* one test
* try now
* test it
* done
* Use ALF for account quick switch
* clean up modal type
* add haptics to dialog opening
* move account list to it's own component and share
* make tick slightly darker
* some progress
another adjustment, testing
another adjustment, testing
fix again
fix again
set default runtime version
fix
test this script
test this script
test this script
add build numbers to the deployment url
clean
give script access to build number
add `useBuildNumberEnv` without a bump
new line
fix missing async
add channel name to deployment url
add updates check on launch for testflight users
ver bump
init updates on launch for native
add `testflight` as default in build submit
add is_testflight check
* disable inline predictions to prevent ios composer jank
* temp bump
* Revert "temp bump"
This reverts commit 44c51134a35d817c73edb1e635495597c95117b3.
* adjustments
version bump
adjust
fixes
test
* cleanup and finalize
drop check down to every 15 minutes
adjustments
change to 15 mins
use jq to get version if necessary
rm test on push
figured it out
remove nightly testflight releases
test again again again again again AGAIN ONCE MORE
test again again again again again AGAIN
test again again again again again AGAIN
test again again again again again
test again again again again
test again again again
test again again
test again
test
test
test
run deploy if necessary
run deploy if necessary
run deploy if necessary
run deploy if necessary
run deploy if necessary
remove test message
fix environment
oops
cleanup
merge in changes
* remove unnecessary `workflow_call`
* remove changes that have been merged into main now
* finalize android
update git ignore
rm test stuff from the bundle action
remove test message
test message
fix
test message
test message
few android fixes
few android fixes
fix jq
add a test message
fix slack webhook
create android deployments test 2
create android deployments
add `testflight-android` profile to eas.json
more cleanup
some more cleanup
simplify some logic
remove unnecessary channel
rename to `useOTAUpdates`
* rm test portion
* use @discord/bottom-sheet
* add @types/invariant
* some progress on keyboard dialog
* rework
rework
add a comment
use discord bottom sheet
* remove `@gorhom/bottom-sheet`
* remove android specific code
* organize imports
* Just use the first picture every time
* Add missing testIDs
* Various test fixes
* Use simplified link fetcher for e2e
* Disable tests for now-n
* Update test-env creation
* Use ALF for signup flow, improve a11y of signup
* adjust padding
* rm log
* org imports
* clarify allowance of hyphens
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* fix a few accessibility items
* Standardise date input across platforms (#3223)
* make the date input consistent across platforms
* integrate into new signup form
* rm log
* add transitions
* show correct # of steps
* use `FormError`
* animate buttons
* use `ScreenTransition`
* fix android text overflow via flex -> flex_1
* change button color
* (android) make date input the same height as others
* fix deps
* fix deps
---------
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* cleanup PostThread
rm some more unnecessary code
cleanup some more pieces
fix `isLoading` logic
few fixes
organize
refactor `PostThread`
allow chaining of `postThreadQuery`
Update `Hashtag` screen with the component changes
Make some changes to the List components
adjust height and padding of bottom loader to account for bottom bar
* rm unnecessary chaining logic
* maxReplies logic
* adjust error logic
* use `<` instead of `<=`
* add back warning comment
* remove unused prop
* adjust order
* implement list improvements for followers/follows
* update prop name
* small adjustments
fix flex
add window size
adjust isLoading
* remove log
* don't show retry for no results
* don't show error if `isLoading`
* cleanup PostThread
rm some more unnecessary code
cleanup some more pieces
fix `isLoading` logic
few fixes
organize
refactor `PostThread`
allow chaining of `postThreadQuery`
Update `Hashtag` screen with the component changes
Make some changes to the List components
adjust height and padding of bottom loader to account for bottom bar
* rm unnecessary chaining logic
* maxReplies logic
* adjust error logic
* use `<` instead of `<=`
* add back warning comment
* remove unused prop
* adjust order
* update prop name
* don't show error if `isLoading`