Added reminder emails

This commit is contained in:
Corey Blais
2026-04-21 15:04:44 -04:00
parent af40b9901f
commit ee09c95f05
13 changed files with 435 additions and 24 deletions
+8 -23
View File
@@ -1,5 +1,6 @@
import { useEffect, useMemo, useState } from 'react';
import flockPalLandingArt from './assets/flockpal-landing-art.png';
import defaultBirdPhoto from './assets/yoda.png';
import { findParrotWeightReference, parrotSpeciesOptions, type ParrotWeightReference } from './parrotWeightReference';
type BillingPlan = 'rescue_free' | 'household_basic' | 'household_plus' | 'household_macaw';
@@ -3870,13 +3871,7 @@ function App() {
>
<button className="bird-card-select" onClick={() => setSelectedBirdId(bird.id)} type="button">
<div className="bird-card-header">
{bird.photoDataUrl ? (
<img className="bird-avatar" src={bird.photoDataUrl} alt={`${bird.name}`} />
) : (
<div className="bird-avatar placeholder-avatar" aria-hidden="true">
{bird.name.slice(0, 1).toUpperCase()}
</div>
)}
<img className="bird-avatar" src={bird.photoDataUrl || defaultBirdPhoto} alt={`${bird.name}`} />
<div className="bird-card-copy">
<span className="bird-card-title">
<span>{bird.name}</span>
@@ -4010,13 +4005,7 @@ function App() {
<>
<section className="profile-hero">
{selectedBird.photoDataUrl ? (
<img className="profile-photo" src={selectedBird.photoDataUrl} alt={`${selectedBird.name}`} />
) : (
<div className="profile-photo placeholder-avatar" aria-hidden="true">
{selectedBird.name.slice(0, 1).toUpperCase()}
</div>
)}
<img className="profile-photo" src={selectedBird.photoDataUrl || defaultBirdPhoto} alt={`${selectedBird.name}`} />
<div className="profile-copy">
<p className="eyebrow">Profile</p>
<h3 className="profile-title">
@@ -4045,7 +4034,7 @@ function App() {
<strong>{selectedBird.tagId}</strong>
</article>
<article className="detail-card">
<span>DOB</span>
<span>Hatch Day</span>
<strong>{formatDate(selectedBird.dateOfBirth)}</strong>
</article>
<article className="detail-card">
@@ -5000,7 +4989,7 @@ function App() {
</div>
<div className="settings-nested-grid">
<label>
DOB
Hatch Day
<input
type="date"
value={birdForm.dateOfBirth}
@@ -5016,13 +5005,13 @@ function App() {
/>
</label>
<label className="toggle-card">
<span>Notify on DOB</span>
<span>Notify on Hatch Day</span>
<input
type="checkbox"
checked={birdForm.notifyOnDob}
onChange={(event) => setBirdForm({ ...birdForm, notifyOnDob: event.target.checked })}
/>
<small className="muted">Send a reminder on this bird's birthday each year.</small>
<small className="muted">Send a reminder on this bird's Hatch Day each year.</small>
</label>
<label className="toggle-card">
<span>Notify on gotcha day</span>
@@ -5074,12 +5063,8 @@ function App() {
/>
<div className="crop-preview-overlay" aria-hidden="true" />
</div>
) : birdForm.photoDataUrl ? (
<img className="profile-photo" src={birdForm.photoDataUrl} alt="Bird preview" />
) : (
<div className="profile-photo placeholder-avatar" aria-hidden="true">
{(birdForm.name || 'B').slice(0, 1).toUpperCase()}
</div>
<img className="profile-photo" src={birdForm.photoDataUrl || defaultBirdPhoto} alt="Bird preview" />
)}
</div>
<div className="photo-copy">
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB