📁 Projekt & Repository
📊 Commit-Verlauf
-
{logs.map((log, i) => (
- {log} ))}
Öffne einen lokalen Ordner oder lade Repos über die Toolbar.
import React, { useState, useEffect } from 'react'; import Settings from './Settings.jsx'; export default function App() { const [folder, setFolder] = useState(''); const [repoName, setRepoName] = useState(''); const [platform, setPlatform] = useState('gitea'); const [status, setStatus] = useState('Bereit'); const [showSettings, setShowSettings] = useState(false); const [branches, setBranches] = useState([]); const [selectedBranch, setSelectedBranch] = useState('main'); const [logs, setLogs] = useState([]); const [progress, setProgress] = useState(0); async function selectFolder() { const selected = await window.electronAPI.selectFolder(); if (!selected) return; setFolder(selected); const branchList = await window.electronAPI.getBranches({ folder: selected }); setBranches(branchList); if (branchList.includes('main')) setSelectedBranch('main'); else if (branchList.includes('master')) setSelectedBranch('master'); else if (branchList.length > 0) setSelectedBranch(branchList[0]); } async function createRepoHandler() { if (!repoName) return alert('Repo-Name erforderlich!'); setStatus('Repository wird erstellt…'); const result = await window.electronAPI.createRepo({ name: repoName, platform }); setStatus(result ? 'Repository erstellt!' : 'Fehler beim Erstellen des Repositories.'); } async function pushProjectHandler() { if (!folder) return alert('Bitte zuerst einen Projektordner auswählen!'); setStatus('Projekt wird gepusht…'); setProgress(0); const result = await window.electronAPI.pushProject({ folder, branch: selectedBranch, onProgress: (p) => setProgress(p), }); setStatus(result ? 'Projekt gepusht!' : 'Push fehlgeschlagen.'); if (result) { const logList = await window.electronAPI.getCommitLogs({ folder }); setLogs(logList); } } return (
Öffne einen lokalen Ordner oder lade Repos über die Toolbar.