// Prayer tab — 4 columns per page, inline-editable. Add/remove items, add pages. function PrayerTab({ pages, setPages, canEdit, lastUpdate, onTouch }){ const [pi, setPi] = React.useState(0); const page = pages[pi] || []; function commit(updater){ setPages(prev => { const next = prev.map(p => p.map(c => ({ ...c, items:[...c.items] }))); updater(next); return next; }); onTouch && onTouch(); } const setTitle = (ci, val)=> commit(n => { n[pi][ci].title = val; }); const setItem = (ci, ii, val)=> commit(n => { n[pi][ci].items[ii] = val; }); const addItem = (ci)=> commit(n => { n[pi][ci].items.push('New item'); }); const delItem = (ci, ii)=> commit(n => { n[pi][ci].items.splice(ii,1); }); const toggleMark = (ci)=> commit(n => { n[pi][ci].ordered = !n[pi][ci].ordered; }); function addPage(){ setPages(prev => [...prev, [ {title:'NEW SECTION',ordered:true,items:['Item one']}, {title:'NEW SECTION',ordered:true,items:['Item one']}, {title:'NEW SECTION',ordered:true,items:['Item one']}, {title:'NEW SECTION',ordered:true,items:['Item one']} ]]); onTouch && onTouch(); setPi(pages.length); } return (