New Feature: Mute#677
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
this css is intended as temporary anyway
moves original/reblogged/all logic to css; moves state logic to control element before timeline
One potential fix for this, I think, is to have two separate storage keys: one for uuid => is this muted or not, and one for uuid => what blog name corresponds to this uuid. Thus, passive updates to the name dictionary cannot overwrite a simultaneous attempt to mute/unmute a blog.
One drawback of this is that the order blogs you have blocked will appear arbitrary; it seems like local storage does not preserve object key order, and so the entries appear sorted alphabetically by UUID, which is sort of weird. edit: in 6cae4f2, I tried: |
This comment was marked as outdated.
This comment was marked as outdated.
...yikes. well, this is why I had that weird CSS way before
This comment was marked as outdated.
This comment was marked as outdated.
Maybe better and arguably simpler-to-understand form of this might be:
In processing, posts are given a special class if muted because they match the current timeline and a generic one if not. Posts with the generic one are always display: Special-class posts are hidden when they are preceded by the warning element. If the mode for the blog in question is "all," special-class posts are hidden with (This really doesn't simplify things all that much, honestly. What we really need is "set this CSS ruleset on elements that match ruleset a unless they match ruleset b, where both a and b can include descendants", but, y'know, that's not a thing afaik.) |
also fixes crash when timelines load without posts yet
I could go either way on this
|
Note to self: the "Hide all posts from blogs I've blocked" tweak currently hides posts unconditionally when they're viewed by themselves if they have a blocked blog in the trail, something which this PR (iirc) carefully avoids; consider making these consistent. |
|
Ooh, you know what: it would also be fairly easy to make it active but have alternative behavior. Override edit: Ah, that's not how |
I think we should never be outright hiding posts if we're on their permalink page; maybe we should have a "hide this post" util which checks for that and inserts a signpost in the permalink case. (No plans to do this myself, please implement this if you want to.) |
|
Co-Authored-By: April Sylph <28949509+AprilSylph@users.noreply.github.com>
Co-Authored-By: April Sylph <28949509+AprilSylph@users.noreply.github.com>
can't reference event after await statement
User-facing changes
This departs slightly from the linked specification in a few ways:
onBlogHiddenClass).[key, value]entries instead of in an object. Web extension storage does not preserve insertion order on objects, annoyingly.Does not currently implement a meatball menu button on blogs themselves; see #910.Technical explanation
See comment history.
Also, note that posts are hidden via
visibility: hiddeninstead ofdisplay: nonein "hide everything on this blog" mode so that they take up space and Redpop doesn't just try to load posts forever until the tab runs out of memory.Issues this closes
resolves #674