╭ changed ─────────────╮ │src/ui/Repo/Issues.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1196 const src = self.data.repo_source orelse return; │ │1197 const author_email = (try self.session.eventAuthorEmail()) orelse return; │ │1198 │ │1180 - const form = self.issueForm(); │ │1199 + const form = self.issueForm() orelse return; │ │1200 const title_input = &form.children.values()[title_field_index].widget.text_input; │ │1201 const tags_input = &form.children.values()[tags_field_index].widget.text_input; │ │1202 const description_input = &form.children.values()[description_field_index].widget.text_input;│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1254 const entry = self.data.selectedIssue() orelse return; │ │1255 const author_email = (try self.session.eventAuthorEmail()) orelse return; │ │1256 │ │1238 - const form = self.issueForm(); │ │1257 + const form = self.issueForm() orelse return; │ │1258 const title_input = &form.children.values()[title_field_index].widget.text_input; │ │1259 const tags_input = &form.children.values()[tags_field_index].widget.text_input; │ │1260 const description_input = &form.children.values()[description_field_index].widget.text_input;│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────╮ │1349 } │ │1350 │ │1351 const button_in_row_index: usize = 1;│ │1333 - const edit_in_row_index: usize = 2; │ │1352 const title_child_index: usize = 0; │ │1353 const tags_child_index: usize = 2; │ │1354 │ ╰───────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1367 return inner.children.getIndex(cid) == tags_child_index and self.tagFlow(index) != null;│ │1368 } │ │1369 │ │1352 - // the open/close button inside the detail frame's tool row. │ │1370 + // the open/close button inside the detail frame's tool row. the full row │ │1371 + // is spacer + open/close + edit; a logged-out session's row has no │ │1372 + // open/close button, and the description page has no row at all. │ │1373 fn statusButton(self: *View, index: usize) ?*wgt.TextBox(ui.Widget) { │ │1374 const row = self.toolRow(index); │ │1355 - if (row.children.count() == 0) return null; │ │1375 + if (row.children.count() != 3) return null; │ │1376 return &row.children.values()[button_in_row_index].widget.text_box; │ │1377 } │ │1378 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯