feat: improve file tree (#209)
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
import { useState, useCallback } from 'react';
|
||||
|
||||
export function useCopyToClipboard() {
|
||||
export function useCopyToClipboard(duration = 2000) {
|
||||
const [copied, setCopied] = useState(false);
|
||||
|
||||
const copy = useCallback(async (text: string) => {
|
||||
try {
|
||||
await navigator.clipboard.writeText(text);
|
||||
setCopied(true);
|
||||
setTimeout(() => setCopied(false), 2000);
|
||||
setTimeout(() => setCopied(false), duration);
|
||||
} catch (err) {
|
||||
console.error('Failed to copy:', err);
|
||||
}
|
||||
}, []);
|
||||
}, [duration]);
|
||||
|
||||
return { copied, copy };
|
||||
}
|
||||
|
||||
@@ -51,21 +51,21 @@ export function useGitOperations(sessionId: string | null): UseGitOperationsRetu
|
||||
if (!sessionId) {
|
||||
throw new Error('No session ID provided');
|
||||
}
|
||||
|
||||
|
||||
const client = getWebSocketClient();
|
||||
if (!client) {
|
||||
throw new Error('WebSocket not connected');
|
||||
}
|
||||
|
||||
|
||||
setIsLoading(true);
|
||||
setError(null);
|
||||
|
||||
|
||||
try {
|
||||
const result = await client.request<T>(action, {
|
||||
session_id: sessionId,
|
||||
...payload
|
||||
}, 60000); // 60s timeout for git operations
|
||||
|
||||
|
||||
setLastResult(result);
|
||||
if (!result.success && result.error) {
|
||||
setError(result.error);
|
||||
|
||||
Reference in New Issue
Block a user