* 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
* 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
* DRY up video service auth code
* throw error if over upload limits
* use token
* xmark on toast
* errors with nice translatable error messages
* Update src/state/queries/video/video.ts
---------
Co-authored-by: Hailey <me@haileyok.com>
* state for video uploads
* get upload working
* add a debug log
* add post progress
* progress
* fetch data
* add some progress info, web uploads
* post on finished uploading (wip)
* add a note
* add some todos
* clear video
* merge some stuff
* convert to `createUploadTask`
* patch expo modules core
* working native upload progress
* platform fork
* upload progress for web
* cleanup
* cleanup
* more tweaks
* simplify
* fix type errors
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* use appropriate icons for toasts
* use info for session expiry
* tweak size
* message -> safeMessage
---------
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* 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>
* Onboarding avatar creator or upload (#2860)
* add screen to onboarding flow
* update base
* add icon
* fix icon
* fix after merge
* create flatlist
* add emoji list
* add state context, pressables
* select/update
* add camera icon
* add photo selection button
* image selection
* cleanup
* add most needed icons
* fix icon naming
* add icons
* export path strings for emoji
* canvas drawing for web
* types
* move breakpoints to individual steps
* create canvas
* canvas working 🎉
* update state
* it works!
* working on both platforms
* remove comments
* remove log
* remove unused web canvas
* animate picture selection/removal
* compress images on web correctly
* add times icon
* scrollable horizontal flatlist on web
* prefetch
* adjustments
* add more assets
* remove unused smiles
* add all the icons
* adjust color options
* animate grow/shrink selections
* change layout on tablet/desktop
* better web layout
* fix path
* adjust web layout
* organize
* organize imports and cleanup styles
* make generated images smaller
* implement design changes
use row for buttons on web
use RNGH FlatList
random color at start
improve logic
update dialog for web
update dialog style on mobile
some more progress
create dialog
simplify context
start implementing design
* rm change
* cleanup imports
* trigger a pr label
* Formatting
---------
Co-authored-by: Eric Bailey <git@esb.lol>
(cherry picked from commit 087186e386)
* UI tweaks
* Revert layout change
* Gate avi upload
* Support returning to profile step
* Add Statsig
---------
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* delete image on each iteration of compression
* replace a few other instances of `unlink()`
* ensure that moving to the permanent path will succeed
* use `cacheDirectory`
* missing file extension?
* assert
* Remove extra .
* Extract safeDeleteAsync, fix normalization
* Normalize everywhere
* Use safeDeleteAsync in more places
* Delete .bin too
---------
Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* 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
* fix canvas
* fix external link embed styles
* Use the same link-card style on web and mobile and give a little more height on desktop to the card images
* Use dark border on link embeds to match quote post style
* Fix the highlighting behavior on linkcards and quoteposts
---------
Co-authored-by: Hailey <me@haileyok.com>
* 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