refactor: update Settings and Navbar components for improved state management and UI integration

This commit is contained in:
ecwu
2025-01-03 01:17:54 +08:00
parent 6fe1012270
commit 30583a421d
4 changed files with 112 additions and 103 deletions

View File

@@ -475,7 +475,7 @@ const Choice = (props: {
);
};
export default (props: { setShow: Dispatch<boolean> }) => {
export default (props: {}) => {
const ctx = useContext(AppContext);
if (ctx === null) return <></>;
@@ -497,13 +497,14 @@ export default (props: { setShow: Dispatch<boolean> }) => {
const [totalCost, setTotalCost] = useState(getTotalCost());
// @ts-ignore
const { langCode, setLangCode } = useContext(langCodeContext);
const [open, setOpen] = useState<boolean>(false);
useEffect(() => {
themeChange(false);
const handleKeyPress = (event: any) => {
if (event.keyCode === 27) {
// keyCode for ESC key is 27
props.setShow(false);
setOpen(false);
}
};
@@ -514,7 +515,7 @@ export default (props: { setShow: Dispatch<boolean> }) => {
};
}, []); // The empty dependency array ensures that the effect runs only once
return (
<Sheet>
<Sheet open={open} onOpenChange={setOpen}>
<SheetTrigger asChild>
<Button variant="outline" className="flex-grow">
{Tr("Settings")}