mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-08-17 21:25:54 +02:00
Merge branch 'staging' of https://github.com/OpenSignLabs/OpenSign into raktima-opensignlabs-patch-10
This commit is contained in:
Generated
+521
-544
File diff suppressed because it is too large
Load Diff
@@ -47,7 +47,8 @@
|
||||
"regex-parser": "^2.3.0",
|
||||
"serve": "^14.2.3",
|
||||
"styled-components": "^4.4.1",
|
||||
"web-vitals": "^4.0.1"
|
||||
"web-vitals": "^4.0.1",
|
||||
"ws": "^8.17.1"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "serve -s build",
|
||||
@@ -90,15 +91,16 @@
|
||||
"commitizen": "^4.3.0",
|
||||
"daisyui": "^4.12.2",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-react": "^7.34.1",
|
||||
"lint-staged": "^15.2.5",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-react": "^7.34.3",
|
||||
"lint-staged": "^15.2.7",
|
||||
"postcss": "^8.4.38",
|
||||
"prettier": "^2.8.8",
|
||||
"pretty-quick": "^3.3.1",
|
||||
"prettier": "^3.3.2",
|
||||
"pretty-quick": "^4.0.0",
|
||||
"tailwindcss": "^3.4.4"
|
||||
},
|
||||
"overrides": {
|
||||
"nth-check": "$nth-check"
|
||||
"nth-check": "$nth-check",
|
||||
"ws":"$ws"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ const Header = ({ showSidebar }) => {
|
||||
{!isSubscribe && (
|
||||
<div>
|
||||
<button
|
||||
className="text-xs bg-[#002864] p-2 text-white rounded shadow"
|
||||
className="text-xs md:text-sm shadow op-btn op-btn-outline op-btn-sm md:op-btn-md op-btn-accent"
|
||||
onClick={() => navigate("/subscription")}
|
||||
>
|
||||
Upgrade Now
|
||||
|
||||
@@ -321,7 +321,7 @@ function DriveBody(props) {
|
||||
<tr onClick={() => handleOnclikFolder(data)}>
|
||||
<td className="cursor-pointer flex items-center">
|
||||
<i
|
||||
className="fa fa-folder mr-[8px] text-[26px] text-[#f0ad26]"
|
||||
className="fa fa-folder mr-[8px] text-[26px] op-text-secondary"
|
||||
aria-hidden="true"
|
||||
></i>
|
||||
<span className="text-[12px] font-medium">{data.Name}</span>
|
||||
@@ -334,7 +334,7 @@ function DriveBody(props) {
|
||||
) : (
|
||||
<tr onClick={() => checkPdfStatus(data)}>
|
||||
<td className="cursor-pointer flex items-center">
|
||||
<i className="fa-solid fa-file-lines mr-[8px] text-[26px] text-neutral"></i>
|
||||
<i className="fa-solid fa-file-lines mr-[8px] text-[26px] op-text-primary"></i>
|
||||
<span className="text-[12px] font-medium">{data.Name}</span>
|
||||
</td>
|
||||
<td>{createddate}</td>
|
||||
@@ -364,7 +364,7 @@ function DriveBody(props) {
|
||||
className="w-full h-full"
|
||||
/> */}
|
||||
<i
|
||||
className="fa-solid fa-folder text-[100px] mx-auto text-secondary"
|
||||
className="fa-solid fa-folder text-[100px] mx-auto op-text-secondary"
|
||||
onClick={() => handleOnclikFolder(data)}
|
||||
></i>
|
||||
{rename === data.objectId ? (
|
||||
|
||||
@@ -6,6 +6,7 @@ import { getBase64FromUrl } from "../../constant/Utils";
|
||||
import { themeColor } from "../../constant/const";
|
||||
import printModule from "print-js";
|
||||
import Loader from "../../primitives/Loader";
|
||||
import ModalUi from "../../primitives/ModalUi";
|
||||
|
||||
function EmailComponent({
|
||||
isEmail,
|
||||
@@ -170,146 +171,146 @@ function EmailComponent({
|
||||
<div>
|
||||
{/* isEmail */}
|
||||
{isEmail && (
|
||||
<div className="modaloverlay">
|
||||
<div className="modalcontainer">
|
||||
{isLoading && (
|
||||
<div className="absolute w-full h-full flex flex-col justify-center items-center z-[20] bg-[#e6f2f2] bg-opacity-80">
|
||||
<Loader />
|
||||
<span className="text-[12px] font-bold">
|
||||
This might take some time
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
<div style={{ background: "#32a3ac" }} className="modalheader">
|
||||
<span className="text-white">Successfully signed!</span>
|
||||
<div className="flex flex-row">
|
||||
<div></div>
|
||||
{!isAndroid && (
|
||||
<button
|
||||
onClick={handleToPrint}
|
||||
className="op-btn op-btn-neutral op-btn-sm text-[15px]"
|
||||
>
|
||||
<i className="fa fa-print" aria-hidden="true"></i>
|
||||
Print
|
||||
</button>
|
||||
)}
|
||||
<button
|
||||
className="op-btn op-btn-primary op-btn-sm text-[15px] ml-2"
|
||||
onClick={() => handleDownloadPdf()}
|
||||
>
|
||||
<i className="fa fa-download" aria-hidden="true"></i>
|
||||
Download
|
||||
</button>
|
||||
</div>
|
||||
<ModalUi isOpen showHeader={false}>
|
||||
{isLoading && (
|
||||
<div className="absolute w-full h-full flex flex-col justify-center items-center z-[20] bg-[#e6f2f2]/70">
|
||||
<Loader />
|
||||
<span className="text-[12px] font-bold">
|
||||
This might take some time
|
||||
</span>
|
||||
</div>
|
||||
<div className="h-full p-[20px]">
|
||||
{isEmailCelebration && (
|
||||
<div className="absolute w-[100%] flex justify-center items-center">
|
||||
<img alt="celeb" width={300} height={250} src={celebration} />
|
||||
</div>
|
||||
)}
|
||||
<p className="font-medium text-[15px] mb-[5px] text-base-content align-baseline">
|
||||
Recipients added here will get a copy of the signed document.
|
||||
</p>
|
||||
{emailList.length > 0 ? (
|
||||
<>
|
||||
<div className="addEmail">
|
||||
<div className="flex flex-row flex-wrap">
|
||||
{emailList.map((data, ind) => {
|
||||
return (
|
||||
<div
|
||||
className="flex flex-row items-center bg-[#47a3ad] m-[4px] rounded-md py-[5px] px-[10px]"
|
||||
key={ind}
|
||||
>
|
||||
<span className="text-white text-[13px]">
|
||||
{data}
|
||||
</span>
|
||||
<span
|
||||
className="text-white text-[13px] font-semibold ml-[7px] cursor-pointer"
|
||||
onClick={() => removeChip(ind)}
|
||||
>
|
||||
<i className="fa-solid fa-xmark"></i>
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
{emailList.length <= 9 && (
|
||||
<input
|
||||
type="text"
|
||||
value={emailValue}
|
||||
className="p-[10px] pb-[20px] rounded w-full text-[15px] bg-white outline-none"
|
||||
onChange={handleEmailValue}
|
||||
onKeyDown={handleEnterPress}
|
||||
onBlur={() => {
|
||||
if (emailValue) {
|
||||
handleEnterPress("add");
|
||||
}
|
||||
}}
|
||||
required
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<div>
|
||||
<input
|
||||
type="text"
|
||||
value={emailValue}
|
||||
className="p-[10px] pb-[20px] rounded w-full text-[15px] outline-none bg-white border-2 border-[#47a3ad]"
|
||||
onChange={handleEmailValue}
|
||||
onKeyDown={handleEnterPress}
|
||||
placeholder="Add the email addresses"
|
||||
onBlur={() => {
|
||||
if (emailValue) {
|
||||
handleEnterPress("add");
|
||||
}
|
||||
}}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<div className="flex justify-between items-center py-[10px] px-[20px] border-b-[1px] border-base-content">
|
||||
<span className="text-base-content font-semibold">
|
||||
Successfully signed!
|
||||
</span>
|
||||
<div className="flex flex-row">
|
||||
<div></div>
|
||||
{!isAndroid && (
|
||||
<button
|
||||
onClick={handleToPrint}
|
||||
className="op-btn op-btn-neutral op-btn-sm text-[15px]"
|
||||
>
|
||||
<i className="fa fa-print" aria-hidden="true"></i>
|
||||
Print
|
||||
</button>
|
||||
)}
|
||||
<button
|
||||
className={`${
|
||||
emailValue ? "cursor-pointer" : "cursor-default"
|
||||
} op-btn op-btn-primary op-btn-sm m-2 shadow-md`}
|
||||
onClick={() => {
|
||||
if (emailValue) {
|
||||
handleEnterPress("add");
|
||||
}
|
||||
}}
|
||||
className="op-btn op-btn-primary op-btn-sm text-[15px] ml-2"
|
||||
onClick={() => handleDownloadPdf()}
|
||||
>
|
||||
<i className="fa fa-plus" aria-hidden="true"></i>
|
||||
</button>
|
||||
|
||||
<div className="bg-[#e3e2e1] mt-[10px] p-[5px] rounded">
|
||||
<span className="font-bold">Note: </span>
|
||||
<span className="text-[15px]">
|
||||
You can only send to ten recipients at a time.
|
||||
</span>
|
||||
</div>
|
||||
<div className="h-[1px] w-full my-[15px] bg-[#9f9f9f]"></div>
|
||||
<button
|
||||
type="button"
|
||||
className="op-btn op-btn-primary"
|
||||
onClick={() => emailList.length > 0 && sendEmail()}
|
||||
>
|
||||
Send
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="op-btn op-btn-ghost ml-2"
|
||||
onClick={() => {
|
||||
setIsEmail(false);
|
||||
setEmailValue("");
|
||||
setEmailList([]);
|
||||
}}
|
||||
>
|
||||
Close
|
||||
<i className="fa fa-download" aria-hidden="true"></i>
|
||||
Download
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="h-full p-[20px]">
|
||||
{isEmailCelebration && (
|
||||
<div className="absolute w-[100%] flex justify-center items-center">
|
||||
<img alt="celeb" width={300} height={250} src={celebration} />
|
||||
</div>
|
||||
)}
|
||||
<p className="font-medium text-[15px] mb-[5px] text-base-content align-baseline">
|
||||
Recipients added here will get a copy of the signed document.
|
||||
</p>
|
||||
{emailList.length > 0 ? (
|
||||
<>
|
||||
<div className="p-0 border-[1.5px] op-border-primary rounded w-full text-[15px]">
|
||||
<div className="flex flex-row flex-wrap">
|
||||
{emailList.map((data, ind) => {
|
||||
return (
|
||||
<div
|
||||
className="flex flex-row items-center op-bg-primary m-[4px] rounded-md py-[5px] px-[10px]"
|
||||
key={ind}
|
||||
>
|
||||
<span className="text-base-100 text-[13px]">
|
||||
{data}
|
||||
</span>
|
||||
<span
|
||||
className="text-base-100 text-[13px] font-semibold ml-[7px] cursor-pointer"
|
||||
onClick={() => removeChip(ind)}
|
||||
>
|
||||
<i className="fa-solid fa-xmark"></i>
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
{emailList.length <= 9 && (
|
||||
<input
|
||||
type="text"
|
||||
value={emailValue}
|
||||
className="p-[10px] pb-[20px] rounded w-full text-[15px] bg-transparent outline-none"
|
||||
onChange={handleEmailValue}
|
||||
onKeyDown={handleEnterPress}
|
||||
onBlur={() => {
|
||||
if (emailValue) {
|
||||
handleEnterPress("add");
|
||||
}
|
||||
}}
|
||||
required
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<div>
|
||||
<input
|
||||
type="text"
|
||||
value={emailValue}
|
||||
className="p-[10px] pb-[20px] rounded w-full text-[15px] outline-none bg-transparent border-[1.5px] op-border-primary"
|
||||
onChange={handleEmailValue}
|
||||
onKeyDown={handleEnterPress}
|
||||
placeholder="Add the email addresses"
|
||||
onBlur={() => {
|
||||
if (emailValue) {
|
||||
handleEnterPress("add");
|
||||
}
|
||||
}}
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<button
|
||||
className={`${
|
||||
emailValue ? "cursor-pointer" : "cursor-default"
|
||||
} op-btn op-btn-primary op-btn-sm m-2 shadow-md`}
|
||||
onClick={() => {
|
||||
if (emailValue) {
|
||||
handleEnterPress("add");
|
||||
}
|
||||
}}
|
||||
>
|
||||
<i className="fa fa-plus" aria-hidden="true"></i>
|
||||
</button>
|
||||
|
||||
<div className="bg-[#e3e2e1] mt-[10px] p-[5px] rounded">
|
||||
<span className="font-bold">Note: </span>
|
||||
<span className="text-[15px]">
|
||||
You can only send to ten recipients at a time.
|
||||
</span>
|
||||
</div>
|
||||
<hr className="w-full my-[15px] bg-base-content" />
|
||||
<button
|
||||
type="button"
|
||||
className="op-btn op-btn-primary"
|
||||
onClick={() => emailList.length > 0 && sendEmail()}
|
||||
>
|
||||
Send
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="op-btn op-btn-ghost ml-2"
|
||||
onClick={() => {
|
||||
setIsEmail(false);
|
||||
setEmailValue("");
|
||||
setEmailList([]);
|
||||
}}
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</ModalUi>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -13,7 +13,7 @@ function PrevNext({ pageNumber, allPages, changePage }) {
|
||||
return (
|
||||
<div className="flex items-center">
|
||||
<button
|
||||
className="op-btn op-btn-secondary op-btn-xs md:op-btn-sm font-semibold text-xs"
|
||||
className="op-btn op-btn-neutral op-btn-xs md:op-btn-sm font-semibold text-xs"
|
||||
disabled={pageNumber <= 1}
|
||||
onClick={previousPage}
|
||||
>
|
||||
@@ -26,7 +26,7 @@ function PrevNext({ pageNumber, allPages, changePage }) {
|
||||
{pageNumber || (allPages ? 1 : "--")} of {allPages || "--"}
|
||||
</span>
|
||||
<button
|
||||
className="op-btn op-btn-secondary op-btn-xs md:op-btn-sm font-semibold text-xs"
|
||||
className="op-btn op-btn-neutral op-btn-xs md:op-btn-sm font-semibold text-xs"
|
||||
disabled={pageNumber >= allPages}
|
||||
onClick={nextPage}
|
||||
>
|
||||
|
||||
@@ -118,7 +118,7 @@ const CreateFolder = ({ parentFolderId, onSuccess, folderCls }) => {
|
||||
<Loader />
|
||||
</div>
|
||||
)}
|
||||
<h1 className="text-base font-semibold">Create Folder</h1>
|
||||
<h1 className="text-base font-semibold mt-[0.4rem]">Create Folder</h1>
|
||||
<div className="text-xs mt-2">
|
||||
<label className="block">
|
||||
Name<span className="text-red-500 text-[13px]">*</span>
|
||||
|
||||
@@ -44,12 +44,12 @@ const SelectFolder = ({ required, onSuccess, folderCls, isReset }) => {
|
||||
const FolderQuery = new Parse.Query(folderCls);
|
||||
if (folderPtr) {
|
||||
FolderQuery.equalTo("Folder", folderPtr);
|
||||
FolderQuery.equalTo("Type", "Folder");
|
||||
FolderQuery.notEqualTo("IsArchive", true);
|
||||
FolderQuery.descending("Type");
|
||||
} else {
|
||||
FolderQuery.doesNotExist("Folder");
|
||||
FolderQuery.equalTo("Type", "Folder");
|
||||
FolderQuery.notEqualTo("IsArchive", true);
|
||||
FolderQuery.descending("Type");
|
||||
}
|
||||
|
||||
const res = await FolderQuery.find();
|
||||
@@ -220,7 +220,7 @@ const SelectFolder = ({ required, onSuccess, folderCls, isReset }) => {
|
||||
handleClose={handleCancel}
|
||||
>
|
||||
<div className="w-full min-w-[300px] md:min-w-[500px] max-w-[500px] px-3">
|
||||
<div className="py-2 text-[#ac4848] text-[14px] font-[500]">
|
||||
<div className="pt-1 text-[#ac4848] text-[14px] font-[500]">
|
||||
<span
|
||||
className="cursor-pointer"
|
||||
title="OpenSign™ Drive"
|
||||
@@ -241,21 +241,31 @@ const SelectFolder = ({ required, onSuccess, folderCls, isReset }) => {
|
||||
{" / "}
|
||||
</React.Fragment>
|
||||
))}
|
||||
<hr />
|
||||
<hr className="bg-[#8a8a8a] mt-[0.750rem]" />
|
||||
</div>
|
||||
<div className="mt-2 mb-3">
|
||||
<div className="mb-2">
|
||||
<div className="max-h-[210px] overflow-auto">
|
||||
{!isAdd &&
|
||||
folderList.length > 0 &&
|
||||
folderList.map((folder) => (
|
||||
<div
|
||||
key={folder.Name}
|
||||
className="border-b-[1px] border-[#8a8a8a] px-2 py-2 mb-2 cursor-pointer "
|
||||
onClick={() => handleSelect(folder)}
|
||||
key={folder.objectId}
|
||||
className={`${
|
||||
folder.Type === "Folder"
|
||||
? "cursor-pointer"
|
||||
: "cursor-default"
|
||||
} border-b-[1px] border-[#8a8a8a] py-2 mb-0.5"`}
|
||||
onClick={() =>
|
||||
folder.Type === "Folder" && handleSelect(folder)
|
||||
}
|
||||
>
|
||||
<div className="flex items-center gap-2">
|
||||
<i
|
||||
className="fa fa-folder text-neutral text-[1.4rem]"
|
||||
className={`${
|
||||
folder.Type === "Folder"
|
||||
? "fa fa-folder op-text-secondary"
|
||||
: "fa fa-file op-text-primary"
|
||||
} text-[1.4rem]`}
|
||||
aria-hidden="true"
|
||||
></i>
|
||||
<span className="font-semibold">{folder.Name}</span>
|
||||
|
||||
@@ -49,4 +49,25 @@ body {
|
||||
.op-text-warning {
|
||||
@apply text-warning;
|
||||
}
|
||||
.op-border-primary{
|
||||
@apply border-primary
|
||||
}
|
||||
/* CSS for scrollbar customization */
|
||||
* {
|
||||
scrollbar-width: thin; /* For Firefox */
|
||||
scrollbar-color: gray; /* For Firefox */
|
||||
}
|
||||
|
||||
/* For webkit-based browsers like Chrome, Safari */
|
||||
*::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar-track {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar-thumb {
|
||||
background-color: gray;
|
||||
border-radius: 10px;
|
||||
}
|
||||
@@ -191,7 +191,7 @@ function GenerateToken() {
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => navigation("/subscription")}
|
||||
className="rounded hover:bg-[#15b4e9] border-[1px] border-[#15b4e9] text-[#15b4e9] hover:text-white px-11 py-2 text-xs md:text-base focus:outline-none"
|
||||
className="text-xs md:text-sm shadow op-btn op-btn-outline op-btn-accent"
|
||||
>
|
||||
Upgrade Now
|
||||
</button>
|
||||
|
||||
@@ -175,7 +175,7 @@ function Webhook() {
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => navigation("/subscription")}
|
||||
className="rounded hover:bg-[#15b4e9] border-[1px] border-[#15b4e9] text-[#15b4e9] hover:text-white px-11 py-2 text-xs md:text-base focus:outline-none"
|
||||
className="text-xs md:text-sm shadow op-btn op-btn-outline op-btn-accent"
|
||||
>
|
||||
Upgrade Now
|
||||
</button>
|
||||
|
||||
@@ -1303,46 +1303,56 @@ const ReportTable = (props) => {
|
||||
))}
|
||||
</div>
|
||||
{isViewShare[item.objectId] && (
|
||||
<div className="fixed z-[999] inset-0 w-full h-full bg-black bg-opacity-[75%]">
|
||||
<div className="fixed top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-sm bg-white rounded shadow-md max-h-90 min-w-[90%] md:min-w-[400px] overflow-y-auto max-h-[340px] md:max-h-[400px] hide-scrollbar">
|
||||
<ModalUi
|
||||
isOpen
|
||||
showHeader={
|
||||
props.ReportName === "Templates" && true
|
||||
}
|
||||
title={"Signers"}
|
||||
reduceWidth={"md:max-w-[450px]"}
|
||||
handleClose={() => setIsViewShare({})}
|
||||
>
|
||||
{props.ReportName !== "Templates" && (
|
||||
<div
|
||||
className="cursor-pointer absolute text-white text-[22px] font-medium rounded-full z-50 top-1 right-3"
|
||||
className="op-btn op-btn-sm op-btn-circle op-btn-ghost text-base-content absolute right-2 top-1 z-40"
|
||||
onClick={() => setIsViewShare({})}
|
||||
>
|
||||
×
|
||||
✕
|
||||
</div>
|
||||
|
||||
<table className="table-auto w-full">
|
||||
<thead className="text-white h-[38px] sticky top-0 bg-[#32a3ac]">
|
||||
<tr>
|
||||
)}
|
||||
<table className="op-table w-full overflow-auto">
|
||||
<thead className="h-[38px] sticky top-0 text-base-content text-sm pt-[15px] px-[20px]">
|
||||
<tr>
|
||||
{props.ReportName === "Templates" && (
|
||||
<th className="p-2 pl-3 w-[30%]">
|
||||
Roles
|
||||
</th>
|
||||
)}
|
||||
<th className="pl-3 py-2">
|
||||
{props.ReportName === "Templates"
|
||||
? "Email"
|
||||
: "Signers"}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{item.Placeholders.map((x, i) => (
|
||||
<tr key={i} className="text-sm font-medium">
|
||||
{props.ReportName === "Templates" && (
|
||||
<th className="p-2 pl-3">Roles</th>
|
||||
)}
|
||||
<th className="p-2">Signers</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{item.Placeholders.map((x, i) => (
|
||||
<tr
|
||||
key={i}
|
||||
className="text-sm font-normal text-black odd:bg-white even:bg-gray-200"
|
||||
>
|
||||
{props.ReportName === "Templates" && (
|
||||
<td className="text-[12px] p-2 pl-3">
|
||||
{x.Role && x.Role}
|
||||
</td>
|
||||
)}
|
||||
<td className="text-[12px] p-2 break-all">
|
||||
{x.email
|
||||
? x.email
|
||||
: x?.signerPtr?.Email || "-"}
|
||||
<td className="text-[12px] p-2 pl-3 w-[30%]">
|
||||
{x.Role && x.Role}
|
||||
</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<td className="pl-3 text-[12px] py-2 break-all">
|
||||
{x.email
|
||||
? x.email
|
||||
: x?.signerPtr?.Email || "-"}
|
||||
</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</ModalUi>
|
||||
)}
|
||||
{isDeleteModal[item.objectId] && (
|
||||
<ModalUi
|
||||
|
||||
@@ -12,14 +12,15 @@ const ModalUi = ({
|
||||
reduceWidth,
|
||||
showHeaderMessage
|
||||
}) => {
|
||||
const width = reduceWidth;
|
||||
return (
|
||||
<>
|
||||
{isOpen && (
|
||||
<dialog className="op-modal op-modal-open">
|
||||
<div
|
||||
className={`${
|
||||
reduceWidth || "md:min-w-[500px]"
|
||||
} op-modal-box p-0 max-h-90 min-w-[90%] overflow-y-auto hide-scrollbar text-sm`}
|
||||
width || "md:min-w-[500px]"
|
||||
} op-modal-box p-0 max-h-90 overflow-y-auto hide-scrollbar text-sm`}
|
||||
>
|
||||
{showHeader && (
|
||||
<>
|
||||
|
||||
@@ -9,7 +9,7 @@ function Upgrade({ message }) {
|
||||
const url = window.location.origin + "/subscription";
|
||||
openInNewTab(url);
|
||||
}}
|
||||
className="text-blue-800 text-sm cursor-pointer underline"
|
||||
className="op-link op-link-accent text-sm"
|
||||
>
|
||||
{message ? message : "Upgrade now"}
|
||||
</span>
|
||||
|
||||
@@ -42,14 +42,14 @@ module.exports = {
|
||||
"sunset",
|
||||
{
|
||||
opensigncss: {
|
||||
primary: "#034687",
|
||||
primary: "#002864",
|
||||
"primary-content": "#ccd9e8",
|
||||
secondary: "#151B25",
|
||||
"secondary-content": "#cacccf",
|
||||
accent: "#E10032",
|
||||
"accent-content": "#ffd8d5",
|
||||
neutral: "#F0D7D9",
|
||||
"neutral-content": "#141111",
|
||||
neutral: "#99c2ff",
|
||||
"neutral-content": "#f1f1f1",
|
||||
"base-100": "#ffffff",
|
||||
"base-200": "#dedede",
|
||||
"base-300": "#bebebe",
|
||||
|
||||
Generated
+4
-4
@@ -44,7 +44,7 @@
|
||||
"mongodb-runner": "^5.6.2",
|
||||
"nodemon": "^3.1.3",
|
||||
"nyc": "15.1.0",
|
||||
"prettier": "^3.3.0",
|
||||
"prettier": "^3.3.2",
|
||||
"uglify-js": "^3.17.4"
|
||||
},
|
||||
"engines": {
|
||||
@@ -10298,9 +10298,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz",
|
||||
"integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==",
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
|
||||
"integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"prettier": "bin/prettier.cjs"
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"mongodb-runner": "^5.6.2",
|
||||
"nodemon": "^3.1.3",
|
||||
"nyc": "15.1.0",
|
||||
"prettier": "^3.3.0",
|
||||
"prettier": "^3.3.2",
|
||||
"uglify-js": "^3.17.4"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
Reference in New Issue
Block a user