import * as React from "react"; import Button from "@mui/material/Button"; import Dialog from "@mui/material/Dialog"; import ListItemText from "@mui/material/ListItemText"; import ListItemButton from "@mui/material/ListItemButton"; import List from "@mui/material/List"; import Divider from "@mui/material/Divider"; import AppBar from "@mui/material/AppBar"; import Toolbar from "@mui/material/Toolbar"; import IconButton from "@mui/material/IconButton"; import Typography from "@mui/material/Typography"; import CloseIcon from "@mui/icons-material/Close"; import Slide from "@mui/material/Slide"; import { TransitionProps } from "@mui/material/transitions"; import ListOfMembers from "./ListOfMembers"; import { InviteMember } from "./InviteMember"; import { ListOfInvites } from "./ListOfInvites"; import { ListOfBans } from "./ListOfBans"; import { ListOfJoinRequests } from "./ListOfJoinRequests"; import { Box, FormControlLabel, Switch, Tab, Tabs, styled } from "@mui/material"; import { CustomizedSnackbars } from "../Snackbar/Snackbar"; import { MyContext, isMobile } from "../../App"; import { getGroupMembers, getNames } from "./Group"; import { LoadingSnackbar } from "../Snackbar/LoadingSnackbar"; import { getFee } from "../../background"; import { LoadingButton } from "@mui/lab"; import { subscribeToEvent, unsubscribeFromEvent } from "../../utils/events"; function a11yProps(index: number) { return { id: `simple-tab-${index}`, "aria-controls": `simple-tabpanel-${index}`, }; } const LocalNodeSwitch = styled(Switch)(({ theme }) => ({ padding: 8, '& .MuiSwitch-track': { borderRadius: 22 / 2, '&::before, &::after': { content: '""', position: 'absolute', top: '50%', transform: 'translateY(-50%)', width: 16, height: 16, }, '&::before': { backgroundImage: `url('data:image/svg+xml;utf8,')`, left: 12, }, '&::after': { backgroundImage: `url('data:image/svg+xml;utf8,')`, right: 12, }, }, '& .MuiSwitch-thumb': { boxShadow: 'none', width: 16, height: 16, margin: 2, }, })); const Transition = React.forwardRef(function Transition( props: TransitionProps & { children: React.ReactElement; }, ref: React.Ref ) { return ; }); export const Settings = ({ address, open, setOpen, }) => { const [checked, setChecked] = React.useState(false); const handleChange = (event: React.ChangeEvent) => { setChecked(event.target.checked); window.sendMessage("addUserSettings", { keyValue: { key: 'disable-push-notifications', value: event.target.checked, }, }) .then((response) => { if (response?.error) { console.error("Error adding user settings:", response.error); } else { console.log("User settings added successfully"); } }) .catch((error) => { console.error("Failed to add user settings:", error.message || "An error occurred"); }); }; const handleClose = () => { setOpen(false); }; const getUserSettings = async () => { try { return new Promise((res, rej) => { window.sendMessage("getUserSettings", { key: "disable-push-notifications", }) .then((response) => { if (!response?.error) { setChecked(response || false); res(response); return; } rej(response.error); }) .catch((error) => { rej(error.message || "An error occurred"); }); }); } catch (error) { console.log("error", error); } }; React.useEffect(() => { getUserSettings(); }, []); return ( General Settings } label="Disable all push notifications" /> ); };