* 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
* 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
* 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
* 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>
* 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
* 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 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>
* 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>
* 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>