commit cac1ce0

default  ·  2023-11-23 20:20:10 +0000 UTC
parent d2a5a55
html_people_list() returns an xs_html.
1 files changed,  +30, -28
M html.c
M html.c
+30, -28
 1@@ -1848,19 +1848,19 @@ xs_str *html_timeline(snac *user, const xs_list *list, int local,
 2 }
 3 
 4 
 5-xs_str *html_people_list(snac *snac, xs_str *os, xs_list *list, const char *header, const char *t)
 6+xs_html *html_people_list(snac *snac, xs_list *list, char *header, char *t)
 7 {
 8-    xs *s = xs_str_new(NULL);
 9-    xs *es1 = encode_html(header);
10-    xs *h = xs_fmt("<h2 class=\"snac-header\">%s</h2>\n", es1);
11-    xs_list *p;
12+    xs_html *snac_posts;
13+    xs_html *people = xs_html_tag("div",
14+        xs_html_tag("h2",
15+            xs_html_attr("class", "snac-header"),
16+            xs_html_text(header)),
17+        snac_posts = xs_html_tag("div",
18+            xs_html_attr("class", "snac-posts")));
19+
20+    xs_list *p = list;
21     char *actor_id;
22 
23-    s = xs_str_cat(s, h);
24-
25-    s = xs_str_cat(s, "<div class=\"snac-posts\">\n");
26-
27-    p = list;
28     while (xs_list_iter(&p, &actor_id)) {
29         xs *md5 = xs_md5_hex(actor_id, strlen(actor_id));
30         xs *actor = NULL;
31@@ -1950,28 +1950,22 @@ xs_str *html_people_list(snac *snac, xs_str *os, xs_list *list, const char *head
32             xs *dm_div_id  = xs_fmt("%s_%s_dm", md5, t);
33             xs *dm_form_id = xs_fmt("%s_reply_form", md5);
34 
35-            xs_html *dm_textarea = html_note(snac, "Direct Message...",
36-                dm_div_id, dm_form_id,
37-                "", "",
38-                NULL, actor_id,
39-                xs_stock_false, "",
40-                xs_stock_false, NULL,
41-                NULL, 0);
42-
43-            xs_html_add(snac_controls, dm_textarea);
44+            xs_html_add(snac_controls,
45+                html_note(snac, L("Direct Message..."),
46+                    dm_div_id, dm_form_id,
47+                    "", "",
48+                    NULL, actor_id,
49+                    xs_stock_false, "",
50+                    xs_stock_false, NULL,
51+                    NULL, 0));
52 
53             xs_html_add(snac_post, snac_controls);
54 
55-            {
56-                xs *s1 = xs_html_render_s(snac_post, xs_dup("\n"));
57-                s = xs_str_cat(s, s1);
58-            }
59+            xs_html_add(snac_posts, snac_post);
60         }
61     }
62 
63-    s = xs_str_cat(s, "</div>\n");
64-
65-    return xs_str_cat(os, s);
66+    return people;
67 }
68 
69 
70@@ -1983,9 +1977,17 @@ xs_str *html_people(snac *snac)
71 
72     s = html_user_header(snac, s, 0);
73 
74-    s = html_people_list(snac, s, wing, L("People you follow"), "i");
75+    {
76+        xs_html *h = html_people_list(snac, wing, L("People you follow"), "i");
77+        xs *s1 = xs_html_render(h);
78+        s = xs_str_cat(s, s1);
79+    }
80 
81-    s = html_people_list(snac, s, wers, L("People that follow you"), "e");
82+    {
83+        xs_html *h = html_people_list(snac, wers, L("People that follow you"), "e");
84+        xs *s1 = xs_html_render(h);
85+        s = xs_str_cat(s, s1);
86+    }
87 
88     s = html_footer(s);
89