* Preserve shape in lightbox
* Rename shapes to semantic meanings
It looks like after all I do want to fork based on those.
* Round avatars on the web
* Oops
* Make iOS scrollview bounded to the image
I've had to remove the dismiss handling because the scroll view no longer scrolls at rest.
* Fix double-tap not working right after a vertical swipe
It seems like for some reason the vertical swipe is still being handled by the scroll view, so double tap gets eaten while it's "coming back". But you don't really see it moving. Weird.
* Add an intermediate LightboxImage component
* Hoist useImageDimensions up
* Implement xplat dismiss gesture
This is now shared between platforms, letting us animate the backdrop and add a consistent "fly away" behavior.
* Optimize Android compositing perf
* Fix supertall images
For example, https://bsky.app/profile/schlagteslinks.bsky.social/post/3l7y4l6yur72e
* Fix oopsie
* Assign an ID to lightbox and use it as a key
* Consolidate lightbox props into an object
* Remove unused prop
* Move SafeAreaView declaration
* Keep SafeAreaView always mounted
When exploring Android animation, I noticed its content jumps on the first frame. I think this should help prevent that.
* Pass safe area down for measurement
* Remove dependency on SCREEN in Android event handlers
* Remove dependency on SCREEN in iOS event handlers
* Remove dependency on SCREEN on iOS
* Remove dependency on SCREEN on Android
* Remove dependency on JS calc in controls
* Use flex for iOS layout
* 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
* Plumb thumbUri down to the lightbox
* Remove onLoad tracking from lightbox
* Hook up placeholder URI to the image
* Fix NaN causing crash on double tap while offline
* Protect against NaNs in the future
* 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
* 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