cosmos-multisig-ui/components/forms/CreateTxForm/MsgForm/index.tsx
2023-06-09 19:20:20 +02:00

43 lines
1.7 KiB
TypeScript

import { MsgGetter } from "..";
import { MsgType } from "../../../../types/txMsg";
import MsgClaimRewardsForm from "./MsgClaimRewardsForm";
import MsgCreateVestingAccountForm from "./MsgCreateVestingAccountForm";
import MsgDelegateForm from "./MsgDelegateForm";
import MsgRedelegateForm from "./MsgRedelegateForm";
import MsgSendForm from "./MsgSendForm";
import MsgSetWithdrawAddressForm from "./MsgSetWithdrawAddressForm";
import MsgTransferForm from "./MsgTransferForm";
import MsgUndelegateForm from "./MsgUndelegateForm";
interface MsgFormProps {
readonly msgType: MsgType;
readonly senderAddress: string;
readonly setMsgGetter: (msgGetter: MsgGetter) => void;
readonly deleteMsg: () => void;
}
const MsgForm = ({ msgType, senderAddress, ...restProps }: MsgFormProps) => {
switch (msgType) {
case "send":
return <MsgSendForm fromAddress={senderAddress} {...restProps} />;
case "delegate":
return <MsgDelegateForm delegatorAddress={senderAddress} {...restProps} />;
case "undelegate":
return <MsgUndelegateForm delegatorAddress={senderAddress} {...restProps} />;
case "redelegate":
return <MsgRedelegateForm delegatorAddress={senderAddress} {...restProps} />;
case "claimRewards":
return <MsgClaimRewardsForm delegatorAddress={senderAddress} {...restProps} />;
case "setWithdrawAddress":
return <MsgSetWithdrawAddressForm delegatorAddress={senderAddress} {...restProps} />;
case "createVestingAccount":
return <MsgCreateVestingAccountForm fromAddress={senderAddress} {...restProps} />;
case "msgTransfer":
return <MsgTransferForm fromAddress={senderAddress} {...restProps} />;
default:
return null;
}
};
export default MsgForm;