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

View File

@ -273,7 +273,7 @@ export async function redeemCode(
body: { code: string },
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/`,
{
method: "POST",