Differences From
Artifact [8729ddd689]:
27 27 co: &lib.srv.convo,
28 28 path: lib.mem.ptr(pref),
29 29 p: &lib.store.post
30 30 ): {}
31 31 var livetime = co.srv:thread_latest_arrival_calc(p.id)
32 32
33 33 var pg: lib.str.acc pg:init(256)
34 + pg:lpush('<div data-live="10">') -- make the OP refresh too
34 35 lib.render.tweet(co, p, &pg)
36 + pg:lpush('</div>')
35 37
36 38 if co.aid ~= 0 then
37 39 pg:lpush('<form class="action-bar" method="post">')
38 40 if not co.srv:post_liked_uid(co.who.id, p.id)
39 - then pg:lpush('<button class="pos" name="act" value="like">like</button>')
40 - else pg:lpush('<button class="neg" name="act" value="dislike">dislike</button>')
41 + then pg:lpush('<button class="pos" name="act" accesskey="l" value="like">like</button>')
42 + else pg:lpush('<button class="neg" name="act" accesskey="l" value="dislike">dislike</button>')
41 43 end
42 - pg:lpush('<button class="pos" name="act" value="rt">retweet</button>')
44 + pg:lpush('<button class="pos" name="act" accesskey="r" value="rt">retweet</button>')
43 45 if p.author == co.who.id then
44 - pg:lpush('<a class="button" href="/post/'):rpush(path(1)):lpush('/edit">edit</a><a class="neg button" href="/post/'):rpush(path(1)):lpush('/del">delete</a>')
46 + pg:lpush('<a class="button" accesskey="e" href="/post/'):rpush(path(1)):lpush('/edit">edit</a><a class="neg button" accesskey="d" href="/post/'):rpush(path(1)):lpush('/del">delete</a>')
45 47 end
46 48 -- TODO list user's chosen reaction emoji
47 49 pg:lpush('</form>')
48 50
49 51 end
50 52 pg:lpush('<div id="convo" data-live="10">')
51 53 render_tweet_replies(co, &pg, p.id)