feat(integrations): add multi-provider board and issue integrations
Add backend integration modules to discover, read, and modify provider-hosted boards, issues, and comments across multiple providers. Expose Tauri commands for board discovery, listing, and card moves, and implement safe issue actions and comment APIs. Wire new Svelte UI components to render boards, issue centers, comments, labels, and assignees, and add sanitized markdown rendering. - Add board discovery, board reading, and card-move APIs - Add Svelte components and styles for integrated board UI - Use marked + DOMPurify for safe markdown rendering
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { Folder, GitBranch, GitPullRequest, Plus, X } from "@lucide/svelte";
|
||||
import { CircleDot, Folder, GitBranch, GitPullRequest, Plus, X } from "@lucide/svelte";
|
||||
|
||||
interface RepositoryTabItem {
|
||||
path: string;
|
||||
@@ -7,11 +7,12 @@
|
||||
branch: string | null;
|
||||
}
|
||||
|
||||
export let activeView: "management" | "review-center" | "repository" = "management";
|
||||
export let activeView: "management" | "review-center" | "issues" | "repository" = "management";
|
||||
export let repoTabs: RepositoryTabItem[] = [];
|
||||
export let isBusy: boolean = false;
|
||||
export let language: "en" | "de" = "en";
|
||||
export let onOpenManagement: () => void = () => {};
|
||||
export let onOpenIssues: () => void = () => {};
|
||||
export let onOpenReviewCenter: () => void = () => {};
|
||||
export let isActive: (path: string) => boolean = () => false;
|
||||
export let onSelect: (path: string) => void | Promise<void> = () => {};
|
||||
@@ -40,6 +41,11 @@
|
||||
<span>PR</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="repo-tab-wrap" class:active={activeView === "issues"} role="presentation">
|
||||
<button class="repo-tab" type="button" onclick={onOpenIssues} disabled={isBusy} title="Issues" aria-label="Issues">
|
||||
<CircleDot size={13} aria-hidden="true" /><span>Issues</span>
|
||||
</button>
|
||||
</div>
|
||||
{#each repoTabs as repo (repo.path)}
|
||||
<div
|
||||
class="repo-tab-wrap"
|
||||
|
||||
Reference in New Issue
Block a user