* give video a black background on web
* Video crop on web tweaks (#9371)
* Remove video embed crop option to reduce confusion
* Improve default thumb and border on web
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* constraint video max height to 14/9
* Apply new default to web video embed too
* Retain web handling
* Rename prop for clarity
* Align no-crop handling on native/web
* make it always constrained
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Direct port of embeds to new arch
(cherry picked from commit cc3fa1f6cea396dd9222486c633a508bfee1ecd6)
* Re-org
* Split out ListEmbed and FeedEmbed
* Split out ImageEmbed
* DRY up a bit
* Port over ExternalLinkEmbed
* Port over Player and Gif embeds
* Migrate ComposerReplyTo
* Replace other usages of old post-embeds
* Migrate view contexts
* Copy pasta VideoEmbed
* Copy pasta GifEmbed
* Swap in new file location
* Clean up
* Fix up native
* Add back in correct moderation on List and Feed embeds
* Format
* Prettier
* delete old video utils
* move bandwidth-estimate.ts
* Remove log
* Add LazyQuoteEmbed for composer use
* Clean up unused things
* Remove remaining items
* Prettier
* Fix imports
* Handle nested quotes same as prod
* Add back silenced error handling
* Fix lint
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
* update eslint config with jsx runtime
* leverage jsx transform to remove unnecessary react imports and update eslint config
* run yarn lint --fix to remove eslint disables related to react/prop-types that is now disabled
* Inline useImageAspectRatio
* Switch AutoSizedImage to read dimensions from Expo Image cache
* Include thumbnail dimensions in image data
* Use dims from Expo Image cache in lightbox
* Fix wiring so all thumbnails get dimensions
* Fix type
* Oops
* Measure all rects for embeds
* Measure avi rects too
* Animate lightbox in and out
* Account for safe area in the animation
* Tune spring times
* Remove null checks for measurements
* Remove superfluous view
* Block swipe while opening
* Interpolate width/height on native side for Android
* Make it fast by animating only affine transforms
* Fix tall image final state
The initial animation frame is still off on both platforms.
* Try to squeeze perf
* Avoid blank images during animation on iOS
* Fix bad rebase
* Fix a huge memory issue due to expo/expo#24894
* Fix last frame flash
* Fix thum dim calculation for tall images
* Remove useless memo
* Use explicit values when useImageAspectRatio doesn't know
It's not very good that you can't distingiush when we haven't loaded vs when we're certain. This shifts the burden of dealing with missing values to the caller.
* Check cache early
* Handle src change
* Rewrite image-sizes.fetch to avoid mixing async styles
* Make image-sizes LRU
Code is copy paste from useImageDimensions.ts
* Rm unused fields
* Derive aspect on the fly
* Factor useImageDimensions out of useImageAspectRatio
* Move useImageDimensions into image-sizes
* Make lightbox use the same cache
* Wire up known dimensions to the lightbox
* Handle division by zero in the hook
* Use safe aspect for lightbox calculations
* tweak image styles
* fix reply image preview and covert to atoms
* increase rounding on media inset border
* decrease gap on desktop
* fix inset styles
* increase rounding on embeds to `md`
* Couple edge cases
---------
Co-authored-by: Eric Bailey <git@esb.lol>
* Limit height of images within posts
* Add some future-proofness
* Comments, improve a11y
* Adjust ALT, add crop icon
* Fix disableCrop in record-with-media posts
* Clean up aspect ratios, handle very tall images
* Handle record-with-media separately, clarify intent using enums
* Adjust spacing
* Adjust rwm embed image size on mobile
* Only do reduced layout if images embed
* Adjust gap in small embed variant
* Clean up grid layout
* Hide badge on small variant with one image
* Remove crop icon from image grid, leave on single image
* Fix sizing in Firefox
* Fix fullBleed variant
* add pref for large alt badge
* add to settings
* do the large badge bit
* Tweak wording
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* add send via chat button to post dropdown
(cherry picked from commit d8458c0bc344f993266f7bc7e325d47e40619648)
* let usePostQuery take uris with DIDs
(cherry picked from commit 16b577ce749fd07e1d5f8461e8ca71c5b874a936)
* add embed preview in composer
(cherry picked from commit 795ceb98d55b6a3ab5b83187a582f9656d71db69)
* rm log
(cherry picked from commit 374d6b8869459f08d8442a3a47d67149e8d9ddd4)
* remove params properly, or at least as close to
(cherry picked from commit c20e0062c2ca4d9c2b28324eee5e713a1a3ab251)
* show images in preview
(cherry picked from commit 5bb617a3ce00f67bfc79784b2f81ef8dcb5bfc25)
* Register embed immediately
(cherry picked from commit ee120d5438a2c91c8980288665576d6a29b4c7e7)
* Add hover to match embeds
(cherry picked from commit 5297a5b06e499f46a9f6da510124610005db2448)
* Update post dropdown copy
(cherry picked from commit bc7e9f6a4303926a53c5c889f1f1b136faf20491)
* Embed preview style tweaks
(cherry picked from commit 9e3ccb0f25ac2f3ce6af538bb29112a3e96e01b1)
* use hydrated posts from API and just use postembed component
(cherry picked from commit cc0b84db87ca812d76cc69f46170ae84cfdde4ef)
* fix type error
(cherry picked from commit 9c49b940e1248e8a7c3b64190c5cb20750043619)
* undo needless export
(cherry picked from commit 1186701c997c50c0b29a809637cb9bc061b8c0a0)
* fix overflow
(cherry picked from commit 8868d5075062d0199c8ef6946fabde27e46ea378)
---------
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
* Update login page to use service query
* Update modal to use session instead of store
* Move image sizes cache off store
* Update settings to no longer use store
* Update link-meta fetch to use agent instead of rootstore
* Remove deprecated resolveName()
* Delete deprecated link-metas cache
* Delete deprecated posts cache
* Delete all remaining mobx models, including the root store
* Strip out unused mobx observer wrappers