@tantainnovative/ndpr-toolkit
Version:
Nigeria Data Protection Toolkit — enterprise-grade compliance components for the Nigeria Data Protection Act (NDPA) 2023
1 lines • 1.85 kB
JavaScript
;var chunk4CVBQC66_js=require('./chunk-4CVBQC66.js'),chunkRFPLZDIO_js=require('./chunk-RFPLZDIO.js'),react=require('react');function T({initialData:w,adapter:y,onAdd:R,onUpdate:m,onArchive:P}){let d=react.useRef(y);d.current=y;let[s,p]=react.useState(w),[x,u]=react.useState(true);react.useEffect(()=>{if(!d.current){u(false);return}let r=false;try{let e=d.current.load();e instanceof Promise?e.then(t=>{r||(t&&p(t),u(!1));},()=>{r||u(!1);}):(e&&p(e),u(!1));}catch(e){r||u(false);}return ()=>{r=true;}},[]);let a=react.useCallback(r=>{d.current&&Promise.resolve(d.current.save(r)).catch(e=>{console.warn("[ndpr-toolkit] Failed to save ROPA:",e);});},[]),D=react.useCallback(r=>{p(e=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{records:[...e.records,r],lastUpdated:Date.now()});return a(t),t}),R==null||R(r);},[R,a]),b=react.useCallback((r,e)=>{p(t=>{let c=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},t),{records:t.records.map(O=>O.id===r?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a(chunkRFPLZDIO_js.a({},O),e),{updatedAt:Date.now()}):O),lastUpdated:Date.now()});return a(c),c}),m==null||m(r,e);},[m,a]),L=react.useCallback(r=>{p(e=>{let t=chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},e),{records:e.records.map(c=>c.id===r?chunkRFPLZDIO_js.b(chunkRFPLZDIO_js.a({},c),{status:"archived",updatedAt:Date.now()}):c),lastUpdated:Date.now()});return a(t),t}),P==null||P(r);},[P,a]),U=react.useCallback(r=>s.records.find(e=>e.id===r),[s.records]),g=react.useMemo(()=>chunk4CVBQC66_js.b(s),[s]),f=react.useMemo(()=>chunk4CVBQC66_js.c(s),[s]),l=react.useMemo(()=>chunk4CVBQC66_js.d(s),[s]),V=react.useCallback(()=>g,[g]),h=react.useCallback(()=>f,[f]),k=react.useCallback(()=>l,[l]);return {ropa:s,addRecord:D,updateRecord:b,archiveRecord:L,getRecord:U,getSummary:V,exportCSV:h,getComplianceGaps:k,summary:g,csv:f,complianceGaps:l,isLoading:x}}exports.a=T;