Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2a0d858a8f |
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "gitty",
|
"name": "gitty",
|
||||||
"version": "2026.9.8",
|
"version": "2026.9.9",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "gitty",
|
"name": "gitty",
|
||||||
"version": "2026.9.8",
|
"version": "2026.9.9",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@lucide/svelte": "^1.21.0",
|
"@lucide/svelte": "^1.21.0",
|
||||||
"@tailwindcss/vite": "^4.3.1",
|
"@tailwindcss/vite": "^4.3.1",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gitty",
|
"name": "gitty",
|
||||||
"version": "2026.9.8",
|
"version": "2026.9.9",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "Gitty",
|
"productName": "Gitty",
|
||||||
"version": "2026.9.8",
|
"version": "2026.9.9",
|
||||||
"identifier": "com.gitty",
|
"identifier": "com.gitty",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "npm run prepare:lfs && npm run dev",
|
"beforeDevCommand": "npm run prepare:lfs && npm run dev",
|
||||||
|
|||||||
+16
-15
@@ -49,7 +49,8 @@
|
|||||||
export let onOpenSubmodules: () => void = () => {};
|
export let onOpenSubmodules: () => void = () => {};
|
||||||
export let onOpenLfs: () => void = () => {};
|
export let onOpenLfs: () => void = () => {};
|
||||||
|
|
||||||
let openMenu: "history" | "sync" | null = null;
|
let historyOpen = false;
|
||||||
|
let syncOpen = false;
|
||||||
let toolbarElement: HTMLDivElement;
|
let toolbarElement: HTMLDivElement;
|
||||||
|
|
||||||
$: isGerman = language === "de";
|
$: isGerman = language === "de";
|
||||||
@@ -64,18 +65,18 @@
|
|||||||
: "Push";
|
: "Push";
|
||||||
|
|
||||||
function runHistoryAction(action: () => void) {
|
function runHistoryAction(action: () => void) {
|
||||||
openMenu = null;
|
historyOpen = false;
|
||||||
action();
|
action();
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleWindowClick(event: MouseEvent) {
|
function handleWindowClick(event: MouseEvent) {
|
||||||
if (toolbarElement && !toolbarElement.contains(event.target as Node)) openMenu = null;
|
if (toolbarElement && !toolbarElement.contains(event.target as Node)) { historyOpen = false; syncOpen = false; }
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleWindowKeydown(event: KeyboardEvent) {
|
function handleWindowKeydown(event: KeyboardEvent) {
|
||||||
if (event.key === "Escape" && openMenu) {
|
if (event.key === "Escape" && historyOpen) {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
openMenu = null;
|
historyOpen = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -143,15 +144,15 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</button>
|
</button>
|
||||||
<div class="repo-history-wrap">
|
<div class="repo-history-wrap">
|
||||||
<button class="repo-action" type="button" onclick={() => { openMenu = openMenu === "sync" ? null : "sync"; }} disabled={!hasRepository || isBusy} aria-label={isGerman ? "Sync-Optionen" : "Sync options"} aria-haspopup="menu" aria-expanded={openMenu === "sync"}>
|
<button class="repo-action" type="button" onclick={() => { syncOpen = !syncOpen; historyOpen = false; }} disabled={!hasRepository || isBusy} aria-label={isGerman ? "Sync-Optionen" : "Sync options"} aria-haspopup="menu">
|
||||||
<ChevronDown size={14} aria-hidden="true" />
|
<ChevronDown size={14} aria-hidden="true" />
|
||||||
</button>
|
</button>
|
||||||
{#if openMenu === "sync"}
|
{#if syncOpen}
|
||||||
<div class="repo-history-menu" role="menu">
|
<div class="repo-history-menu" role="menu">
|
||||||
<button type="button" role="menuitem" onclick={() => { openMenu = null; onFetchPrune(); }}><CloudDownload size={15} /><span><strong>Fetch + Prune</strong><small>{isGerman ? "Veraltete Remote-Branches entfernen" : "Remove stale remote branches"}</small></span></button>
|
<button type="button" role="menuitem" onclick={() => { syncOpen = false; onFetchPrune(); }}><CloudDownload size={15} /><span><strong>Fetch + Prune</strong><small>{isGerman ? "Veraltete Remote-Branches entfernen" : "Remove stale remote branches"}</small></span></button>
|
||||||
<button type="button" role="menuitem" onclick={() => { openMenu = null; onForcePush(); }}><Upload size={15} /><span><strong>Force with lease</strong><small>{isGerman ? "Sicheres Pushen nach Rebase" : "Safe push after rebase"}</small></span></button>
|
<button type="button" role="menuitem" onclick={() => { syncOpen = false; onForcePush(); }}><Upload size={15} /><span><strong>Force with lease</strong><small>{isGerman ? "Sicheres Pushen nach Rebase" : "Safe push after rebase"}</small></span></button>
|
||||||
<button type="button" role="menuitem" onclick={() => { openMenu = null; onSyncOptions(); }}><Settings2 size={15} /><span><strong>{isGerman ? "Remotes & Strategien" : "Remotes & strategies"}</strong><small>{isGerman ? "Upstream, Pull und Remote verwalten" : "Manage upstream, pull and remotes"}</small></span></button>
|
<button type="button" role="menuitem" onclick={() => { syncOpen = false; onSyncOptions(); }}><Settings2 size={15} /><span><strong>{isGerman ? "Remotes & Strategien" : "Remotes & strategies"}</strong><small>{isGerman ? "Upstream, Pull und Remote verwalten" : "Manage upstream, pull and remotes"}</small></span></button>
|
||||||
<button type="button" role="menuitem" onclick={() => { openMenu = null; onOpenLfs(); }}><Box size={15} /><span><strong>Git LFS</strong><small>{isGerman ? "Große Dateien und LFS-Installation verwalten" : "Manage large files and LFS installation"}</small></span></button>
|
<button type="button" role="menuitem" onclick={() => { syncOpen = false; onOpenLfs(); }}><Box size={15} /><span><strong>Git LFS</strong><small>{isGerman ? "Große Dateien und LFS-Installation verwalten" : "Manage large files and LFS installation"}</small></span></button>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
@@ -186,12 +187,12 @@
|
|||||||
<div class="repo-history-wrap">
|
<div class="repo-history-wrap">
|
||||||
<button
|
<button
|
||||||
class="repo-action history-trigger"
|
class="repo-action history-trigger"
|
||||||
class:active={openMenu === "history"}
|
class:active={historyOpen}
|
||||||
type="button"
|
type="button"
|
||||||
onclick={() => { openMenu = openMenu === "history" ? null : "history"; }}
|
onclick={() => { historyOpen = !historyOpen; }}
|
||||||
disabled={!hasRepository || isBusy}
|
disabled={!hasRepository || isBusy}
|
||||||
aria-haspopup="menu"
|
aria-haspopup="menu"
|
||||||
aria-expanded={openMenu === "history"}
|
aria-expanded={historyOpen}
|
||||||
title={isGerman ? "Verlauf und Rebase" : "History and rebase"}
|
title={isGerman ? "Verlauf und Rebase" : "History and rebase"}
|
||||||
>
|
>
|
||||||
<History size={15} aria-hidden="true" />
|
<History size={15} aria-hidden="true" />
|
||||||
@@ -199,7 +200,7 @@
|
|||||||
<ChevronDown class="history-chevron" size={13} aria-hidden="true" />
|
<ChevronDown class="history-chevron" size={13} aria-hidden="true" />
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{#if openMenu === "history"}
|
{#if historyOpen}
|
||||||
<div class="repo-history-menu" role="menu">
|
<div class="repo-history-menu" role="menu">
|
||||||
<button type="button" role="menuitem" onclick={() => runHistoryAction(onReflog)}>
|
<button type="button" role="menuitem" onclick={() => runHistoryAction(onReflog)}>
|
||||||
<History size={15} aria-hidden="true" />
|
<History size={15} aria-hidden="true" />
|
||||||
|
|||||||
Reference in New Issue
Block a user