/* GoToSocial Copyright (C) 2021-2023 GoToSocial Authors admin@gotosocial.org This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ "use strict"; const Promise = require("bluebird"); const React = require("react"); const Redux = require("react-redux"); const api = require("../lib/api"); const Languages = require("../components/languages"); const Submit = require("../components/submit"); const query = require("../lib/query"); const { useTextInput, useBoolInput } = require("../lib/form"); const useFormSubmit = require("../lib/form/submit"); const { Select, TextInput, Checkbox } = require("../components/form/inputs"); const MutationButton = require("../components/form/mutation-button"); const Loading = require("../components/loading"); module.exports = function UserSettings() { const {data: profile, isLoading} = query.useVerifyCredentialsQuery(); if (isLoading) { return ; } else { return ; } }; function UserSettingsForm({source}) { /* form keys - string source[privacy] - bool source[sensitive] - string source[language] - string source[status_format] */ const form = { defaultPrivacy: useTextInput("source[privacy]", {defaultValue: source.privacy ?? "unlisted"}), isSensitive: useBoolInput("source[sensitive]", {defaultValue: source.sensitive}), language: useTextInput("source[language]", {defaultValue: source.language ?? "EN"}), format: useTextInput("source[status_format]", {defaultValue: source.status_format ?? "plain"}), }; const [result, submitForm] = useFormSubmit(form, query.useUpdateCredentialsMutation()); return ( <>

Post settings

); } function PasswordChange() { const dispatch = Redux.useDispatch(); const [errorMsg, setError] = React.useState(""); const [statusMsg, setStatus] = React.useState(""); const [oldPassword, setOldPassword] = React.useState(""); const [newPassword, setNewPassword] = React.useState(""); const [newPasswordConfirm, setNewPasswordConfirm] = React.useState(""); function changePassword() { if (newPassword !== newPasswordConfirm) { setError("New password and confirm new password did not match!"); return; } setStatus("PATCHing"); setError(""); return Promise.try(() => { let data = { old_password: oldPassword, new_password: newPassword }; return dispatch(api.apiCall("POST", "/api/v1/user/password_change", data, "form")); }).then(() => { setStatus("Saved!"); setOldPassword(""); setNewPassword(""); setNewPasswordConfirm(""); }).catch((e) => { setError(e.message); setStatus(""); }); } return ( <>

Change password

setOldPassword(e.target.value)} />
setNewPassword(e.target.value)} />
setNewPasswordConfirm(e.target.value)} />
); }