mirror of
https://github.com/nathonius/obsidian-github-link.git
synced 2026-07-22 09:20:25 +00:00
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:
commit
424cdf85a9
2 changed files with 35 additions and 1 deletions
21
src/icon.ts
21
src/icon.ts
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
Loading…
Reference in a new issue