diff --git a/src/command-palette/bar.js b/src/command-palette/bar.js index 2c9d761..6832c99 100644 --- a/src/command-palette/bar.js +++ b/src/command-palette/bar.js @@ -74,6 +74,23 @@ const ALL_OVERVIEWS = { }, }; +const ALL_FEEDBACKS = { + feedbackNew: { + title: 'Report a bug or suggest improvements', + icon: '', + execute() { + gitdock.openGitLab('/mvanremmerden/gitdock/-/issues/new'); + }, + }, + feedbackIssues: { + title: 'Open issues for GitDock', + icon: '', + execute() { + gitdock.openGitLab('/mvanremmerden/gitdock/-/issues'); + }, + }, +}; + function matcher({ title }) { let lowerCaseTitle = title.toLowerCase(); const searchTerm = $search.value; @@ -111,6 +128,14 @@ function loadOverviews() { .sort(([, overviewA], [, overviewB]) => matcher(overviewB) - matcher(overviewA)); } +function loadFeedbacks() { + const feedbacks = Object.entries(ALL_FEEDBACKS); + + return [...feedbacks] + .filter(([, feedback]) => matcher(feedback)) + .sort(([, feedbackA], [, feedbackB]) => matcher(feedbackB) - matcher(feedbackA)); +} + function loadFavorites() { const favorites = ALL_FAVORITES.map((favorite) => [ `open-favorite::${favorite.id}`, @@ -177,6 +202,7 @@ function search() { const availableActions = loadActions(); const availableOverviews = loadOverviews(); + const availableFeedbacks = loadFeedbacks(); const availableFavorites = loadFavorites(); const availableBookmarks = loadBookmarks(); const availableRecents = loadRecents(); @@ -286,6 +312,23 @@ function search() { /* eslint-enable */ } + if (availableFeedbacks.length > 0) { + html.push('