Вроде работает
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
import { createEventDispatcher, onMount } from 'svelte';
|
||||
import { gitService } from '../../services/gitService';
|
||||
import { addToast as toast } from '../../lib/toasts.js';
|
||||
import { api } from '../../lib/api';
|
||||
// [/SECTION]
|
||||
|
||||
// [SECTION: PROPS]
|
||||
@@ -27,10 +28,32 @@
|
||||
let status = null;
|
||||
let diff = '';
|
||||
let loading = false;
|
||||
let generatingMessage = false;
|
||||
// [/SECTION]
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
// [DEF:handleGenerateMessage:Function]
|
||||
/**
|
||||
* @purpose Generates a commit message using LLM.
|
||||
*/
|
||||
async function handleGenerateMessage() {
|
||||
generatingMessage = true;
|
||||
try {
|
||||
console.log(`[CommitModal][Action] Generating commit message for dashboard ${dashboardId}`);
|
||||
// postApi returns the JSON data directly or throws an error
|
||||
const data = await api.postApi(`/git/repositories/${dashboardId}/generate-message`);
|
||||
message = data.message;
|
||||
toast('Commit message generated', 'success');
|
||||
} catch (e) {
|
||||
console.error(`[CommitModal][Coherence:Failed] ${e.message}`);
|
||||
toast(e.message || 'Failed to generate message', 'error');
|
||||
} finally {
|
||||
generatingMessage = false;
|
||||
}
|
||||
}
|
||||
// [/DEF:handleGenerateMessage:Function]
|
||||
|
||||
// [DEF:loadStatus:Function]
|
||||
/**
|
||||
* @purpose Загружает текущий статус репозитория и diff.
|
||||
@@ -99,8 +122,21 @@
|
||||
<!-- Left: Message and Files -->
|
||||
<div class="w-full md:w-1/3 flex flex-col">
|
||||
<div class="mb-4">
|
||||
<label class="block text-sm font-medium text-gray-700 mb-1">Commit Message</label>
|
||||
<textarea
|
||||
<div class="flex justify-between items-center mb-1">
|
||||
<label class="block text-sm font-medium text-gray-700">Commit Message</label>
|
||||
<button
|
||||
on:click={handleGenerateMessage}
|
||||
disabled={generatingMessage || loading}
|
||||
class="text-xs text-blue-600 hover:text-blue-800 disabled:opacity-50 flex items-center"
|
||||
>
|
||||
{#if generatingMessage}
|
||||
<span class="animate-spin mr-1">↻</span> Generating...
|
||||
{:else}
|
||||
<span class="mr-1">✨</span> Generate with AI
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
<textarea
|
||||
bind:value={message}
|
||||
class="w-full border rounded p-2 h-32 focus:ring-2 focus:ring-blue-500 outline-none resize-none"
|
||||
placeholder="Describe your changes..."
|
||||
|
||||
Reference in New Issue
Block a user