From 49d75f34be4af9e943ec448b7e6569553d8294a1 Mon Sep 17 00:00:00 2001 From: blaisadmin Date: Thu, 21 May 2026 20:46:34 -0400 Subject: [PATCH] Moved edit bird profile to flock page rather than settings --- frontend/src/App.tsx | 455 ++++++++++++++++++++++++++++++++++++++++- frontend/src/index.css | 4 + 2 files changed, 453 insertions(+), 6 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 580f2b7..34eef0e 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1414,6 +1414,7 @@ function App() { const [memorializedBirds, setMemorializedBirds] = useState([]); const [selectedBirdId, setSelectedBirdId] = useState(''); const [editingBirdId, setEditingBirdId] = useState(''); + const [birdEditorOpen, setBirdEditorOpen] = useState(false); const [weights, setWeights] = useState([]); const [vetVisits, setVetVisits] = useState([]); const [medications, setMedications] = useState([]); @@ -1526,7 +1527,7 @@ function App() { [allBirdWeights, birds, overviewWindowStartDate], ); - const showFlockDetailColumn = bulkWeightOpen || Boolean(selectedBird); + const showFlockDetailColumn = bulkWeightOpen || birdEditorOpen || Boolean(selectedBird); useEffect(() => { if (!publicProfile || !authSession || workspace?.id !== publicProfile.workspaceId || !birds.some((bird) => bird.id === publicProfile.id)) { @@ -2344,12 +2345,13 @@ function App() { const startCreateBird = () => { setEditingBirdId(''); + setBirdEditorOpen(true); setBirdForm(emptyBirdForm); setBirdPhotoName(''); setPhotoCrop(null); setPhotoDrag(null); setError(''); - setActivePage('settings'); + setActivePage('flock'); }; const handleAuthSubmit = async (event: React.FormEvent) => { @@ -2671,12 +2673,13 @@ function App() { const startEditBird = (bird: Bird) => { setSelectedBirdId(bird.id); setEditingBirdId(bird.id); + setBirdEditorOpen(true); setBirdForm(toBirdForm(bird)); setBirdPhotoName(''); setPhotoCrop(null); setPhotoDrag(null); setError(''); - setActivePage('settings'); + setActivePage('flock'); }; const handleBirdPhotoChange = async (event: React.ChangeEvent) => { @@ -2969,9 +2972,10 @@ function App() { }); setSelectedBirdId(isEditing ? savedBird.id : ''); setEditingBirdId(savedBird.id); + setBirdEditorOpen(false); setBirdForm(toBirdForm(savedBird)); setBirdPhotoName(''); - setActivePage(isEditing ? 'settings' : 'flock'); + setActivePage('flock'); } catch (submitError) { setError(submitError instanceof Error ? submitError.message : 'Unable to save flock member.'); } finally { @@ -4771,7 +4775,446 @@ function App() { ) : null} - {selectedBird ? ( + {birdEditorOpen ? ( +
+
+
+

Bird profile

+

{editingBird ? `Edit ${editingBird.name}` : 'Add flock member'}

+
+ +
+
+
+
+

Identity

+

Profile details

+
+
+ + + +
+ Gender +
+ {(['unknown', 'male', 'female'] as BirdGender[]).map((gender) => ( + + ))} +
+
+
+

Dates

+

Milestones and reminders

+
+ + + + + + + +
+
+
+
+

Display

+

Chart color and photo

+
+
+ + +
+
+ {photoCrop ? ( +
+ Crop preview + + ) : ( + Bird preview + )} +
+
+ + {photoCrop ? ( +
+

{photoCrop.fileName} ready to crop.

+ +
+ + +
+
+ ) : null} + {birdForm.photoDataUrl ? ( + + ) : null} +
+
+
+
+
+ +
+
+ {editingBird && selectedBird ? ( +
+
+

Medication

+

Medication configuration

+
+
+ + + + + + + +