about summary refs log tree commit diff
path: root/src/state
Commit message (Collapse)AuthorAgeFilesLines
* Fix stutter when swiping feeds on Android (#6765)dan2024-11-261-9/+1
|
* Revert "Pass referrer on native (with an opt out) (#6648)" (#6732)dan2024-11-253-48/+1
| | | This reverts commit ac5b2cf31f2bb45f1bf8a180705249d3cce8017d.
* Don't re-sort already fetched post thread items (#6698)dan2024-11-241-9/+43
| | | | | | | | | | | | | | | * Don't reorder already seen posts in PostThread * Add sorting by generation * Rip out stable order cache It doesn't make sense because sort() doesn't call the callback for all A/B pairs, and the server returning a different ordering will cause cache misses which means there'll be no stability anyway. * Make hotness deterministic per fetched at * Cache random scores while in thread * Reorder for clarity
* Add a hotness thread sort (#6649)dan2024-11-233-3/+22
| | | | | * Add a hotness thread sort * Bump @atproto/api
* Pass referrer on native (with an opt out) (#6648)dan2024-11-223-1/+48
| | | | | | | | | | | | | | | | | * Pass referer on native * Add ChainLink3 * Add an opt out for sending utm * Remove noreferrer on links We do have <meta name="referrer" content="origin-when-cross-origin"> in HTML, should be sufficient. * Narrow down the condition slightly --------- Co-authored-by: Eric Bailey <git@esb.lol>
* Add ability to block account from post dropdown menu (#6091)rshigg2024-11-221-1/+1
| | | | | Co-authored-by: Hailey <me@haileyok.com> Co-authored-by: Hailey <hailey@blueskyweb.xyz>
* Improve error name and message for signed-in only feeds (#6577)Eric Bailey2024-11-221-1/+1
| | | | | | | | | * Improve error name and message for logged-in only feeds * Revert msg edit --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
* Use compiler-safe Reanimated get/set APIs (#6391)dan2024-11-171-6/+10
| | | | | | | | | | | | | | | | | | | | | * 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
* Sort pins last in thread view (#6426)dan2024-11-161-0/+11
|
* [Statsig] Remove client downsampling (#6153)Hailey2024-11-153-21/+21
|
* Reduce calls to getLogs (#6381)Eric Bailey2024-11-151-2/+2
|
* Reduce `listConvos` requests (#6378)Eric Bailey2024-11-153-11/+46
| | | | | | | | | | | | | * Reduce page size for request * Remove refetch interval entirely * Add comment * Optimistically mark as read * Drop default active poll interval to 60s from 5min * Only optimistically update unread count if success
* Add email verification prompts throughout the app (#6174)Hailey2024-11-121-0/+25
|
* [Lightbox] Open animation (#6159)dan2024-11-091-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* [Settings] Ungate, and remove old settings (#6144)Samuel Newman2024-11-081-11/+0
| | | | | | | | | | | | | | | | | | | * move export car dialog * move disableemail2fadialog * delete old settings screens * fix type error * Update Navigation.tsx * Delete AccountDropdownBtn.tsx * remove old change handle modal * delete add app paswords * forgot to actually delete the change handle modal
* Remove SCREEN from lightbox layout (#6124)dan2024-11-061-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Lower feedfeedback seen threshold to 0.5s (#6127)dan2024-11-051-1/+1
|
* Update Reanimated (#6126)dan2024-11-052-0/+16
| | | | | | | | | * Update Reanimated * Fix types * Fix Reanimated value access warnings * Fix types
* Refactor lightbox prop drilling (#6073)dan2024-11-041-20/+3
| | | | | | | | | | | * Refactor lightbox footer to render prop * Unify lightbox types * Unindent * Refactor LightboxFooter props * Move LightboxFooter into the implementation file
* Unify dimensions cache between lightbox and feed (#6047)dan2024-11-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* [Settings] Thread prefs revamp (#5772)Samuel Newman2024-10-312-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * thread preferences screen * minor tweaks * more spacing * replace gate with IS_INTERNAL * [Settings] Following feed prefs revamp (#5773) * gated new settings screen * Following feed prefs * Update src/screens/Settings/FollowingFeedPreferences.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Update src/screens/Settings/FollowingFeedPreferences.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * replace pref following feed gate * Update src/screens/Settings/FollowingFeedPreferences.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * use "Experimental" as the header --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * [Settings] External media prefs revamp (#5774) * gated new settings screen * external media prefs revamp * replace gate ext media embeds * Update src/screens/Settings/ExternalMediaPreferences.tsx Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * add imports for translation * alternate list style on native --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * [Settings] Languages revamp (partial) (#5775) * language settings (lazy restyle) * replace gate * fix text determining flex space * [Settings] App passwords revamp (#5777) * rework app passwords screen * Apply surfdude's copy changes Thanks @surfdude29! Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * format * replace gate * use admonition for input error and animate --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * [Settings] Change handle dialog (#5781) * new change handle dialog * animations native only * overflow hidden on togglebutton animation * add a low-contrast border * extract out copybutton * finish change handle dialog * invalidate query on success * web fixes * error message for rate limit exceeded * typo * em dash! Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * another em dash Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * set maxwidth of suffixtext * Copy tweak Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * [Settings] Notifs settings revamp (#5884) * rename, move, and restyle notif settings * bold "experimental:" --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Measure tapped image coordinates before opening lightbox (#6001)dan2024-10-311-0/+3
| | | | | * Measure image on press * Pass dimensions to the lightbox component
* Sort imports (#6009)dan2024-10-296-16/+16
| | | | | * Mark import sort/order/style rules as error * npm run lint -- --fix
* Show almost-instant preview when opening lightbox (#6000)dan2024-10-291-0/+1
| | | | | | | | | | | * 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
* Refactor lightbox model to plain object (#5999)dan2024-10-291-14/+11
| | | | | * Refactor lightbox model to plain object * Rename name to type
* temp revert to old modal (#6005)Samuel Newman2024-10-291-0/+9
|
* Include hydrated responses for other records (#5646)dan2024-10-241-1/+1
| | | | | | | * Include hydrated responses for other records * Rename meta -> view This is actually all it is now.
* Refactor post meta to return PostView (#5645)dan2024-10-241-17/+4
|
* Apply labelers and handle language for PWI home (#5816)Eric Bailey2024-10-171-0/+10
|
* Disable feed debug gate due to EME (#5815)Hailey2024-10-171-1/+6
|
* Temporarily disable window gate during EME (#5814)Hailey2024-10-171-3/+4
|
* Add DE labeler (#5675)Eric Bailey2024-10-171-1/+3
|
* Logged out improvments (#5771)Samuel Newman2024-10-171-3/+3
| | | | | | | | | | | | | | | | | * fetch all accounts in one go * delete unused component * add safeareaview to logged out layout * add safe area insets to LoggedOut view * add safe area insets to the error boundary * sanitize displaynames/handles * use button for X * increase spacing
* Ensure all configured appLabelers are applied for logged out users (#5784)Eric Bailey2024-10-161-7/+5
| | | | | * Ensure all configured appLabelers are applied for logged out users * Formatting
* Composer - Self label dialog ALF rewrite (#4354)Samuel Newman2024-10-161-8/+0
|
* Edit profile dialog ALF refresh (#5633)Samuel Newman2024-10-151-7/+0
|
* Present in-app browser as sheet (#5718)Samuel Newman2024-10-111-46/+0
| | | | | | | * use page sheet presentation * move to its own file rather than sitting in prefs * whoops, missed one
* Move composer open shortcut to shell (#5723)Hailey2024-10-111-1/+14
| | | | | | | | | * move composer shortcut hook * put intent handler in same place * dont allow shortcuts if no session * revert change
* Invert non config filtering (#5674)Eric Bailey2024-10-101-9/+4
| | | | | | | * Invert filtering logic * Rename * Rm comment
* Include non-configurable in defs query (#5673)Eric Bailey2024-10-101-1/+1
|
* Filter out non-configrable mod authorities from report dialog (#5670)Eric Bailey2024-10-101-4/+17
|
* Allow nested sheets without boilerplate (#5660)Samuel Newman2024-10-091-2/+2
| | | | Co-authored-by: Hailey <me@haileyok.com>
* Filter posts containing mute words from search and notifications (#5599)Eric Bailey2024-10-082-18/+170
| | | | | | | * Filter mute words from search * Filter mute words from notifications * Do no filter search if using from filter
* Fetch link previews from RQ (#5608)dan2024-10-073-9/+100
| | | | | Co-authored-by: Mary <git@mary.my.id> Co-authored-by: Hailey <me@haileyok.com>
* [Video] Add dimension info to share intent (#5639)Hailey2024-10-071-1/+1
|
* [Sheets] [Pt. 1] Root PR (#5557)Hailey2024-10-042-46/+53
| | | | | | | 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>
* [🐴] Reduce amount that message sent date is shown (#4228)Samuel Newman2024-10-032-4/+31
|
* Rename some files and variables (#5587)dan2024-10-035-694/+0
| | | | | | | * Move composer reducers together * videoUploadState -> videoState * Inline videoDispatch
* Manage video reducer from composer reducer (#5573)dan2024-10-031-41/+26
| | | | | | | | | | | | | | | * 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
* Refactor video uploads (#5570)dan2024-10-036-502/+530
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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