feat: add 'Mark Prayed' button for prayer items with streak tracking
This commit is contained in:
1 parent
8105d39554
commit
6c33fc4606
5 files changed
+66
-87
No files matched your search
+20
-7
@@ -39,7 +39,6 @@ export default function Home() {
|
||||
const [prayFor, setPrayFor] = useState('');
|
||||
const [answered, setAnswered] = useState(false);
|
||||
const [answerDetails, setAnswerDetails] = useState('');
|
||||
const [prayFrequency, setPrayFrequency] = useState(1); // 1-7 times per week
|
||||
|
||||
const { user, loading: authLoading } = useAuth();
|
||||
|
||||
@@ -109,8 +108,6 @@ export default function Home() {
|
||||
prayFor: prayFor || undefined,
|
||||
answered,
|
||||
answerDetails: answerDetails || undefined,
|
||||
prayFrequency,
|
||||
lastPrayedFor: answered ? undefined : new Date().toISOString().split('T')[0],
|
||||
};
|
||||
|
||||
if (editingPrayer) {
|
||||
@@ -147,7 +144,6 @@ export default function Home() {
|
||||
setPrayFor(prayer.prayFor || '');
|
||||
setAnswered(prayer.answered || false);
|
||||
setAnswerDetails(prayer.answerDetails || '');
|
||||
setPrayFrequency(prayer.prayFrequency || 1);
|
||||
setActiveTab('compose');
|
||||
};
|
||||
|
||||
@@ -161,6 +157,25 @@ export default function Home() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleMarkPrayed = async (prayerId: string) => {
|
||||
if (!user) return;
|
||||
|
||||
try {
|
||||
const today = new Date().toISOString().split('T')[0];
|
||||
await updateDoc(doc(db, 'prayers', prayerId), {
|
||||
lastPrayedFor: today,
|
||||
});
|
||||
|
||||
setPrayers(prev =>
|
||||
prev.map(p => (p.id === prayerId ? { ...p, lastPrayedFor: today } : p))
|
||||
);
|
||||
toast.success('Prayed! 🙏');
|
||||
} catch (error) {
|
||||
console.error('Error marking prayed:', error);
|
||||
toast.error('Failed to update');
|
||||
}
|
||||
};
|
||||
|
||||
if (authLoading) {
|
||||
return (
|
||||
<div className="min-h-screen bg-gradient-to-br from-slate-900 via-black to-slate-800 flex items-center justify-center p-4">
|
||||
@@ -227,8 +242,6 @@ export default function Home() {
|
||||
onAnsweredChange={setAnswered}
|
||||
answerDetails={answerDetails}
|
||||
onAnswerDetailsChange={setAnswerDetails}
|
||||
prayFrequency={prayFrequency}
|
||||
onPrayFrequencyChange={setPrayFrequency}
|
||||
onSubmit={handleSubmit}
|
||||
isEditing={!!editingPrayer}
|
||||
/>
|
||||
@@ -243,7 +256,7 @@ export default function Home() {
|
||||
)}
|
||||
|
||||
{activeTab === 'praying' && (
|
||||
<ThingsToPrayFor prayers={prayers.filter(p => !p.answered)} onEdit={handleSelectPrayer} />
|
||||
<ThingsToPrayFor prayers={prayers.filter(p => !p.answered)} onEdit={handleSelectPrayer} onMarkPrayed={handleMarkPrayed} />
|
||||
)}
|
||||
|
||||
{activeTab === 'reflections' && (
|
||||
|
||||
Reference in new issue
Block a user