Merge pull request #76 from nathonius/feat/73/status-tooltip

 feat: #73 Add option for tooltip on issue and pr status
This commit is contained in:
Nathan 2024-03-09 20:03:15 -05:00 committed by GitHub
commit 424cdf85a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 35 additions and 1 deletions

View file

@ -1,5 +1,6 @@
import { setIcon } from "obsidian";
import { IssueStatus } from "./github/response";
import { PluginSettings } from "./plugin";
const PRIcon: Readonly<Record<IssueStatus, string>> = {
[IssueStatus.Open]: "lucide-git-pull-request-arrow",
@ -7,19 +8,39 @@ const PRIcon: Readonly<Record<IssueStatus, string>> = {
[IssueStatus.Done]: "lucide-git-merge",
};
const PRStatusText: Readonly<Record<IssueStatus, string>> = {
[IssueStatus.Open]: "Pull request open",
[IssueStatus.Closed]: "Pull request closed",
[IssueStatus.Done]: "Pull request merged",
};
const IssueIcon: Readonly<Record<IssueStatus, string>> = {
[IssueStatus.Open]: "lucide-circle-dot",
[IssueStatus.Closed]: "lucide-circle-slash",
[IssueStatus.Done]: "lucide-check-circle",
};
const IssueStatusText: Readonly<Record<IssueStatus, string>> = {
[IssueStatus.Open]: "Issue open",
[IssueStatus.Closed]: "Issue closed as not planned",
[IssueStatus.Done]: "Issue closed as completed",
};
export function setPRIcon(icon: HTMLElement, status: IssueStatus) {
if (PluginSettings.tagTooltips) {
icon.setAttribute("aria-label", PRStatusText[status]);
}
setIcon(icon, PRIcon[status]);
icon.classList.add("pull-request");
icon.dataset.status = status;
}
export function setIssueIcon(icon: HTMLElement, status: IssueStatus) {
if (PluginSettings.tagTooltips) {
icon.setAttribute("aria-label", IssueStatusText[status]);
}
setIcon(icon, IssueIcon[status]);
icon.classList.add("issue");
icon.dataset.status = status;

View file

@ -21,12 +21,14 @@ export interface GithubLinkPluginSettings {
defaultAccount?: string;
defaultPageSize: number;
logLevel: LogLevel;
tagTooltips: boolean;
}
export const DEFAULT_SETTINGS: GithubLinkPluginSettings = {
accounts: [],
defaultPageSize: 10,
logLevel: LogLevel.Error,
tagTooltips: false,
};
export class GithubLinkPluginSettingsTab extends PluginSettingTab {
@ -231,7 +233,18 @@ export class GithubLinkPluginSettingsTab extends PluginSettingTab {
});
new Setting(containerEl)
.setName("Log Level")
.setName("Status tooltips")
.setDesc("Add a tooltip to issue and pull request status icons with status text")
.addToggle((toggle) => {
toggle.setValue(PluginSettings.tagTooltips);
toggle.onChange((value) => {
PluginSettings.tagTooltips = value;
this.saveSettings();
});
});
new Setting(containerEl)
.setName("Log level")
.setDesc("Enable debug logging.")
.addExtraButton((button) => {
button.setIcon("rotate-ccw");