xmr-btc-swap/src-gui/src/renderer/components/pages/wallet/WithdrawWidget.tsx
b-enedict 430a22fbf6
refactor(gui): Update MUI to v7 (#383)
* task(gui): update to mui v5

* task(gui): use sx prop instead of system props

* task(gui): update to mui v6 and replace makeStyles with sx prop

* task(gui): update to mui v7

* task(gui): update react

* fix(gui): fix import

* task(gui): adjust theme and few components to fix migration introduced styling errors

* fix(gui): animation issues with text field animations

* fix(gui): remove 'darker' theme and make 'dark' theme the default

- with the new update 'dark' theme is already quite dark and therefore a 'darker' theme not necessary
- the default theme is set to 'dark' now in settings initialization

* feat(tooling): Upgrade dprint to 0.50.0, eslint config, prettier, justfile commands

- Upgrade dprint to 0.50.0
- Use sane default eslint config (fairly permissive)
- `dprint fmt` now runs prettier for the `src-gui` folder
- Added `check_gui_eslint`, `check_gui_tsc` and `check_gui` commands

* refactor: fix a few eslint errors

* dprint fmt

* fix tsc complains

* nitpick: small spacing issue

---------

Co-authored-by: Binarybaron <binarybaron@protonmail.com>
Co-authored-by: Mohan <86064887+binarybaron@users.noreply.github.com>
2025-06-06 22:31:33 +02:00

51 lines
1.5 KiB
TypeScript

import { Box, Button, Typography } from "@mui/material";
import SendIcon from "@mui/icons-material/Send";
import { useState } from "react";
import { SatsAmount } from "renderer/components/other/Units";
import { useAppSelector } from "store/hooks";
import BitcoinIcon from "../../icons/BitcoinIcon";
import InfoBox from "../../modal/swap/InfoBox";
import WithdrawDialog from "../../modal/wallet/WithdrawDialog";
import WalletRefreshButton from "./WalletRefreshButton";
export default function WithdrawWidget() {
const walletBalance = useAppSelector((state) => state.rpc.state.balance);
const [showDialog, setShowDialog] = useState(false);
function onShowDialog() {
setShowDialog(true);
}
return (
<>
<InfoBox
title={
<Box sx={{ alignItems: "center", display: "flex", gap: 0.5 }}>
Wallet Balance
<WalletRefreshButton />
</Box>
}
mainContent={
<Typography variant="h5">
<SatsAmount amount={walletBalance} />
</Typography>
}
icon={<BitcoinIcon />}
additionalContent={
<Button
variant="contained"
color="primary"
endIcon={<SendIcon />}
size="large"
onClick={onShowDialog}
disabled={walletBalance === null || walletBalance <= 0}
>
Withdraw
</Button>
}
loading={false}
/>
<WithdrawDialog open={showDialog} onClose={() => setShowDialog(false)} />
</>
);
}