nandi/frqpublic Fork 0
bcc2876
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Do not open a picker under every message that has no id

`nil` matched `nil`: a line this client sent itself carries no msgid, and a
closed picker names no message, so `(= (:id m) (:id @reacting))` was true for
every one of those lines — a picker under each of them from the moment the app
opened, none of which could be closed by the ✕ of any other.

That was also why the ↩ and ☺ were clipped to slivers at the right edge. The
grid is nine chips across and the search box asks for 240 points of its own,
which is wider than a narrow window: the list's content grew to fit it, and
the actions, which sit at the right edge of that content, went off the side of
what could be seen.

The id has to exist as well as match.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
nandi committed 2026-08-30T13:30:44-07:00 Browse files
bcc2876 parent: 3fd5ae3
modified src/frq/app.jolt +5 -1
@@ -442,8 +442,12 @@
442442 [reaction-row @s/current m])]]]
443443 ;; And the picker, when this is the message it was opened on: under the
444444 ;; line it is about, where the reader is already looking.
445+ ;;
446+ ;; The id has to exist, not merely match: a line this client sent itself
447+ ;; has no msgid, and neither does a closed picker — so `nil = nil` was
448+ ;; every one of those messages opening a picker of its own at startup.
445449 [:vbox {:key :picker :margin-bottom 4}
446- (when (= (:id m) (:id @s/reacting))
450+ (when (and (:id m) (= (:id m) (:id @s/reacting)))
447451 [emoji-picker])]
448452 ;; Pictures under the line that linked them. The link stays: it is what a
449453 ;; failed fetch, an unsupported format, or a phone with no TLS leaves you.
@@ -442,8 +442,12 @@
442 [reaction-row @s/current m])]]]442 [reaction-row @s/current m])]]]
443 ;; And the picker, when this is the message it was opened on: under the443 ;; And the picker, when this is the message it was opened on: under the
444 ;; line it is about, where the reader is already looking.444 ;; line it is about, where the reader is already looking.
445+ ;;
446+ ;; The id has to exist, not merely match: a line this client sent itself
447+ ;; has no msgid, and neither does a closed picker — so `nil = nil` was
448+ ;; every one of those messages opening a picker of its own at startup.
445 [:vbox {:key :picker :margin-bottom 4}449 [:vbox {:key :picker :margin-bottom 4}
446- (when (= (:id m) (:id @s/reacting))450+ (when (and (:id m) (= (:id m) (:id @s/reacting)))
447 [emoji-picker])]451 [emoji-picker])]
448 ;; Pictures under the line that linked them. The link stays: it is what a452 ;; Pictures under the line that linked them. The link stays: it is what a
449 ;; failed fetch, an unsupported format, or a phone with no TLS leaves you.453 ;; failed fetch, an unsupported format, or a phone with no TLS leaves you.