cosmos-multisig-ui/components/forms/CreateTxForm/MsgForm/index.tsx
2023-05-25 13:20:47 +02:00

37 lines
1.4 KiB
TypeScript

import { MsgGetter } from "..";
import { MsgType } from "../../../../types/txMsg";
import MsgClaimRewardsForm from "./MsgClaimRewardsForm";
import MsgDelegateForm from "./MsgDelegateForm";
import MsgRedelegateForm from "./MsgRedelegateForm";
import MsgSendForm from "./MsgSendForm";
import MsgSetWithdrawAddressForm from "./MsgSetWithdrawAddressForm";
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} />;
default:
return null;
}
};
export default MsgForm;