jai #16

Merged
jaipandey merged 4 commits from jai into main 2025-08-05 06:44:08 +00:00
8 changed files with 45 additions and 12 deletions
Showing only changes of commit 7973f8f934 - Show all commits

11
src/assets/record.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 92 KiB

View File

@ -5,6 +5,7 @@ import ContactFormModal, { ContactData } from './ContactsFormModal';
import { Bounce, toast } from 'react-toastify';
import { IoMdAdd } from 'react-icons/io';
import LoaderUi from '../../helper/LoaderUi';
import logoRecord from '../../assets/record.svg'
type ContactSchema = [{
id: number,
@ -146,8 +147,16 @@ const Contacts = () => {
</tr>
) : contacts.length === 0 ? (
<tr>
<td colSpan="4" className="text-center py-4">No contacts found.</td>
</tr>
<td colSpan="4" className="text-center py-10 text-gray-500">
<div className="flex flex-col items-center justify-center">
<img
src={logoRecord}
alt="Record Not Found"
className="w-70 h-70 mb-4 opacity-70" // adjust size and appearance
/>
</div>
</td>
</tr>
) : (
contacts.map((contact) => (
<tr key={contact.id} className="hover:bg-gray-50">

View File

@ -11,6 +11,7 @@ import { FiEdit, FiTrash } from "react-icons/fi";
import { v4 as uuidv4 } from 'uuid';
interface ContactType {
id: string;
email: string;

View File

@ -114,7 +114,7 @@ const SignatureManager: React.FC = () => {
<div className="max-w-[84vw] mx-auto">
<>
{/* Header */}
<div className="flex items-center justify-between mb-8">
<div className="flex items-center justify-between mb-3">
<div>
<h1 className="text-[17px] font-medium text-gray-500 mb-2">Signatures</h1>
<p className="text-gray-300 text-sm">Add or update your name and signature styles.</p>
@ -126,7 +126,7 @@ const SignatureManager: React.FC = () => {
</div>
{/* Table Card */}
<div className="bg-white rounded-md shadow-md overflow-hidden border border-gray-100">
<div className="bg-white rounded-md overflow-hidden border border-gray-100">
{/* Table Header */}
<div className="bg-gray-50 border-b border-gray-200">
<div className="grid grid-cols-12 gap-4 px-6 py-4">
@ -206,7 +206,7 @@ const SignatureManager: React.FC = () => {
{/* Dropdown Menu */}
{activeDropdown === signature.id && (
<div className="absolute right-0 mt-0.5 w-28 bg-white rounded-lg shadow-xl border border-gray-200 z-10 py-1">
<div className="absolute right-0 mt-0.5 w-28 bg-white rounded-lg border border-gray-200 z-10 py-1">
<button
onClick={() => handleEdit(signature.id)}
className="w-full px-4 py-1 text-left text-gray-500 hover:bg-blue-50 hover:text-blue-700 flex items-center gap-3 text-sm transition-colors duration-150"
@ -232,7 +232,7 @@ const SignatureManager: React.FC = () => {
{/* Empty State (if no signatures) */}
{signatures.length === 0 && (
<div className=" rounded-xl shadow-lg p-12 text-center mt-8">
<div className=" rounded-xl p-12 text-center mt-8">
<div className="text-gray-400 mb-4">
<FiEdit3 className="w-16 h-16 mx-auto" />
</div>

View File

@ -24,7 +24,7 @@ const UserProfile: React.FC<UserProfileProps> = ({ userData }) => {
<div className="bg-white rounded-md shadow-sm flex w-full p-6">
{/* Profile Picture */}
<div className="flex-shrink-0 text-center">
<div className="w-20 h-20 bg-green-800 text-white font-bold text-2xl rounded-full flex items-center justify-center shadow-lg">
<div className="w-20 h-20 bg-[var(--primary)] text-white font-bold text-2xl rounded-full flex items-center justify-center shadow-lg">
{userData.name.slice(0,2).toUpperCase()}
</div>
</div>

View File

@ -7,6 +7,7 @@ import { useNavigate } from "react-router-dom";
import { useSelector } from "react-redux";
import { FaSpinner } from "react-icons/fa";
import LoaderUi from "../../helper/LoaderUi";
import logoRecord from '../../assets/record.svg';
@ -85,8 +86,8 @@ const Templates = () => {
}
const handleEditClick = (templateId: string) => {
setShowMenu(null);
navigate(`/process-step-one/${accountId}/template/${templateId}`);
setShowMenu(null);
navigate(`/process-step-one/${accountId}/template/${templateId}`);
}
return (
@ -209,9 +210,16 @@ const Templates = () => {
<tbody>
<tr>
<td colSpan="6" className="text-center py-10 text-gray-500">
No templates found.
<div className="flex flex-col items-center justify-center">
<img
src={logoRecord}
alt="Record Not Found"
className="w-70 h-70 mb-4 opacity-70" // adjust size and appearance
/>
</div>
</td>
</tr>
</tbody>
)}

View File

@ -79,8 +79,8 @@ const TransactionView = () => {
<div className='mt-2'>
{/* new Date(transactionDetails?.transaction?.lastModifiedAt * 1000) */}
<p className='text-slate-600'>From <span className='text-blue-600'>{transactionDetails?.transaction.createdBy.firstName + " " + transactionDetails?.transaction.createdBy.lastName}</span></p>
<p className=''><span className='text-slate-600 font-semibold'>Last Change on</span> <span className='text-slate-400'>{new Date(transactionDetails?.transaction?.lastModifiedAt * 1000).toISOString()}</span></p>
<p className='text-slate-600'>Created at <span>{new Date(transactionDetails?.transaction?.createdAt * 1000).toISOString()}</span></p>
<p className=''><span className='text-slate-600 font-semibold'>Last Change on</span> <span className='text-slate-400'>{(transactionDetails?.transaction?.lastModifiedAt)}</span></p>
<p className='text-slate-600'>Created at <span>{(transactionDetails?.transaction?.createdAt)}</span></p>
</div>
<p className='text-slate-600 text-[0.98rem] mt-2 font-semibold'>{transactionDetails?.transaction.status}</p>

4
src/types/images.d.ts vendored Normal file
View File

@ -0,0 +1,4 @@
declare module '*.png' {
const value: string;
export default value;
}