Field conditions
A React block (a whole screen) in Beamline's Manufacturing app.
A farm's fields and what each one's conditions are. The fields as a searchable list (each with its outline, crop, area and the layer's value, or Not measured) beside their map: the fields on the farm's real map base (lanes, brooks, woods, the village) or on your own outlines, each filled by the class of a chosen layer (crop vigour, soil moisture) in equal steps of one hue, the farm's field count and total area, with the layer's date, loading and no-data said, and the list still there when the map can't be shown. The chosen field, with the layer's value for it: its weather now (temperature, rain, wind, humidity) beside each job's next good window, the next 48 hours (temperature and rain on one axis) and the days ahead as one strip on a shared scale, days not yet forecast hatched, who issued it and when, an old forecast and a shorter horizon than asked said, a missing value as a dash; work windows for spraying and tillage hour by hour (good, possible, not advised, not known), the chosen hour's reasons and any missing input in words, arrow keys along the strip; this season's rain added up against an earlier season's same days, each day's rain and heat, days with no record counted and skipped, no baseline said; and its scouting tasks, whose report saves on its own (a refusal keeps it) and closes only with the date, the crop stage and what was found.
Use it for
- Farm and agronomy software: pick a field on the map and see its weather, when field work can be done and why, how the season compares, and scouting reports.
- Any set of sites on a map whose conditions are read and acted on (vineyards, sports pitches, solar sites).
Not for
- A world or country choropleth on its own (geo-map).
- Stock and harvests (production-lots).
- A grazing plan (grazing-plan).
Anatomy
- fields side: Find a field, the layer select, the field count and total hectares, the layer's date or state, the map (the farm's base with each field filled by its layer class, names and values on the fields, not measured hatched, the chosen one outlined in ink, the data credit; or your own outlines) with its classes, or that it can't be shown; the list (outline, name, crop, area, the value with its class swatch)
- field: name, crop and area, the layer's value for it; Weather, Work windows, Season, Scouting (open tasks counted)
- weather: now (temperature large, rain in the next hour, wind, humidity) beside each job's next good window (opens Work windows), issued by and when, an old-forecast warning, the next 48 hours (temperature line and rain bars on one time axis), the days ahead as one strip on a shared temperature scale (high, low, rain bar and amount; a missing value a dash, unknown rain hatched) with days past what the provider sent hatched and counted
- work windows: the key, a strip per activity with its first and last hour, the chosen hour's state, reasons, missing inputs and the model version
- season: the total so far against the baseline, missing days counted, cumulative rain (baseline dashed), daily rain, highest temperature
- scouting: tasks (title, who, due, Open or Closed) and the open one's report: inspected, crop stage, plants per m², what was found, notes, photos; Save the report and Close the task with what it still needs
States
- overview
- field focused
- layer loading
- no layer data
- not measured field
- filtered empty
- map unavailable
- current forecast
- stale forecast
- partial horizon
- provider unavailable
- window good, possible, not advised, unknown
- missing input
- history loaded
- comparison
- partial history
- unavailable baseline
- task assigned
- report draft
- report saved
- save refused
- close missing fields
- closed
Keyboard
- Tab through the search, the layer select, the list rows and the field's tabs
- a work-window strip is one stop: ←/→ move the chosen hour (mirrored right to left) and its reasons are announced
- the report's fields in order; Close is enabled once nothing is missing
Motion
None beyond the parts' own; nothing moves at rest.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
fields (required) | FarmField[] | — | |
map (required) | { width: number; height: number; } | null | — | The farm's real map base (its fields drawn on its lanes, brooks and woods; `shape`s in the base's units), or the size of your own outlines' frame (drawn on a plain ground); null when the map can't be shown (the list and the figures still are). |
layers (required) | FieldLayer[] | — | |
layer | string | — | |
defaultLayer | string | — | |
onLayerChange | ((id: string) => void) | — | |
selected | string | null | — | |
defaultSelected | string | null | — | |
onSelectedChange | ((id: string | null) => void) | — | |
forecast | FieldForecast | null | — | The chosen field's forecast; null with `forecastError` when the provider is down. |
forecastError | string | null | — | |
activities | WorkActivity[] | — | |
model | string | — | The suitability model's version, said under an hour's reasons. |
season | SeasonComparison | null | — | |
tasks | ScoutTask[] | — | |
onSaveReport | ((taskId: string, report: ScoutReport) => void | Promise<unknown>) | — | |
onCloseTask | ((taskId: string, report: ScoutReport) => void | Promise<unknown>) | — | |
timeZone (required) | string | — | The farm's zone: every time is written in it. |
now | number | — | "Now" (ms), for the forecast's age. |
tab | FieldTab | — | |
defaultTab | FieldTab | — | |
onTabChange | ((tab: FieldTab) => void) | — | |
className | string | — | Classes on the documented visual root; no override by default. |
style | CSSProperties | — | Inline styles on the documented visual root; no overrides by default. |
ref | Ref<HTMLDivElement> | — | Receives the documented native target or imperative handle; omitted by default. |
Built from
- geo-map
- search-field
- select
- tabs
- composed-chart
- line-chart
- bar-chart
- input
- number-field
- radio-group
- textarea
- badge
- button
- alert
Dependencies
lucide-react
Import
import { FieldConditions } from "@beamline/field-conditions";
Get it
Field conditions is part of Beamline UI. Install the parts you need in your React app as compiled packages or editable source. Get Beamline · Connect your agent
More in Manufacturing
- Shop floor: A workshop's shop floor at one workstation: each job is a card at its work centre with why it isn't ready said in words (parts short, or the previous…
- Production plan: A production plan by month: each product's starting stock, forecast demand, replenishment and ending stock, every ending rolling into the next month's…
- Production and lots: Stock made and stored, with every movement traceable. A batch of a recipe, read as a batch sheet: the recipe, batches (in halves) and day as one sentence…
- Print scheduler: A print shop's production schedule. The week by station: each station's day holds its runs, with a load bar and minutes used against the station's…
- Plan readiness: A solar plan on its way to a permit. The design checks (fire setback from the ridge, string voltage in the cold, roof load, eave and rake setbacks, the…
- Design inputs: What a solar design is checked against, and what the home really uses. Code standards and site conditions (building, electrical and fire codes, wind…
- Solar quote: A residential solar quote. The system's price at its rate per watt with adders, discounts and incentives each switched on or off: discounts come off one…
- Roof layout: The roof of a solar design. The roof in plan with every face's panels drawn as they lie under its roof type's rules (projected from the slope), each…
- Electrical design: The electrical side of a solar design. The existing service set up from a named way of connecting to it (a load-side breaker or a supply-side tap), the…
- Battery sizing: A home battery sized beside its solar. The model and how many with capacity, power and installed price; how it runs (kept full for an outage, storing…
- Grazing plan: Mobs on a grazing rotation, on the farm's map: with a map base, its parcels are the paddocks, each filled by where it stands in the chosen mob's plan (on…
- Run of show: One service or event plan's order, run more than once: sections and items with each occurrence's start time in its own column, each item's length dragged…
- Sound library: A library of sounds (or any media a person auditions before using): a search by words and #tags with facets as filters, a live "3 filters · 12 results"…
- Tag manager: Tags for one or several items at once (sounds, photos, documents). Nested tag groups are edited in place (rename, new tag), and a folded group still says…