Owner records
A React block (a whole screen) in Beamline's Inventory app.
Who a customer is and what they own, at the front desk. New customer: name, phone and email checked as typed against existing customers; each likely match with its contact, vehicles and since when, and why (same phone or same email on warning, similar name on info); use the match, or create anyway with the reason chosen and kept. Vehicle: found by plate and region or by VIN (17 characters counted, I, O and Q refused); decoded year, make, model and engine, partly unknown said; already on this account (success), on file for someone else (a transfer said with how long and how many orders, on warning, history moving with it), or new; Link or Transfer. Fleet account: who's billed, how many vehicles and how many without a driver (warning); each vehicle's plate, model, driver and open orders (info); its menu changes the driver or moves it out of the fleet, confirmed with what happens to open orders; history kept.
Use it for
- Adding customers without creating duplicates, with the reason kept when someone looks alike.
- Linking an asset (a vehicle, a device) to its owner, including transfers, and managing a business account's assets.
Not for
- Merging records that are already duplicated.
- A technician's repair order (job-card).
Anatomy
- header: the tool's mark, the view's title, New customer / Vehicle / Fleet account
- new customer: name, phone, email; why it's someone else; Create; the likely matches with why, the likeliest offering Use this customer at rest and the others on attention
- vehicle: who it links to, find by plate or VIN, Look up; what it is and whose it is; Link or Transfer
- fleet: the account, who's billed, counts; each vehicle with driver and open orders, its menu, the driver picker or move-out confirm, history
States
- no matches, matches by phone, email or name, create anyway with a reason, created
- vehicle new, partly decoded, already this owner's, someone else's (transfer), linked, transferred, refused
- fleet driver changed, moved out, refused with open orders; no fleet account
- phone: one column
- right to left: mirrored; plates and VINs stay left to right
- reduced motion: through the tokens
Keyboard
- Tab through the view switch, the fields, each match's Use this customer, Look up, Link, and each vehicle's menu (Enter opens it)
Motion
Nothing runs at rest.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
findMatches (required) | (q: { name: string; phone: string; email: string; }) => CustomerMatch[] | — | Likely matches for what's typed so far. |
onUseCustomer (required) | (c: Customer) => void | — | |
onCreateCustomer (required) | (req: { name: string; phone: string; email: string; reason: string | null; }) => Promis… | — | |
owner (required) | Customer | — | Who a vehicle is being linked to. |
regions (required) | { value: string; label: string; }[] | — | |
onLookup (required) | (q: { plate: string; region: string; } | { vin: string; }) => Promise<VehicleLookup> | — | |
onLinkVehicle (required) | (req: { vehicleId: string | null; ownerId: string; transfer: boolean; decoded: { year: … | — | |
fleet (required) | FleetAccount | null | — | |
onFleetChange | ((f: FleetAccount) => void) | — | |
onFleetAction (required) | (a: FleetAction) => Promise<{ fleet: FleetAccount; } | { refused: string; }> | — | |
defaultView | "customer" | "fleet" | "vehicle" | — | |
defaultCustomer | { name: string; phone: string; email: string; } | — | |
defaultLookup | { plate: string; region: string; } | { vin: string; } | — | |
product | string | — | |
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
Dependencies
lucide-react
Import
import { OwnerRecords } from "@beamline/owner-records";
Get it
Owner records 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 Inventory
- Stock count: A shelf counted. Count: the products on it with counted units, not counted (an empty field that changes nothing) kept apart from a counted zero, expected…
- Inventory counts: Recurring stock counts from plan to shelf: a phone-first count of one occurrence where an untouched part reads not counted and a zero reads counted, none…
- Goods receiving: Goods received against purchase orders and invoices. Cards grouped by purchase order or invoice, each line once whichever way (a line keeps both sources…
- Purchase order desk: Purchase orders for stock from draft to closed. The list of orders with status (ready for review on warning, approved, ordered and partly received on…
- Restock desk: Restocking from suppliers' own shops. Items low on stock (below the minimum on danger, at it on warning, unknown said) beside the chosen item with how…
- Stock alerts: Alerts on stock counts and expiry dates. Counts of alerts gone off (danger) and close (warning) in the header. A table: item and type, the rule in words…
- Inventory finder: Find stock and act on what's found. A rail of filters: name or SKU; folders with or without their subfolders (folders the person can't see said as not…
- Item setup: Setting items up for scanning and records. Barcodes: scanned codes waiting to be linked, each with its symbology, when and who; Look it up brings a…
- Bulk item edit: Many items corrected at once. Pick a folder, with its subfolders or not (fixed once anything is edited), up to a limit said. The items in a grid: name…
- Kit builder: A kit (bundle) made of standalone products, and how many its parts' stock can make. Sell as a kit; the parts in one kit with units per kit, removable…
- Serial allocation: A receipt line's serial numbers. Serials generated from a first serial and how many (its digits counted up, padding kept; a first serial without digits…
- Stock moves: Where stock went, and moving it. The ledger lists movements newest first: moves on info, stock added on success, stock taken out on warning; each with…
- Scan station: A warehouse scanner, phone-first. Home: one scan field that also takes typing (and says so when the scanner isn't connected), each code named as what it…
- Pack station: A packing bench. Scanner, scale and printer each said, on the warning tone when away. Find the shipment by scanning or typing its number (none found…
- Shipment split: An order's lines split across shipments. A table of lines with what was ordered and a column per shipment (new ones marked); a line already shipped can't…
- Route plan: A day's delivery routes in the service's zone. The day at a glance: routes, routes without a driver (warning), stops running late (danger), stops done…
- Job materials: Materials sent out to jobs and pick lists. Jobs: the list (draft, active on info, completed on success) beside the chosen job with its site, dates (the…
- Service tasks: A fleet shop's maintenance setup. Tasks: active and archived, searchable, main tasks and their subtasks told apart in words, archiving refused while…
- Sample storage: Where physical items are kept (rooms, freezers, shelves, racks, boxes) and acting on several at once. The storage tree is browsed apart from moving: Move…
- Sample ledger: Materials used in a record and the containers they came from, plus pooling. Subtracting a used amount writes a stock movement with its unit and the…