diff --git a/apps/client/src/pages/Board.tsx b/apps/client/src/pages/Board.tsx index ce0c8e3..c86d010 100644 --- a/apps/client/src/pages/Board.tsx +++ b/apps/client/src/pages/Board.tsx @@ -1,3 +1,474 @@ -export default function BoardPage() { - return
Phase 4
+ {messages.length} note{messages.length !== 1 ? 's' : ''} +
+No notes yet
++ Leave a message for the family to see. +
+ +Colour
++ This will permanently delete this note. This cannot be undone. +
++ {message.body} +
+ + {/* Footer */} +Phase 4
+ {countdowns.length} event{countdowns.length !== 1 ? 's' : ''} +
+No countdowns yet
++ Track upcoming events and milestones. +
+ +Colour
++ This will permanently delete{' '} + {deleteTarget?.title}. This cannot be + undone. +
+{cd.title}
+ + {/* Date */} ++ {format(new Date(cd.target_date + 'T00:00:00'), 'MMM d, yyyy')} +
+ + {/* Dashboard badge */} + {!!cd.show_on_dashboard && ( + + On dashboard + + )} +Your family dashboard is coming together. More widgets arriving in Phase 2.
+{greeting} 👋
+{dateStr}
++ {weather.temp}{tempUnit(weather.units)} +
+{weather.description}
++ {weather.city} + {weather.humidity !== undefined && ` · ${weather.humidity}% humidity`} + {weather.feels_like !== undefined && ` · Feels ${weather.feels_like}${tempUnit(weather.units)}`} +
++ Configure weather → +
+ )} ++ {dashboard.meal_today.title} +
+ {dashboard.meal_today.description && ( +{dashboard.meal_today.description}
+ )} + {dashboard.meal_today.recipe_url && ( + + View recipe ↗ + + )} +No dinner planned for today.
+ )} +{event.title}
+ {event.member_name && ( +{event.member_name}
+ )} +{eventDateLabel(event)}
+{eventTimeLabel(event)}
+No events in the next 7 days. 🎉
+ )} +🎉
+All chores are done!
++ {dashboard.pending_chores.length} + pending +
+Loading…
+ )} +✨
+Shopping list is clear!
++ {dashboard.shopping_unchecked} + + item{dashboard.shopping_unchecked !== 1 ? 's' : ''} to buy + +
++ Tap to open your shopping list. +
+Loading…
+ )} +{msg.emoji}
} ++ {msg.body} +
+ {msg.member_name && ( +— {msg.member_name}
+ )} +{cd.emoji}
+ )} ++ {daysLeft} +
++ {daysLeft === 0 ? 'Today!' : daysLeft === 1 ? 'day' : 'days'} +
++ {cd.title} +
+Phase 2
+ {format(currentWeekStart, 'MMM d')} – {format(weekEnd, 'MMM d, yyyy')} +
++ {format(day, 'EEE')} +
++ {format(day, 'd')} +
++ {format(parseISO(selectedDate), 'EEEE, MMMM d')} +
+ )} + setTitle(e.target.value)} + onKeyDown={(e) => e.key === 'Enter' && handleSave()} + placeholder="e.g. Spaghetti Bolognese" + autoFocus + /> ++ This will remove the meal for{' '} + + {selectedDate ? format(parseISO(selectedDate), 'EEEE, MMMM d') : ''} + + . This cannot be undone. +
++ {meal.title} +
+ {meal.description && ( ++ {meal.description} +
+ )} + + {/* Hover actions */} +