/* Transfer Plot module */
(function () {
const { useState } = React;
const Icon = window.Icon, PageHead = window.PageHead;
const D = window.YEIDA, fmt = D.fmtINR;
const STEPS = ['Eligibility', 'Requirements', 'Fee Calculator', 'Application', 'Review'];
function Transfer({ go, toast }) {
const [step, setStep] = useState(0);
const feeTotal = D.transferFees.reduce((s, f) => s + f.amount, 0);
return (
{/* progress */}
{STEPS.map((s, i) => (
{i < STEPS.length - 1 && }
))}
{step === 0 &&
setStep(1)} />}
{step === 1 && }
{step === 2 && }
{step === 3 && }
{step === 4 && }
{step < 4 && }
);
}
function Eligibility({ next }) {
const checks = [
['5-year lock-in period completed', true, 'Allotted Mar 2019 · 7 years held'],
['No outstanding transfer restrictions', true, 'Clear'],
['Lease deed registered', true, 'Registered Sep 2019'],
['Pending dues cleared before transfer', false, '₹1,47,585 to be cleared first'],
];
const eligible = true;
return (
Eligibility Check
We verified your plot against transfer policy 2026.
{checks.map(([l, ok, note], i) => (
{ok ? 'Passed' : 'Action needed'}
))}
You're eligible to transfer
Your plot meets the core eligibility criteria. Clear pending dues to proceed to fee payment and application.
);
}
function Requirements() {
const reqs = [
['Transferor (Seller) Documents', ['PAN & Aadhaar', 'Original allotment letter', 'Latest dues clearance', 'No-objection affidavit']],
['Transferee (Buyer) Documents', ['PAN & Aadhaar', 'Photographs (2)', 'Address proof', 'Acceptance undertaking']],
['Joint / Common', ['Registered transfer deed', 'Sale agreement', 'Stamp duty receipt', 'Transfer fee challan']],
];
return (
{reqs.map(([title, items], i) => (
))}
);
}
function FeeCalc({ fees, total }) {
const [value, setValue] = useState(7725000);
const transfer = Math.round(value * 0.025);
const computed = transfer + 5000 + 2500 + 1350;
return (
Fee Calculator
Transfer Charges (2.5%)
{fmt(transfer)}
Fee Breakdown
{[['Transfer Charges (2.5% of value)', transfer], ['Processing Fee', 5000], ['Documentation Charges', 2500], ['GST (18% on fees)', 1350]].map(([l, a], i) => (
{l}{fmt(a)}
))}
Total Payable
{fmt(computed)}
);
}
function Application() {
const fields = [
['Transferee Full Name', 'user', 'Enter buyer name'],
['Transferee Mobile', 'phone', '+91'],
['Transferee Email', 'mail', 'buyer@email.com'],
['Transferee PAN', 'file', 'ABCDE1234F'],
['Relationship to Transferor', 'user', 'e.g. Third party'],
['Reason for Transfer', 'info', 'e.g. Sale'],
];
return (
Transfer Application
{fields.map(([l, ic, ph]) => (
))}
Upload Documents
Upload transfer deed & KYC
PDF · up to 25 MB
{['Transfer Deed', 'Buyer KYC', 'Sale Agreement'].map(d => (
{d}
))}
);
}
function Review({ total, go, toast }) {
const [submitted, setSubmitted] = useState(false);
if (submitted) return (
Transfer application submitted
Application TR-2026-18-0472 is now with the Authority for review. You can track approval status from your dashboard.
);
return (
Review & Submit
{[['Plot', 'B-47, Sector 18'], ['Transferor', 'Rajeev Malhotra'], ['Transferee', 'New Allottee'], ['Transfer Value', fmt(7725000)], ['Total Fees', fmt(201975)], ['Documents', '3 uploaded']].map(([l, v]) => (
{l}{v}
))}
Approval Tracking
After submission your application moves through:
{['Document verification', 'Dues clearance check', 'Authority approval', 'Transfer completion'].map((s, i) => (
{i + 1}{s}
))}
);
}
window.Transfer = Transfer;
})();