'use client'; import { Input } from './ui/input'; /** Validation is about the public question, never the respondent's private purse. */ export function pledgeClaimInputError(minimum: unknown): string | null { return typeof minimum === 'number' && Number.isSafeInteger(minimum) && minimum > 0 ? null : 'Choose a positive whole spice amount within the safe integer range.'; } /** The recipient is the respondent's current public reciprocal ally. */ export function PledgeClaimFields(props: { minimum: number; allyName: string; disabled: boolean; onChange: (minimum: number) => void; }) { const error = pledgeClaimInputError(props.minimum); return
Future ally funding update

Current ally: {props.allyName}

{ const next = event.currentTarget.valueAsNumber; if (!props.disabled && !pledgeClaimInputError(next)) props.onChange(next); }} /> {error &&

{error}

}

Count an accepted funding update after the answer during this phase. Setting the same total again counts; an earlier pledge alone does not. Funding sets spice aside for your ally and is not a payment or a promise that your ally will spend it.

; }