about summary refs log tree commit diff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [Persisted] Make broadcast subscriptions granular by key (#4874)dan2024-08-0617-42/+95
| | | | | | | * Add fast path for guaranteed noop updates * Change persisted.onUpdate() API to take a key * Implement granular broadcast listeners
* [Persisted] Fix the race condition causing clobbered writes between tabs (#4873)dan2024-08-063-104/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Broadcast the update in the same tick The motivation for the original code is unclear. I was not able to reproduce the described behavior and have not seen it mentioned on the web. I'll assume that this was a misunderstanding. * Remove defensive programming The only places in this code that we can expect to throw are schema.parse(), JSON.parse(), JSON.stringify(), and localStorage.getItem/setItem/removeItem. Let's push try/catch'es where we expect them to be necessary. * Don't write or clobber defaults Writing defaults to local storage is unnecessary. We would write them as a part of next update anyway. So I'm removing that to reduce the number of moving pieces. However, we do need to be wary of _state being set to defaults. Because _state gets mutated on write. We don't want to mutate the defaults object. To avoid having to think about this, let's copy on write. We don't write to this object very often. * Refactor: extract tryParse * Refactor: move string parsing into tryParse * Extract tryStringify, split logging by platform Shared data parsing/stringification errors are always logged. Storage errors are only logged on native because we trust the web APIs to work. * Add a layer of caching to readFromStorage to web We're going to be doing a read on every write so let's add a fast path that avoids parsing and validating. * Fix the race condition causing clobbered writes between tabs
* [Persisted] Fork web and native, make it synchronous on the web (#4872)dan2024-08-0610-515/+186
| | | | | | | | | | | | | | | | | | | * Delete logic for legacy storage * Delete superfluous tests At this point these tests aren't testing anything useful, let's just get rid of them. * Inline store.ts methods into persisted/index.ts * Fork persisted/index.ts into index.web.ts * Remove non-essential code and comments from both forks * Remove async/await from web fork of persisted/index.ts * Remove unused return * Enforce that forked types match
* Show replies in context of their threads (#4871)dan2024-08-058-275/+254
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Don't reconstruct threads from separate posts * Remove post-level dedupe for now * Change repost dedupe condition to look just at length * Delete unused isThread * Delete another isThread field It is now meaningless because there's nothing special about author threads. * Narrow down slice item shape so it does not need reply * Consolidate slice validation criteria in one place * Show replies in context * Make fallback marker work * Remove misleading and now-unused property It was called rootUri but it was actually the leaf URI. Regardless, it's not used anymore. * Add by-thread dedupe to non-author feeds * Add post-level dedupe * Always count from the start This is easier to think about. * Only tuner state need to be untouched on dry run * Account for threads in reply filtering * Remove repost deduping This is already being taken care of by item-level deduping. It's also now wrong and removing too much (since it wasn't filtering for reposts directly). * Calculate rootUri correctly * Apply Following settings to all lists * Don't dedupe intentional reposts by thread * Show reply parent when ambiguous * Explicitly remove orphaned replies from following/lists * Fix thread dedupe to work across pages * Mark grandparent-blocked as orphaned * Guard tuner state change by dryRun * Remove dead code * Don't dedupe feedgen threads * Revert "Apply Following settings to all lists" This reverts commit aff86be6d37b60cc5d0ac38f22c31a4808342cf4. Let's not do this yet and have a bit more discussion. This is a chunky change already. * Reason belongs to a slice, not item * Logically feedContext belongs to the slice * Update comment to reflect latest behavior
* Add `PlatformInfo` module (#4877)Hailey2024-08-054-7/+24
|
* tweak list header (#4870)Samuel Newman2024-08-031-2/+10
| | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* Respect labels on feeds and lists (#4818)Eric Bailey2024-08-029-145/+261
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Prep * Pass in optional moderation to FeedCard * Compute moderation decision, filter contentList contexts, pass into card * Let's go a different route * Filter from within search queries * Use same search query for starter packs * Filter lists from profile tabs * Cleanup * Filter from profile feeds * Moderate post embeds * Memoize * Use ScreenHider on lists * Hide both list types * Fix crash on iOS in screen hider, fix lineheight * Memoize renderItem * Reuse objects to prevent re-renders
* Only show replies in Following if following all involved actors (#4869)dan2024-08-021-27/+17
| | | | | | | * Only show replies in Following for followed root and grandparent * Remove now-unnecessary check * Simplify condition
* Always limit Following replies to the people you follow (#4868)dan2024-08-014-126/+8
| | | | | * Limit feed replies to people you follow * Remove dead code
* Fix missing header on Likes/Reposted By, add missing perf optimizations (#4867)Hailey2024-08-015-125/+127
| | | | | | | | | * fix liked by list * fix lists * tweaks to style * change string
* Move theme controls to its own screen (#4866)Samuel Newman2024-08-0113-78/+201
|
* Display second-to-last rather than second post in a slice (#4864)dan2024-08-011-11/+12
|
* Update muted words dialog with `expiresAt` and `actorTarget` (#4801)Eric Bailey2024-08-015-122/+427
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP not working dropdown * Update MutedWords dialog * Add i18n formatDistance * Comments * Handle text wrapping * Update label copy Co-authored-by: Hailey <me@haileyok.com> * Fix alignment * Improve translation output * Revert toggle changes * Better types for useFormatDistance * Tweaks * Integrate new sdk version into TagMenu * Use ampersand Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * Bump SDK --------- Co-authored-by: Hailey <me@haileyok.com> Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com>
* Fetch enough pages to fill a page's worth of items (#4863)dan2024-08-012-37/+83
| | | | | * Fetch enough pages to fill a page's worth of items * Add failsafe in case of appview bug
* Only show "followed you back" when appropriate (#4849)Hailey2024-07-311-1/+21
| | | | | | | | | | | * only show followed back when we should * try/catch * log * Update FeedItem.tsx * tweak
* [Web] Retrigger onEndReached if needed when content height changes (#4859)dan2024-07-311-3/+32
| | | | | * Extract EdgeVisibility * Key Visibility by container height instead of item count
* Remove unused NoopFeedTuner (#4856)dan2024-07-312-32/+7
|
* useDedupe callback (#4855)GSMT2024-07-301-2/+2
|
* [Video] Uploads (#4754)Hailey2024-07-3012-112/+582
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Make label required in link components (#4844)Eric Bailey2024-07-252-9/+7
|
* Boolean filter improvement alternative: TS upgrade (#4840)Dmitrii Kartashev2024-07-264-5/+7
| | | | | * upgrade typescript and use new feature * fix: typing error
* Add label to profile card (#4843)Eric Bailey2024-07-252-7/+21
|
* Improve a11y on noty feed (#4842)Eric Bailey2024-07-252-18/+26
|
* Add labels in feed card (#4836)Eric Bailey2024-07-251-3/+7
|
* Add labels to mod details dialog (#4839)Eric Bailey2024-07-251-3/+10
|
* Add labels to a few missing places (#4838)Eric Bailey2024-07-2512-18/+60
|
* Add labels in list card (#4837)Eric Bailey2024-07-251-3/+3
|
* Refactor feed slices (#4834)dan2024-07-253-69/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Copy FeedViewPost into FeedSliceItem * Explicitly construct feed slice items by copying known fields * Type rootItem as FeedViewPost for now Mergefeed logic relies on that. * Unify reason and __source for slice items * Move feedContext out of FeedSliceItem * Remove slice.isFlattenedReply * Remove unnused slice.ts * Inline slice.isFullThread * Refactor condition for clarity * Extract slice.includesThreadRoot * Encapsulate more usages of slice.rootItem into slice * Rename slice.rootItem so semi-private slice._feedPost * Move reason into slice * Simplify slice ctor argument * Reorder getters to reduce diff * Make feedContext a getter to reduce diff
* `true` (#4833)Hailey2024-07-251-32/+30
|
* Replace `import hairlineWidth =` with const (#4831)Samuel Newman2024-07-2527-105/+81
| | | | | | | | | * replace import with const * just use `StyleSheet.hairlineWidth` --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* [Videos] Video player - PR #1 - basic player (#4731)Samuel Newman2024-07-2511-105/+461
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add ffmpeg-kit-react-native * get select video button + compression working * up res to 1080p * add progress component * move logic out of compressVideo * (WIP) add lonestar compression * rework web compression a bit * mess around with adding a thumbnail * 3mbps * replace * use 3mbps * add expo-video * remove unnecessary try/catch * rm ToastAndroid * fix web * wrap lazy component in suspense * gate video select button * rm web compression * flip sign * remove expo-video from web * review nits * add video picker permissions + rm temp buttons * add ffmpeg-kit-react-native * replace * hls-capable player * start trying to hoist up video player instance * hoist video player and move things around * always show native controls * fix controls on expo video android * gate temp video player in feed * rm IS_DEV, doesn't do what I thought it did * use __DEV__ instead --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com> Co-authored-by: Hailey <me@haileyok.com>
* Fix sloppy filter(Boolean) types (#4830)dan2024-07-254-56/+88
| | | | | | | | | | | | | * Fix sloppy filter(Boolean) in threadgate * Fix sloppy filter(Boolean) in Explore * Fix sloppy filter(Boolean) in post-feed * Harden FeedPostSliceItem.reason type def * Harden parentAuthor types * Fix lying component types, handle blocks
* Fuggedaboudit (#4829)Eric Bailey2024-07-251-3/+1
|
* Release 1.89 prep (#4822)Paul Frazee2024-07-2417-8534/+9868
| | | | | * Fix curate-lists tests * Run intl extract
* Update German localization (part 1) (#4742)surfdude292024-07-241-691/+297
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update German localization * Apply suggestions from code review Co-authored-by: cdfzo <cdfzo@pm.me> * update string after #4743 merged * Apply suggestions from code review Co-authored-by: cdfzo <cdfzo@pm.me> * Starterpaket –––> Startpaket * Improve existing translations (#17) * Improve existing translations * Update more * Update more --------- Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> * capitalise toast --------- Co-authored-by: cdfzo <cdfzo@pm.me>
* Updated Japanese Translation (#4748)Takayuki KUSANO2024-07-241-17/+52
| | | | | | | * Updated translation * Update translation * Update translation
* Update Chinese Localization (#4774)Kuwa Lee2024-07-242-939/+997
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * TW: Update * TW: Clean * TW: Update * CN: Update translates * Both: Remove superseded strings * Both: Remove superseded strings#2 * TW: Update and clean * TW: Update * CN: Update translates * TW: Improve * Update messages.po * CN: Update translates --------- Co-authored-by: Frudrax Cheng <i@cynosura.one> Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com>
* Update French localization (#4781)surfdude292024-07-241-10/+41
| | | | | | | | | | | * Update French localization * Apply suggestion from code review Co-authored-by: Stanislas Signoud <signez@stanisoft.net> --------- Co-authored-by: Stanislas Signoud <signez@stanisoft.net>
* make some settings screens scrollable for accessibility (#4819)Hailey2024-07-242-6/+6
| | | | | * make settings scrollable for accessibility * nit
* make toast shorter (#4821)Hailey2024-07-241-1/+1
|
* special invalidation logic (#4820)Samuel Newman2024-07-241-0/+2
| | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* Modernise thread/following feed settings screen (#4797)Samuel Newman2024-07-244-148/+90
| | | | | | | | | | | * fix web * show back button on tablet for certain settings screens * move headers to inside of scrollview --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* Priority notifications (#4798)Samuel Newman2024-07-2417-79/+299
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * new settings screen * bring back the spinner * add experimental language * fix typo, change leading * integrate priority notifications API * update package * use refetch instead of invalidateQueries * fix read-after-write issue by polling for update * add spinner for initial load * rm onmutate, it's overcomplicated * set error state eagerly * Change language in description Co-authored-by: Hailey <me@haileyok.com> * prettier * add `Toggle.Platform` * extract out mutation hook + error state * rm useless cache mutation * disambiguate isError and isPending * rm unused isError --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com> Co-authored-by: Hailey <me@haileyok.com>
* Use consistent index for reading last item (#4817)dan2024-07-241-2/+2
|
* Hack-modify avi path to use smaller thumbs behind gate (#4816)Paul Frazee2024-07-232-2/+25
| | | | | * Hack-modify avi path to use smaller thumbs behind gate * Only use small thumbs on smaller rendering
* swap flex-start/end (#4815)Samuel Newman2024-07-231-2/+2
| | | Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* Fix switch style and animate (#4814)Samuel Newman2024-07-231-14/+17
| | | | | | | | | | | | | | * set height to 20+(2*hairline) * animate switch * Try to align on line height across platforms * Use border 1px --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com> Co-authored-by: Eric Bailey <git@esb.lol>
* Native toast rework (#4808)Samuel Newman2024-07-232-69/+78
| | | | | | | | | * rework toast to use reanimated * fix animation on iOS --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
* Use appropriate icons for toasts (#4803)Samuel Newman2024-07-2348-95/+134
| | | | | | | | | | | | | * 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>
* dont filter exact matches from typeahead (#4802)Hailey2024-07-191-11/+22
|