// Pledge ticket detail screen — Komek Lombard v2
// Adds "Частичное досрочное погашение" between "Пролонгировать" and "Закрыть"
const TEAL = '#1B7F70';
const TEAL_DEEP = '#176A5D';
const TEAL_SOFT = '#E4F1EE';
const MAROON = '#591A1A';
const PAGE_BG = '#EBEBEC';
const CARD_BG = '#FFFFFF';
const LABEL = '#3A3A3D';
const SUBTLE = '#8A8A8E';
const DIVIDER = '#EDEDEF';
// ─── icons ──────────────────────────────────────────────────────────
const Icon = {
hex: (
),
cal: (
),
pin: (
),
back: (
),
hour: (
),
shield: (
),
money: (
),
percent: (
),
dots: (
),
};
// ─── tile (small teal "id" square at the start of each card title) ──
function IdTile({ size = 26 }) {
return (
{Icon.dots}
);
}
function StatusDot({ color = TEAL }) {
return (
);
}
// ─── data row ───────────────────────────────────────────────────────
function Row({ icon, label, value, valueColor = LABEL, valueWeight = 700, dot }) {
return (
{icon}
{label}
{dot && }
{value}
);
}
// ─── buttons ────────────────────────────────────────────────────────
function PrimaryButton({ children, onClick }) {
return (
);
}
function SecondaryButton({ children, variant = 'outlined', onClick }) {
const styles = {
'gray-soft': {
background: '#DCDCE0', color: '#9A9AA0',
border: '1.5px solid transparent',
},
outlined: {
background: '#fff', color: TEAL,
border: `1.5px solid ${TEAL}`,
},
soft: {
background: TEAL_SOFT, color: TEAL_DEEP,
border: '1.5px solid transparent',
},
'filled-dark': {
background: TEAL_DEEP, color: '#fff',
border: '1.5px solid transparent',
},
text: {
background: 'transparent', color: TEAL,
border: '1.5px solid transparent',
},
};
return (
);
}
function TextButton({ children, onClick }) {
return (
);
}
// ─── screen ────────────────────────────────────────────────────────
function PledgeTicketScreen({ secondaryVariant = 'outlined', showNewButton = true, onPartialRepayment }) {
return (
{/* Page title */}
Залоговые билеты
{/* Summary tile (sits on gray background) */}
№ VV000000082 — Часы
Принято
40 000 ₸
До даты возврата: 29 дней
{/* Main white card — rounded top, fills the rest */}
{/* card title */}
|
{/* actions */}
Пролонгировать
{showNewButton && (
Частичное погашение
)}
Закрыть
);
}
Object.assign(window, { PledgeTicketScreen });