╭ changed ─────────────╮ │src/ui/Repo/Issues.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │554 var description = try wgt.TextInput(ui.Widget).init(allocator, .{ .label = " description ", .name = "description", .visible_width = null, .rounded_corners = true, .render_content = !wasm, .multiline = true, .scroll = .{ .fill = true } });│ │555 errdefer description.deinit(allocator); │ │556 description.getFocus().focusable = true; │ │557 - if (issue) |i| try description.setContent(allocator, i.description); │ │557 + if (issue) |i| try description.setContent(allocator, i.event.description); │ │558 try box.children.put(allocator, description.getFocus().id, .{ .widget = .{ .text_input = description }, .rect = null, .min_size = null }); │ │559 } │ │560 │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │785 if (self.data.view == .edit) { │ │786 if (self.data.selectedIssue()) |entry| { │ │787 const fields = form.children.values(); │ │788 - try self.session.input_values.put(inputs_arena, fields[title_field_index].widget.text_input.getFocus().id, entry.issue.title); │ │789 - try self.session.input_values.put(inputs_arena, fields[tags_field_index].widget.text_input.getFocus().id, entry.issue.tags); │ │790 - try self.session.input_values.put(inputs_arena, fields[description_field_index].widget.text_input.getFocus().id, entry.issue.description); │ │788 + try self.session.input_values.put(inputs_arena, fields[title_field_index].widget.text_input.getFocus().id, entry.issue.event.title); │ │789 + try self.session.input_values.put(inputs_arena, fields[tags_field_index].widget.text_input.getFocus().id, entry.issue.event.tags); │ │790 + try self.session.input_values.put(inputs_arena, fields[description_field_index].widget.text_input.getFocus().id, entry.issue.event.description);│ │791 } │ │792 } │ │793 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │823 row.getFocus().kind = .container; │ │824 } │ │825 if (!description_page) { │ │826 - const action: []const u8 = switch (entry.issue.status) { │ │826 + const action: []const u8 = switch (entry.issue.event.status) {│ │827 .open => "close", │ │828 .closed => "open", │ │829 }; │ ╰───────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │869 var tb = try wgt.TextBox(ui.Widget).init(allocator, "← back to issue", .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │870 errdefer tb.deinit(allocator); │ │871 tb.getFocus().focusable = true; │ │872 - tb.getFocus().kind = .{ .custom = try issuesLink(self.session.page_arena, self.data.identity, entry.issue.status, "", entry.id) }; │ │872 + tb.getFocus().kind = .{ .custom = try issuesLink(self.session.page_arena, self.data.identity, entry.issue.event.status, "", entry.id) }; │ │873 try inner.children.put(allocator, tb.getFocus().id, .{ .widget = .{ .text_box = tb }, .rect = null, .min_size = null }); │ │874 } else { │ │875 // the issue's title as a focusable word-wrapped text box. │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │876 { │ │877 - var tb = try wgt.TextBox(ui.Widget).init(allocator, entry.issue.title, .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .word, .label = " title " }); │ │877 + var tb = try wgt.TextBox(ui.Widget).init(allocator, entry.issue.event.title, .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .word, .label = " title " });│ │878 errdefer tb.deinit(allocator); │ │879 tb.getFocus().focusable = true; │ │880 try inner.children.put(allocator, tb.getFocus().id, .{ .widget = .{ .text_box = tb }, .rect = null, .min_size = null }); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │892 { │ │893 var items: std.ArrayList(ui.TagFlow.Item) = .empty; │ │894 defer items.deinit(allocator); │ │895 - var tag_iter = evt.Issue.tagIterator(entry.issue.tags); │ │895 + var tag_iter = evt.Issue.tagIterator(entry.issue.event.tags); │ │896 while (tag_iter.next()) |tag| { │ │897 if (tag.len == 0) continue; │ │898 try items.append(allocator, .{ .text = tag, .link = try tagLink(self.session.page_arena, self.data.identity, splitStatus(index), tag) });│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │910 // it's cut at the last whole line and links to the /description page, │ │911 // which shows the whole thing. │ │912 self.description_id[index] = blk: { │ │913 - const whole = entry.issue.description; │ │913 + const whole = entry.issue.event.description; │ │914 const cut_short = !description_page and whole.len > max_description_size; │ │915 const shown = if (cut_short) │ │916 std.mem.trimEnd(u8, whole[0 .. std.mem.lastIndexOfScalar(u8, whole[0..max_description_size], '\n') orelse 0], " \t\r\n")│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1264 }, │ │1265 } │ │1266 │ │1267 - const route = ui.RoutablePage.repoIssuesRoute(self.data.identity, entry.issue.status, "", entry.id) orelse return; │ │1267 + const route = ui.RoutablePage.repoIssuesRoute(self.data.identity, entry.issue.event.status, "", entry.id) orelse return;│ │1268 try self.session.navigate(route); │ │1269 } │ │1270 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │1278 const sel = self.detailed_index[index] orelse return; │ │1279 const entry = self.window(index).issues[sel]; │ │1280 │ │1281 - const status: evt.Issue.Status = switch (entry.issue.status) { │ │1281 + const status: evt.Issue.Status = switch (entry.issue.event.status) {│ │1282 .open => .closed, │ │1283 .closed => .open, │ │1284 }; │ ╰──────────────────────────────────────────────────────────────────────────────────╯