DocsAPI referenceUI machinescoupon-input

coupon-input machine

The public state machine contract for @grassroot/ui-machines/coupon-input. The machine owns behaviour; the matching headless layer owns composition.

@grassroot/ui-machines/coupon-input

Package

11 exports
View source packages/ui-machines/src/coupon-input/index.ts

Service example

coupon-input.tsts
import { createService } from "@grassroot/statechart";
import { couponInputMachine } from "@grassroot/ui-machines/coupon-input";
const service = createService(couponInputMachine, { input: {} });
service.start();
service.send({ type: "…" });
service.stop();

Exports

DeclarationView source
CouponInputCommandts
type CouponInputCommand = (CommandObject & {
readonly type: "APPLY_REQUEST";
readonly code: string;
readonly reason: CouponInputReason;
}) | (CommandObject & {
readonly type: "CODE_CHANGE_REQUEST";
readonly code: string;
readonly reason: CouponInputReason;
});
DeclarationView source
CouponInputContextts
type CouponInputContext = {
readonly code: string;
readonly pending: boolean;
readonly status: CouponInputStatus;
readonly mode: "controlled" | "uncontrolled";
};
Name
Kind
Type
Requirement
code
property
string
required
mode
property
"controlled" | "uncontrolled"
required
pending
property
boolean
required
status
property
CouponInputStatus
required
Name
code
Kind
property
Type
string
Requirement
required
Name
mode
Kind
property
Type
"controlled" | "uncontrolled"
Requirement
required
Name
pending
Kind
property
Type
boolean
Requirement
required
Name
status
Kind
property
Type
CouponInputStatus
Requirement
required
DeclarationView source
CouponInputDiagnosticCodests
export declare const CouponInputDiagnosticCodes: readonly DiagnosticCatalogueEntry[];
DeclarationView source
CouponInputEventts
type CouponInputEvent = {
readonly type: "SET_CODE";
readonly code: string;
readonly reason: CouponInputReason;
} | {
readonly type: "SUBMIT";
readonly reason: CouponInputReason;
} | {
readonly type: "APPLY_SUCCEEDED";
} | {
readonly type: "APPLY_FAILED";
} | {
readonly type: "RESET";
};
DeclarationView source
CouponInputInputts
type CouponInputInput = {
readonly code?: string;
readonly defaultCode?: string;
readonly pending?: boolean;
readonly status?: CouponInputStatus;
};
Name
Kind
Type
Requirement
code
property
string
optional
defaultCode
property
string
optional
pending
property
boolean
optional
status
property
CouponInputStatus
optional
Name
code
Kind
property
Type
string
Requirement
optional
Name
defaultCode
Kind
property
Type
string
Requirement
optional
Name
pending
Kind
property
Type
boolean
Requirement
optional
Name
status
Kind
property
Type
CouponInputStatus
Requirement
optional
DeclarationView source
couponInputMachinets
export declare const couponInputMachine: Machine<CouponInputInput, "ready", CouponInputContext, CouponInputEvent, CouponInputCommand>;
DeclarationView source
CouponInputReasonts
type CouponInputReason = "pointer" | "keyboard" | "programmatic";
DeclarationView source
couponInputReplaySequencets
export declare const couponInputReplaySequence: readonly CouponInputEvent[];
DeclarationView source
couponInputSelectorsts
export declare const couponInputSelectors: {
code: (snapshot: CouponInputSnapshot) => string;
pending: (snapshot: CouponInputSnapshot) => boolean;
};
Name
Kind
Type
Requirement
code
property
(snapshot: CouponInputSnapshot) => string
required
pending
property
(snapshot: CouponInputSnapshot) => boolean
required
Name
code
Kind
property
Type
(snapshot: CouponInputSnapshot) => string
Requirement
required
Name
pending
Kind
property
Type
(snapshot: CouponInputSnapshot) => boolean
Requirement
required
DeclarationView source
CouponInputSnapshotts
type CouponInputSnapshot = Snapshot<"ready", CouponInputContext>;
DeclarationView source
CouponInputStatusts
type CouponInputStatus = "idle" | "applying" | "applied" | "error";