@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
50 lines • 2.08 kB
TypeScript
import type { Account, AccountLike } from "@ledgerhq/types-live";
import { type FlowStatus } from "../../wizard/types";
import { getSendUiConfig } from "../uiConfig";
import type { SendFlowState, SendFlowInitParams, RecipientData, SendFlowOperationActions, SendFlowOperationResult, SendFlowTransactionActions, SendFlowTransactionState } from "../types";
type UseSendFlowBusinessLogicParams = Readonly<{
initParams?: SendFlowInitParams;
useOperationHook: (params: {
account: AccountLike | null;
parentAccount: Account | null;
}) => Readonly<{
state: SendFlowOperationResult;
actions: SendFlowOperationActions;
}>;
useTransactionHook: (params: {
account: AccountLike | null;
parentAccount: Account | null;
}) => Readonly<{
state: SendFlowTransactionState;
actions: SendFlowTransactionActions;
}>;
}>;
type UseSendFlowBusinessLogicResult = Readonly<{
state: SendFlowState;
transaction: ReturnType<UseSendFlowBusinessLogicParams["useTransactionHook"]>["actions"] & {
setRecipient: (recipient: RecipientData) => void;
};
operation: SendFlowOperationActions;
status: Readonly<{
setStatus: (status: FlowStatus) => void;
setError: () => void;
setSuccess: () => void;
resetStatus: () => void;
}>;
uiConfig: ReturnType<typeof getSendUiConfig>;
recipientSearch: Readonly<{
value: string;
setValue: (value: string) => void;
clear: () => void;
}>;
recipient: RecipientData | null;
setAccountAndNavigate: (account: AccountLike, parentAccount?: Account) => void;
}>;
/**
* Core Send flow business logic - platform agnostic
* Manages account, transaction, recipient, operation, and status state
* Apps inject platform-specific operation hooks (e.g. Redux)
*/
export declare function useSendFlowBusinessLogic({ initParams, useOperationHook, useTransactionHook, }: UseSendFlowBusinessLogicParams): UseSendFlowBusinessLogicResult;
export {};
//# sourceMappingURL=useSendFlowBusinessLogic.d.ts.map