'use client'; import { Input } from './ui/input'; /** Minimum is public, positive and precisely representable in the action. */ export function richeseBidMinimumError(value: unknown): string | null { return typeof value === 'number' && Number.isSafeInteger(value) && value > 0 ? null : 'Choose a positive whole bid minimum.'; } export function RicheseBidPromiseFields(props: { minimum: number; onMinimum: (value: number) => void; disabled: boolean; method?: 'onceAround' | 'silent'; }) { const silent = props.method === 'silent'; const error = richeseBidMinimumError(props.minimum); return
Bid in this {silent ? 'Silent' : 'Once Around'} auction { const value = event.currentTarget.valueAsNumber; if (!props.disabled && !richeseBidMinimumError(value)) props.onMinimum(value); }} /> {error &&

{error}

}

{silent ? 'This asks about the bidder’s unsubmitted sealed bid in this Silent lot. A zero submission is permitted when compatible with the answer; submitted amounts remain private until bids are revealed.' : 'This asks about the bidder’s remaining opportunity in this Once Around lot. Earlier declarations do not count.'} {' '}A qualifying bid does not promise a win or change the winning payment.

; }