| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add gif support to web
* rm set dimensions
* rm effect from preview
* rm log
* rm use of {cause: error}
* fix lint
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Convert lightbox to get/set
* Work around software-mansion/react-native-reanimated#6613
* Use get/set in more places
* Port MainScrollProvider to get/set
* Port more to get/set
* Port composer to get/set
* Remove unnecessary thread hops in composer
* Port more things to get/set
* Convert more to get/set, remove redundant runOnJS
* Convert remaining cases to get/set
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Fix close button overlap
* Make footer actually sticky on web
* Special toast for thread
* Only stick to bottom for last post
|
| |
|
|
|
|
|
| |
* [Statsig] Send thread length
* Split events
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Extract function to read contentHeight later
* Remove autoscroll to bottom
We're going to implement this in the UI layer instead.
* Remove worklet from non-worklets to avoid confusion
* Rename and invert hasScrolled* variables
Their naming was too ambiguous (they used to represent "has scrolled _away_ from X"). I inverted them and clarified the naming. No functional changes.
* This should not be necessary
It's already called not just from UI thread. And it only sets shared values, which can be done from either thread.
* Make hasScrolledTo* derived values
It wasn't always correct to derive them manually because reading from .value is stale on JS thread. We could fix that by using the local variables but it makes more conceptualy sense to treat these as derived anyway.
* Reimplement autoscroll-to-bottom in UI layer
Doing it here ensures we also do it when you add an image at the end of the thread. Otherwise it's very confusing where it went.
* Use fancy ScrollView
This seems to fix ScrollView getting stuck after inserting images at the thread end on Android.
* More aggressive scroll-to-bottom
* "Fix" cursor getting stuck on Android
* Revert "Use fancy ScrollView"
This reverts commit 04e34a54e3b75f8a77de5062bff5fe6e76420bbb.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Basic adding of posts
* Switch active post on focus
* Conditionally show plus button
* Insert posts midthread
* Track active/inactive post
* Delete posts in a thread
* Focus after deletion
* Tweak empty post detection
* Mix height for active only
* Move toolbar with post on web
* Fix footer positioning
* Post All button
* Fix reply to positioning
* Improve memoization
* Improve memoization for clearVideo
* Remove unnecessary argument
* Add some manual memoization to fix re-renders
* Scroll to bottom on add new
* Fix opacity on Android
* Add backdrop
* Fix videos
* Check alt for video too
* Clear pending publish on error
* Fork alt message by type
* Separate placeholder for next posts
* Limit hitslop to avoid clashes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Implement posting a thread
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Fix native build
* Remove dependency on web crypto API
* Fix unrelated TS error (wtf)
---------
Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Switch to using post ID for post actions
* Pass post-bound dispatch to ComposerPost
* Check video state for entire thread
* Always bind post actions to an ID
* Rename variable for consistency
* Fix clashing keys
|
|
|
|
|
| |
* Check all posts in a thread
* Use thread for more checks
|
|
|
|
|
|
|
| |
* Simplify onPressCancel dismiss condition
* Remove alias variables
* Move grapheme length calculation to reducer
|
|
|
|
|
|
|
| |
* Refactor composer state for threads
* Remove unnecessary default case
TS can see it's exhaustive.
|
|
|
|
|
|
|
| |
* Disable Post button when empty
* Use regular disabled button
* Disable post on video error until cleared
|
|
|
|
|
|
|
| |
* Make web composer min height condiitonal
* Fix alignment
* Fix alignment on mobile
|
| |
|
| |
|
|
|
|
|
|
|
| |
* conditionally render button
* update labels on remove
* tweak
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Extract ComposerTopBar
* Rename state variables to align with props
* Extract ComposerEmbeds
* Extract ComposerPills
* Extract ComposerFooter
* Tweak condition to be simpler
* Extract ComposerPost
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Display non-post embeds in composer preview
* Remove starter pack special case from ExternalLinkEmbed
This should not be needed because starter pack composer preview now goes through the record preview codepath, just like in the feed/post view.
* Hide record ext links if quote is present
* Align remove buttons
Remove the implicit top padding in record embeds and make it conditional, which is similar to how we treat external link embeds. This makes the X button appear in the same place for record embeds as with links.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* move self label button?
* rm
* make sure its usable on large font sizes
* tweak wording
* update icon
* tweaks
* change button label and change opacity when no media (#5794)
* Tweak it moar (#5807)
* Tweak it moar
* Pluralize
* Labels
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Co-authored-by: Eric Bailey <git@esb.lol>
|
| |
|
| |
|
| |
|
|
|
|
| |
Co-authored-by: Hailey <me@haileyok.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use Redix FocusTrap (#5638)
* Use Redix FocusTrap
* force resolutions on radix libs
* add focus guards
* use @radix-ui/dismissable-layer for escape handling
* fix banner menu keypress by using `Pressable`
* add menu in dialog example to storybook
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* use DismissableLayer/FocusScope for composer
* fix storybook dialog
* thread Portal through Prompt and avatar/banner
* fix dialog style regression
* remove tamagui
---------
Co-authored-by: Eric Bailey <git@esb.lol>
|
| |
|
|
|
|
|
|
| |
Co-authored-by: Mary <git@mary.my.id>
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
|
|
|
|
|
| |
Co-authored-by: Mary <git@mary.my.id>
Co-authored-by: Hailey <me@haileyok.com>
|
|
|
|
|
| |
Co-authored-by: Mary <git@mary.my.id>
Co-authored-by: Hailey <me@haileyok.com>
|
| |
|
|
|
|
|
| |
* fix composer
* more fixes
|
|
|
|
|
|
|
| |
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: dan <dan.abramov@gmail.com>
Co-authored-by: Hailey <me@haileyok.com>
|
|
|
|
|
| |
* Move caption and altText state into video reducer
* Make composer state source of truth for images and video publish
|
|
|
|
|
|
|
|
|
| |
* Scaffold embed draft types
These don't map 1:1 to the record structure. Rather, we select data from the draft on posting.
* Prefill initial quote
* Implement the reducer
|
|
|
|
|
|
|
| |
* Move composer reducers together
* videoUploadState -> videoState
* Inline videoDispatch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Move video state into composer state
* Represent video as embed
This is slightly broken. In particular, we can't remove video yet because there's no action that results in video embed being removed.
* Properly represent video as embed
This aligns the video state lifetime with the embed lifetime. Video can now be properly added and removed.
* Disable Add Video when we have images
* Ignore empty image pick
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Remove unused video field
* Stop exposing video dispatch
* Move cancellation out of the reducer
* Make useUploadStatusQuery controlled by jobId
* Rename SetStatus to SetProcessing
This action only has one callsite and it's always passing "processing".
* Move jobId into video reducer state
* Make cancellation scoped
* Inline useCompressVideoMutation
* Move processVideo down the file
* Extract getErrorMessage
* useServiceAuthToken -> getServiceAuthToken
* useVideoAgent -> createVideoAgent
* useVideoUploadLimits -> getVideoUploadLimits
* useUploadVideoMutation -> uploadVideo
* Use async/await in processVideo
* Inline onVideoCompressed into processVideo
* Use async/await for uploadVideo
* Factor out error messages
* Guard dispatch with signal
This lets us remove the scattered signal checks around dispatch.
* Move job polling out of RQ
* Handle poll failures
* Remove unnecessary guards
* Slightly more accurate condition
* Move initVideoUri handling out of the hook
* Remove dead argument
It wasn't being used before either.
* Remove unused detailed status
This isn't being used because we're only respecting that state variable when isProcessing=true, but isProcessing is always false during video upload.
If we want to re-add this later, it should really just be derived from the reducer state.
* Harden the video reducer
* Tie all spawned work to a signal
* Preserve asset/media for nicer error state
* Rename actions to match states
* Inline useUploadVideo
This abstraction is getting in the way of some future work.
* Move MIME check to the only place that handles it
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add composer reducer
* Support adding images
Co-authored-by: Mary <git@mary.my.id>
* Support updating and deleting images
Co-authored-by: Mary <git@mary.my.id>
* Derive images state from composer state
Co-authored-by: Mary <git@mary.my.id>
---------
Co-authored-by: Mary <git@mary.my.id>
|
| |
|
|
|
|
| |
(#5509)
|
|
|
|
|
|
|
|
|
| |
* mobx removal take 2
* Actually rm mobx
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
|
| |
|
|
|
|
|
| |
* allow DnD/pasting video
* rm await
|
|
|
|
|
| |
* use correct mime type
* fix wheel progress
|
| |
|
|
|
|
|
| |
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
Co-authored-by: Adrov Igor <nucleartux@gmail.com>
|
|
|
|
| |
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
|