import { ApiError } from "@/lib/types" import { useState, useCallback } from "react" import { root } from '@repo/core' import { TemplateController, TemplateDetail } from "@repo/sdk" import { useError } from "./use-error" interface UseTemplateDetailParams { id: string } export const useTemplateDetail = () => { const [loading, setLoading] = useState(false) const [error, setError] = useState(null) const [data, setData] = useState() const execute = useCallback(async (params: UseTemplateDetailParams) => { setLoading(true) setError(null) const template = root.get(TemplateController) const { data, error } = await useError(async () => await template.get({ query: params })) if (error) { setError(error) setLoading(false) return { data: undefined, error } } setData(data) setLoading(false) return { data, error: null } }, []) const refetch = useCallback((params: UseTemplateDetailParams) => { return execute(params) }, [execute]) return { data, loading, error, execute, refetch, } }