import { html } from 'htm/preact'; import { Fragment } from 'preact'; import { useState } from 'preact/hooks'; const styles = { jumpInput: { width: '80px', padding: '6px 10px', background: 'var(--bg-elevated)', color: 'var(--text-primary)', border: '1px solid var(--border-color)', borderRadius: 'var(--radius-sm)', fontSize: '13px' }, jumpButton: { padding: '6px 12px', background: 'var(--bg-elevated)', color: 'var(--text-primary)', border: '1px solid var(--border-color)', borderRadius: 'var(--radius-sm)', cursor: 'pointer', fontSize: '13px', transition: 'var(--transition)', fontWeight: 500 } }; export function PageJumper({ totalPages, onJump }) { const [inputValue, setInputValue] = useState(''); const handleJump = () => { const num = parseInt(inputValue); if (num >= 1 && num <= totalPages) { onJump(num - 1); setInputValue(''); } }; const handleKeyDown = (e) => { if (e.key === 'Enter') { handleJump(); } }; return html` <${Fragment}> setInputValue(e.target.value)} onKeyDown=${handleKeyDown} style=${styles.jumpInput} /> `; }