╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ───────────────╮ │src/ui/widget/thread.zig│ ╰────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │2799 - // navigate to the issues assigned to the typed name or email, keeping │ │2800 - // the label, the search and the status list. an empty box clears the │ │2801 - // filter and does nothing on an unfiltered page. │ │2802 - fn submitAssignee(self: *This, typed: []const u8) !void { │ │2803 - const text = std.mem.trim(u8, typed, " \t"); │ │2804 - if (text.len == 0 and assigneeFilter(self.data).len == 0) return; │ │2805 - const selected = self.header().getSelectedIndex() orelse 0; │ │2806 - const status: Status = if (selected < status_count) splitStatus(selected) else @fromBackingInt(@intCast(0)); │ │2807 - var route = listRoute(self.data.identity, status, self.data.label, "") orelse return; │ │2808 - if (self.data.search) |search| route = route.withSearch(search) orelse return; │ │2809 - try self.session.navigate(route.withEncodedAssignee(try ui.urlEncodeRef(self.session.page_arena.allocator(), text)) orelse return);│ │2810 - } │ │2811 - │ │2797 // arrow keys move the label selection; up from the top row crosses to the │ │2798 // header tabs. │ │2799 fn labelsViewInput(self: *This, key: Key, root_focus: *Focus) void { │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │3023 }, │ │3024 } │ │3025 │ │3041 - const route = listRoute(self.data.identity, entryStatus(entry.*), "", entry.id) orelse return;│ │3026 + const route = listRoute(self.data.identity, entryStatus(entry.*), entry.id) orelse return; │ │3027 try self.session.navigate(route); │ │3028 } │ │3029 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │3163 labels_input.clear(allocator); │ │3164 description_input.clear(allocator); │ │3165 │ │3181 - const route = listRoute(self.data.identity, @fromBackingInt(@intCast(0)), "", &event_id_hex) orelse return;│ │3166 + const route = listRoute(self.data.identity, @fromBackingInt(@intCast(0)), &event_id_hex) orelse return; │ │3167 try self.session.navigate(route); │ │3168 } │ │3169 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │3204 try self.rememberThreadFeedback(failure, title, labels, description, target_branch); │ │3205 return; │ │3206 }; │ │3222 - const route = listRoute(self.data.identity, entryStatus(entry.*), "", entry.id) orelse return;│ │3207 + const route = listRoute(self.data.identity, entryStatus(entry.*), entry.id) orelse return; │ │3208 try self.session.navigate(route); │ │3209 return; │ │3210 } │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │3241 }, │ │3242 } │ │3243 │ │3259 - const route = listRoute(self.data.identity, entryStatus(entry.*), "", entry.id) orelse return;│ │3244 + const route = listRoute(self.data.identity, entryStatus(entry.*), entry.id) orelse return; │ │3245 try self.session.navigate(route); │ │3246 } │ │3247 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │3276 if (!entryDraft(entry.*)) return; │ │3277 const author = ((try self.session.authorize(self.data.identity, .read, kind)) orelse return).author; │ │3278 try self.data.publishDraft(self.session, allocator, author, entry.id); │ │3294 - const route = listRoute(self.data.identity, @fromBackingInt(@intCast(0)), "", entry.id) orelse return;│ │3279 + const route = listRoute(self.data.identity, @fromBackingInt(@intCast(0)), entry.id) orelse return; │ │3280 try self.session.navigate(route); │ │3281 } else unreachable, │ │3282 .merge => if (comptime supports_merge) { │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │3287 const author = ((try self.session.authorize(self.data.identity, .write, kind)) orelse return).author; │ │3288 self.data.mergePatch(self.session, allocator, author, entry.id, revision) catch |err| switch (err) { │ │3289 error.MergeConflict, error.MergeCheckUnavailable, error.PatchOutOfDate, error.PatchDataUnavailable => {│ │3305 - const route = listRoute(self.data.identity, entryStatus(entry.*), "", entry.id) orelse return; │ │3290 + const route = listRoute(self.data.identity, entryStatus(entry.*), entry.id) orelse return; │ │3291 try self.session.navigate(route); │ │3292 return; │ │3293 }, │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │3294 else => return err, │ │3295 }; │ │3296 const merged = std.meta.stringToEnum(Status, "merged") orelse return; │ │3312 - const route = listRoute(self.data.identity, merged, "", entry.id) orelse return;│ │3297 + const route = listRoute(self.data.identity, merged, entry.id) orelse return; │ │3298 try self.session.navigate(route); │ │3299 } else unreachable, │ │3300 .remove => try self.submitRemove(allocator), │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯