diff --git a/frontend/src/data/document.js b/frontend/src/data/document.js new file mode 100644 index 00000000..052023b5 --- /dev/null +++ b/frontend/src/data/document.js @@ -0,0 +1,36 @@ +import { createToast } from '@/utils' +import { createDocumentResource } from 'frappe-ui' + +const documentsCache = {} + +export function useDocument(doctype, docname) { + documentsCache[doctype] = documentsCache[doctype] || {} + + if (!documentsCache[doctype][docname]) { + documentsCache[doctype][docname] = createDocumentResource({ + doctype: doctype, + name: docname, + setValue: { + onSuccess: () => { + createToast({ + title: 'Data Updated', + icon: 'check', + iconClasses: 'text-ink-green-3', + }) + }, + onError: (err) => { + createToast({ + title: 'Error', + text: err.messages[0], + icon: 'x', + iconClasses: 'text-red-600', + }) + }, + }, + }) + } + + return { + document: documentsCache[doctype][docname], + } +}