Now I can see the Release Letter implementation patterns. Let me create an updated comprehensive plan based on what I learned:
From the Release Letter implementations, I've identified the core patterns:
Lender Side (Document Preview):
Sponsor Side (Management):
New Component: nda-signatory-form.tsx
Form fields matching Release Letter pattern:
Button layout:
Update Component: nda-document-viewer.tsx
Restructure layout:
Update Component: click-through-settings.tsx
Add new toggle section after "Automatically Enable Click Through for New Institution?":
Designated Signatory Enforcement
Update institution customization table:
New Component: signatory-management-modal.tsx
Two sections:
Authorized Signatories List (DataTable pattern similar to Release Letter)
Add New Signatory (form below or collapsible)
Update Component: audit-logs-modal.tsx
Extend columns to include signatory details:
Row expansion:
Filtering/Sorting:
Export Logs:
// Signatory information captured at acceptance
interface CapturedSignatory {
signatoryName: string
entityName: string
email: string
additionalEmails?: string[]
signingDate: Date // auto-filled
authorizedSignatoryId?: string // reference to authorized signatory if enforced
}
// NDA Acceptance Record (Audit Trail)
interface NDAAcceptanceRecord {
id: string
dealId: string
institutionId: string
status: 'accepted' | 'pending' | 'declined'
signatory?: CapturedSignatory
documentId: string
documentName: string
acceptedAt?: Date
declinedAt?: Date
declineReason?: string
}
// Authorized Signatory (Sponsor-managed)
interface AuthorizedSignatory {
id: string
dealId: string
institutionId: string
name: string
email: string
entity: string
status: 'active' | 'inactive'
createdAt: Date
}
// Deal Configuration
interface ClickThroughNDAConfig {
dealId: string
enabled: boolean
globalDocument: string
autoEnableNew: boolean
requireDesignatedSignatory: boolean
institutionConfigs: InstitutionNDAConfig[]
}
interface InstitutionNDAConfig {
institutionId: string
enabled: boolean
frequency: 'Everytime' | 'One Time'
document: string
enforceDesignatedSignatory: boolean
authorizedSignatories: AuthorizedSignatory[]
}Colors:
#2563EB)#EF4444)#10B981)#F59E0B)#000000) - no red text coloring#D1D5DB)Typography:
Spacing:
Modal Pattern:
Lender Form Component
nda-signatory-form.tsx with validationnda-document-viewer.tsx to integrate formSignatory Management Modal
signatory-management-modal.tsxclick-through-settings.tsx with enforcement toggle and table actionAudit Log Enhancement
audit-logs-modal.tsx with new columnsIntegration & Testing
Shall I proceed with Phase 1 implementation (Lender-side signatory form and document viewer updates)?
Now I'll implement all three phases. Let me start by creating the new components and updating existing ones:
Now let me update the click-through settings and audit logs components:
Let me read the file to check the current state and complete the edit:
Now let me update the audit logs modal with enhanced signatory columns:
Now let me update the demo page to show both lender and sponsor views:
I've successfully implemented all three phases of the Designated Signatory for Clickthrough NDA feature. Here's what was built:
Phase 1 - Lender Side (NDA Acceptor):
nda-signatory-form.tsx with required fields (Signatory Name, Entity Name, Email) and optional Additional Emailsnda-document-viewer.tsx to embed the signatory form replacing simple buttonsPhase 2 - Sponsor Side (Configuration):
click-through-settings.tsx with "Require Designated Signatories" enforcement togglesignatory-management-modal.tsx for managing authorized signatories per institution with CRUD operationsPhase 3 - Audit Log Enhancement:
audit-logs-modal.tsx with new columns: Signatory Name, Email, Entity (replacing generic Name)The demo page now toggles between Sponsor Settings (configuration view) and Lender View (document acceptance with signatory form), demonstrating the complete end-to-end flow of the Designated Signatory feature.
Executed NDA doc that Lender institutions can download & Send message (Instructions) to institutions while setting up NDA
can check attached screenshots and also the chats for CA that can be used as reference for resp, elements
Dssign em now
You can send messages while the preview loads