Plant catalog UI: /plants page + PlantPicker (#13)
Build image / build-and-push (push) Successful in 15s
Build image / build-and-push (push) Successful in 15s
Co-authored-by: Steve Dudenhoeffer <[email protected]>
This commit was merged in pull request #32.
This commit is contained in:
@@ -68,3 +68,29 @@ export function formatDimensions(widthCm: number, heightCm: number, unit: UnitPr
|
||||
export function dimensionUnitLabel(unit: UnitPref): string {
|
||||
return unit === 'imperial' ? 'ft' : 'm'
|
||||
}
|
||||
|
||||
// --- Plant spacing (small scale) -------------------------------------------
|
||||
// Plant spacing is a handful of centimeters, so meters/feet read poorly here;
|
||||
// metric shows cm and imperial shows whole inches.
|
||||
|
||||
/** Centimeters → a spacing string in the given unit (e.g. "15 cm" or "6″"). */
|
||||
export function formatSpacing(cm: number, unit: UnitPref): string {
|
||||
if (unit === 'imperial') return `${Math.round(cm / CM_PER_INCH)}″`
|
||||
return `${Math.round(cm)} cm`
|
||||
}
|
||||
|
||||
/** A spacing value typed in the given unit (cm, or inches) → whole centimeters. */
|
||||
export function cmFromSpacing(value: number, unit: UnitPref): number {
|
||||
return unit === 'imperial' ? Math.round(value * CM_PER_INCH) : Math.round(value)
|
||||
}
|
||||
|
||||
/** Centimeters → a spacing number in the given unit, for prefilling an input.
|
||||
* Inches to 0.1 so cm-quantization doesn't show through. */
|
||||
export function spacingFromCm(cm: number, unit: UnitPref): number {
|
||||
return unit === 'imperial' ? Math.round((cm / CM_PER_INCH) * 10) / 10 : Math.round(cm)
|
||||
}
|
||||
|
||||
/** The spacing input-field unit label. */
|
||||
export function spacingUnitLabel(unit: UnitPref): string {
|
||||
return unit === 'imperial' ? 'in' : 'cm'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user