@foreverrbum/ethsign
Version:
This package will allow you to electronically sign documents within your application
83 lines (66 loc) • 2.52 kB
JavaScript
import React, { useState, useEffect } from 'react';
import _ from 'lodash';
import checkbox from '../../assets/checkbox.svg';
import orange_checkbox from '../../assets/orange_checkbox.svg';
import checked_checkbox from '../../assets/checked_checkbox.svg';
import orange_checked_checkbox from '../../assets/orange_checked_checkbox.svg';
import { useIntl } from 'react-intl';
const SignatureFinder = (props) => {
const {mySigFields, instance, docPage, fieldsByPage, numOfSigned} = props;
const [active, handleActive] = useState(null)
const { formatMessage } = useIntl();
// currently mySigFields - > not signed sig fields of logged in user
useEffect(() => {
let isSubscribed = true;
handleActive(docPage)
return () => isSubscribed = false;
}, [docPage]);
useEffect(() => {
let isSubscribed = true;
console.log(mySigFields)
return () => isSubscribed = false;
}, [mySigFields]);
const findSignature = (idx, annot) => {
instance?.annotManager.jumpToAnnotation(annot);
}
return(
<>
{mySigFields && <div className="w-64 bg-gray-40 text-gray-80 text-15 flex flex-col py-5 ">
<div className="px-3 pb-4 border-b flex justify-between">
<span>
{formatMessage({id: 'SIGNATURES_REQUIRED'})}
</span>
<span>
{numOfSigned}/{mySigFields ? mySigFields.length:''}
</span>
</div>
<div className="py-2 px-3">
{fieldsByPage && fieldsByPage.map((byPage, idx)=>{
return(
<div className={`${active==byPage.page? 'text-orange-500':''} flex justify-between my-5 cursor-pointer`} onClick={()=>{findSignature(idx, byPage.annots[0])}}>
<div>
{formatMessage({id: 'PAGE_CAP_P'})} {byPage.page}
</div>
{byPage.signed == true?
<img src={active==byPage.page? orange_checked_checkbox:checked_checkbox} className=""/>
:
<img src={active==byPage.page? orange_checkbox:checkbox} className=""/>
}
</div>
)
})}
</div>
{/* <div
draggable
onDragStart={e => dragStart(e)}
onDragEnd={e => dragEnd(e, 'SIGNATURE')}
>
<button onClick={()=>{addField('SIGNATURE')}}>
Add a signature
</button>
</div> */}
</div>}
</>
);
}
export default SignatureFinder