Files
OllaHub/hooks/use-local-models.ts
T
Evandro Fonseca Junior b2a06ed994 fix: address issues in model pull and chat API
- Refactored model pull logic to improve error handling and user feedback.
- Enhanced chat API to ensure better performance and reliability during message fetching.
- Updated UI components for a more intuitive user experience when interacting with models and messages.
2025-11-19 00:01:14 -03:00

44 lines
1.0 KiB
TypeScript

import { useState, useEffect, useCallback } from 'react';
import { invoke } from '@tauri-apps/api/core';
export interface LocalModel {
name: string;
size: string;
id: string;
modified_at: string;
}
export function useLocalModels() {
const [models, setModels] = useState<LocalModel[]>([]);
const [loading, setLoading] = useState(true);
const fetchModels = useCallback(async () => {
setLoading(true);
try {
const list = await invoke<LocalModel[]>('list_local_models');
setModels(list);
} catch (error) {
console.error("Failed to list models:", error);
} finally {
setLoading(false);
}
}, []);
const deleteModel = async (name: string) => {
try {
await invoke('delete_model', { name });
await fetchModels(); // Refresh list
} catch (error) {
console.error("Failed to delete model:", error);
throw error;
}
};
useEffect(() => {
fetchModels();
}, [fetchModels]);
return { models, loading, refresh: fetchModels, deleteModel };
}