+ )
+}
diff --git a/web/src/components/plants/PlantCard.tsx b/web/src/components/plants/PlantCard.tsx
index 55ebba7..c772e9d 100644
--- a/web/src/components/plants/PlantCard.tsx
+++ b/web/src/components/plants/PlantCard.tsx
@@ -1,3 +1,4 @@
+import { PlantIcon } from './PlantIcon'
import { CATEGORY_LABELS, isBuiltin, type Plant } from '@/lib/plants'
import { formatSpacing, type UnitPref } from '@/lib/units'
@@ -30,13 +31,7 @@ export function PlantCard({
return (
-
- {plant.icon}
-
+
{plant.name}
diff --git a/web/src/components/plants/PlantFormModal.tsx b/web/src/components/plants/PlantFormModal.tsx
index fdc94fc..70faae3 100644
--- a/web/src/components/plants/PlantFormModal.tsx
+++ b/web/src/components/plants/PlantFormModal.tsx
@@ -65,6 +65,7 @@ export function PlantFormModal({
const [version, setVersion] = useState(plant?.version ?? 0)
const [conflict, setConflict] = useState(null)
const [formError, setFormError] = useState(null)
+ const unitLabel = spacingUnitLabel(unit)
async function onSubmit(e: FormEvent) {
e.preventDefault()
@@ -81,12 +82,13 @@ export function PlantFormModal({
}
const spacingCm = cmFromSpacing(parseFloat(spacing), unit)
if (!Number.isFinite(spacingCm) || spacingCm < 1) {
- setFormError('Spacing must be a positive number.')
+ setFormError(`Spacing must be at least 1 ${unitLabel}.`)
return
}
let daysToMaturity: number | null = null
if (days.trim()) {
- const d = parseInt(days, 10)
+ // Number() (not parseInt) so "1.5" is rejected, not silently truncated to 1.
+ const d = Number(days)
if (!Number.isInteger(d) || d < 1) {
setFormError('Days to maturity must be a whole number of days, or left blank.')
return
@@ -131,8 +133,6 @@ export function PlantFormModal({
}
}
- const unitLabel = spacingUnitLabel(unit)
-
return (