🐛 fix: TypeScript build errors in redeem-code component

- Fix type error for accessing response.data.message with proper type assertion
- Remove invalid 'loading' prop from Button component
- Add conditional text rendering for loading state

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
EUForest 2026-02-08 21:52:43 +08:00
parent 0a57896d87
commit 9765a0c742
2 changed files with 6 additions and 4 deletions

View File

@ -25,7 +25,8 @@ export default function RedeemCode({ onSuccess }: RedeemCodeProps) {
const redeemMutation = useMutation({ const redeemMutation = useMutation({
mutationFn: (code: string) => redeemCode({ code }), mutationFn: (code: string) => redeemCode({ code }),
onSuccess: (response) => { onSuccess: (response) => {
toast.success(response.data.message || t("redeemSuccess", "兑换成功")); const message = (response.data as { message?: string })?.message || t("redeemSuccess", "兑换成功");
toast.success(message);
setCode(""); setCode("");
onSuccess?.(); onSuccess?.();
}, },
@ -71,10 +72,11 @@ export default function RedeemCode({ onSuccess }: RedeemCodeProps) {
/> />
<Button <Button
disabled={redeemMutation.isPending || !code.trim()} disabled={redeemMutation.isPending || !code.trim()}
loading={redeemMutation.isPending}
type="submit" type="submit"
> >
{t("redeem", "兑换")} {redeemMutation.isPending
? t("redeeming", "兑换中...")
: t("redeem", "兑换")}
</Button> </Button>
</div> </div>
</div> </div>

View File

@ -273,7 +273,7 @@ export async function redeemCode(
body: { code: string }, body: { code: string },
options?: { [key: string]: any } options?: { [key: string]: any }
) { ) {
return request<API.Response & { data?: { message: string } }>( return request<API.Response & { data: { message: string } }>(
`${import.meta.env.VITE_API_PREFIX || ""}/v1/public/redemption/`, `${import.meta.env.VITE_API_PREFIX || ""}/v1/public/redemption/`,
{ {
method: "POST", method: "POST",