commit 845df51
default
·
2023-01-03 09:11:20 +0000 UTC
parent abd56da
Don't generate empty children popups.
1 files changed,
+17,
-10
M
html.c
M
html.c
+17,
-10
1@@ -764,17 +764,19 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
2 if (left) {
3 char *p, *cmd5;
4 int older_open = 0;
5+ xs *ss = xs_str_new(NULL);
6+ int n_children = 0;
7
8- s = xs_str_cat(s, "<details open><summary>...</summary><p>\n");
9+ ss = xs_str_cat(ss, "<details open><summary>...</summary><p>\n");
10
11 if (level < 4)
12- s = xs_str_cat(s, "<div class=\"snac-children\">\n");
13+ ss = xs_str_cat(ss, "<div class=\"snac-children\">\n");
14 else
15- s = xs_str_cat(s, "<div>\n");
16+ ss = xs_str_cat(ss, "<div>\n");
17
18 if (left > 3) {
19 xs *s1 = xs_fmt("<details><summary>%s</summary>\n", L("Older..."));
20- s = xs_str_cat(s, s1);
21+ ss = xs_str_cat(ss, s1);
22 older_open = 1;
23 }
24
25@@ -784,12 +786,14 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
26 object_get_by_md5(cmd5, &chd, NULL);
27
28 if (older_open && left <= 3) {
29- s = xs_str_cat(s, "</details>\n");
30+ ss = xs_str_cat(ss, "</details>\n");
31 older_open = 0;
32 }
33
34- if (chd != NULL)
35- s = html_entry(snac, s, chd, local, level + 1, cmd5);
36+ if (chd != NULL) {
37+ ss = html_entry(snac, ss, chd, local, level + 1, cmd5);
38+ n_children++;
39+ }
40 else
41 snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5));
42
43@@ -797,10 +801,13 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
44 }
45
46 if (older_open)
47- s = xs_str_cat(s, "</details>\n");
48+ ss = xs_str_cat(ss, "</details>\n");
49
50- s = xs_str_cat(s, "</div>\n");
51- s = xs_str_cat(s, "</details>\n");
52+ ss = xs_str_cat(ss, "</div>\n");
53+ ss = xs_str_cat(ss, "</details>\n");
54+
55+ if (n_children)
56+ s = xs_str_cat(s, ss);
57 }
58
59 s = xs_str_cat(s, "</div>\n</div>\n");