// @flow import { debounce } from "lodash"; import { observer } from "mobx-react"; import { PadlockIcon } from "outline-icons"; import * as React from "react"; import { useState } from "react"; import { useTranslation, Trans } from "react-i18next"; import Checkbox from "components/Checkbox"; import Heading from "components/Heading"; import HelpText from "components/HelpText"; import Scene from "components/Scene"; import useCurrentTeam from "hooks/useCurrentTeam"; import useStores from "hooks/useStores"; import useToasts from "hooks/useToasts"; function Security() { const { auth } = useStores(); const team = useCurrentTeam(); const { t } = useTranslation(); const { showToast } = useToasts(); const [sharing, setSharing] = useState(team.documentEmbeds); const [documentEmbeds, setDocumentEmbeds] = useState(team.guestSignin); const [guestSignin, setGuestSignin] = useState(team.sharing); const showSuccessMessage = debounce(() => { showToast(t("Settings saved"), { type: "success" }); }, 500); const handleChange = React.useCallback( async (ev: SyntheticInputEvent<*>) => { switch (ev.target.name) { case "sharing": setSharing(ev.target.checked); break; case "documentEmbeds": setDocumentEmbeds(ev.target.checked); break; case "guestSignin": setGuestSignin(ev.target.checked); break; default: } await auth.updateTeam({ sharing, documentEmbeds, guestSignin, }); showSuccessMessage(); }, [auth, sharing, documentEmbeds, guestSignin, showSuccessMessage] ); return ( }> Security Settings that impact the access, security, and content of your knowledge base. ); } export default observer(Security);