UNPKG

@tantainnovative/ndpr-toolkit

Version:

Nigeria Data Protection Toolkit — enterprise-grade compliance components for the Nigeria Data Protection Act (NDPA) 2023

1 lines 1.58 kB
import {b as b$1,c,d}from'./chunk-XP5PL6K7.mjs';import {b,a}from'./chunk-ZJYULEER.mjs';import {useRef,useState,useEffect,useCallback,useMemo}from'react';function T({initialData:w,adapter:y,onAdd:R,onUpdate:m,onArchive:P}){let d$1=useRef(y);d$1.current=y;let[s,p]=useState(w),[x,u]=useState(true);useEffect(()=>{if(!d$1.current){u(false);return}let r=false;try{let e=d$1.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$1=useCallback(r=>{d$1.current&&Promise.resolve(d$1.current.save(r)).catch(e=>{console.warn("[ndpr-toolkit] Failed to save ROPA:",e);});},[]),D=useCallback(r=>{p(e=>{let t=b(a({},e),{records:[...e.records,r],lastUpdated:Date.now()});return a$1(t),t}),R==null||R(r);},[R,a$1]),b$2=useCallback((r,e)=>{p(t=>{let c=b(a({},t),{records:t.records.map(O=>O.id===r?b(a(a({},O),e),{updatedAt:Date.now()}):O),lastUpdated:Date.now()});return a$1(c),c}),m==null||m(r,e);},[m,a$1]),L=useCallback(r=>{p(e=>{let t=b(a({},e),{records:e.records.map(c=>c.id===r?b(a({},c),{status:"archived",updatedAt:Date.now()}):c),lastUpdated:Date.now()});return a$1(t),t}),P==null||P(r);},[P,a$1]),U=useCallback(r=>s.records.find(e=>e.id===r),[s.records]),g=useMemo(()=>b$1(s),[s]),f=useMemo(()=>c(s),[s]),l=useMemo(()=>d(s),[s]),V=useCallback(()=>g,[g]),h=useCallback(()=>f,[f]),k=useCallback(()=>l,[l]);return {ropa:s,addRecord:D,updateRecord:b$2,archiveRecord:L,getRecord:U,getSummary:V,exportCSV:h,getComplianceGaps:k,summary:g,csv:f,complianceGaps:l,isLoading:x}}export{T as a};