chore: update clear data modal in setting

This commit is contained in:
steven
2023-03-30 11:01:05 +08:00
parent 332bf9eb04
commit fe100fdf12
2 changed files with 45 additions and 48 deletions

View File

@ -0,0 +1,20 @@
import { useState } from "react";
import { createPortal } from "react-dom";
import ClearDataConfirmModal from "./ClearDataConfirmModal";
const ClearDataButton = () => {
const [showClearDataConfirmModal, setShowClearDataConfirmModal] = useState(false);
return (
<>
<button className="btn btn-sm btn-error" onClick={() => setShowClearDataConfirmModal(true)}>
Clear
</button>
{showClearDataConfirmModal &&
createPortal(<ClearDataConfirmModal close={() => setShowClearDataConfirmModal(false)} />, document.body)}
</>
);
};
export default ClearDataButton;

View File

@ -1,33 +1,16 @@
import { useState } from "react";
import { createPortal } from "react-dom";
import Icon from "./Icon";
import WeChatQRCodeView from "./WeChatQRCodeView";
import ClearDataConfirmModal from "./ClearDataConfirmModal";
import ClearDataButton from "./ClearDataButton";
interface Props {
show: boolean;
close: () => void;
}
interface State {
showClearDataConfirmModal: boolean;
}
const SettingModal = (props: Props) => {
const { show, close } = props;
const [state, setState] = useState<State>({
showClearDataConfirmModal: false,
});
const toggleClearDataConfirmModal = (show = true) => {
setState({
...state,
showClearDataConfirmModal: show,
});
};
return (
<>
<div className={`modal modal-middle ${show && "modal-open"}`}>
<div className="modal-box relative">
<h3 className="font-bold text-lg">Setting</h3>
@ -51,18 +34,12 @@ const SettingModal = (props: Props) => {
<div className="w-full border border-red-200 p-4 rounded-lg">
<div className="w-full flex flex-row justify-between items-center gap-2">
<span>Clear all data</span>
<button className="btn btn-sm btn-error" onClick={() => toggleClearDataConfirmModal(true)}>
Clear
</button>
<ClearDataButton />
</div>
</div>
</div>
</div>
</div>
{state.showClearDataConfirmModal &&
createPortal(<ClearDataConfirmModal close={() => toggleClearDataConfirmModal(false)} />, document.body)}
</>
);
};