31 lines
788 B
TypeScript
31 lines
788 B
TypeScript
import { onMounted, ref } from 'vue';
|
|
|
|
import { apiClient } from '../api/client';
|
|
import type { components } from '../api/schema';
|
|
|
|
type Meta = components['schemas']['Meta'];
|
|
|
|
export function useMeta() {
|
|
const isLoading = ref(false);
|
|
const metadata = ref<Meta | null>(null);
|
|
const error = ref<string | null>(null);
|
|
|
|
const getMetadata = async () => {
|
|
isLoading.value = true;
|
|
try {
|
|
const { data } = await apiClient.GET('/api/meta');
|
|
error.value = null;
|
|
metadata.value = data as Meta;
|
|
} catch (err: any) {
|
|
console.error('Failed to fetch metadata:', err);
|
|
error.value = err.message || 'Failed to fetch metadata';
|
|
} finally {
|
|
isLoading.value = false;
|
|
}
|
|
};
|
|
|
|
onMounted(getMetadata);
|
|
|
|
return { isLoading, metadata, error };
|
|
}
|