From d173fcdfa3ad6f6aee721c8553f25f4db38fa302 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Thu, 5 Oct 2023 16:06:19 +0200 Subject: [chore] Convert some settings / admin panel JS to TypeScript (#2247) * initial conversion of STUFF to typescript * more stuff * update babel deps, include commonjs transform * update bundler & eslint configuration * eslint --fix * upgrade deps * update docs, build stuff, peripheral stuff --------- Co-authored-by: f0x --- .../settings/components/authorization/index.jsx | 76 --------------------- .../settings/components/authorization/index.tsx | 78 ++++++++++++++++++++++ .../settings/components/authorization/login.jsx | 69 ------------------- .../settings/components/authorization/login.tsx | 74 ++++++++++++++++++++ web/source/settings/components/back-button.jsx | 2 - web/source/settings/components/check-list.jsx | 2 - web/source/settings/components/combo-box.jsx | 2 - web/source/settings/components/error.jsx | 2 - web/source/settings/components/fake-profile.jsx | 2 - web/source/settings/components/fake-toot.jsx | 2 - web/source/settings/components/form/inputs.jsx | 2 - .../settings/components/form/mutation-button.jsx | 2 - web/source/settings/components/languages.jsx | 2 - web/source/settings/components/loading.jsx | 2 - .../settings/components/user-logout-card.jsx | 2 - 15 files changed, 152 insertions(+), 167 deletions(-) delete mode 100644 web/source/settings/components/authorization/index.jsx create mode 100644 web/source/settings/components/authorization/index.tsx delete mode 100644 web/source/settings/components/authorization/login.jsx create mode 100644 web/source/settings/components/authorization/login.tsx (limited to 'web/source/settings/components') diff --git a/web/source/settings/components/authorization/index.jsx b/web/source/settings/components/authorization/index.jsx deleted file mode 100644 index d38e160da..000000000 --- a/web/source/settings/components/authorization/index.jsx +++ /dev/null @@ -1,76 +0,0 @@ -/* - GoToSocial - Copyright (C) GoToSocial Authors admin@gotosocial.org - SPDX-License-Identifier: AGPL-3.0-or-later - - 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 React = require("react"); -const Redux = require("react-redux"); - -const query = require("../../lib/query"); - -const Login = require("./login"); -const Loading = require("../loading"); -const { Error } = require("../error"); - -module.exports = function Authorization({ App }) { - const { loginState, expectingRedirect } = Redux.useSelector((state) => state.oauth); - - const { isLoading, isSuccess, data: account, error } = query.useVerifyCredentialsQuery(undefined, { - skip: loginState == "none" || loginState == "logout" || expectingRedirect - }); - - let showLogin = true; - let content = null; - - if (isLoading) { - showLogin = false; - - let loadingInfo; - if (loginState == "callback") { - loadingInfo = "Processing OAUTH callback."; - } else if (loginState == "login") { - loadingInfo = "Verifying stored login."; - } - - content = ( -
- {loadingInfo} -
- ); - } else if (error != undefined) { - content = ( -
- - You can attempt logging in again below: -
- ); - } - - if (loginState == "login" && isSuccess) { - return ; - } else { - return ( -
-

GoToSocial Settings

- {content} - {showLogin && } -
- ); - } -}; \ No newline at end of file diff --git a/web/source/settings/components/authorization/index.tsx b/web/source/settings/components/authorization/index.tsx new file mode 100644 index 000000000..321bb03eb --- /dev/null +++ b/web/source/settings/components/authorization/index.tsx @@ -0,0 +1,78 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + 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 . +*/ + +import { useVerifyCredentialsQuery } from "../../lib/query/oauth"; +import { store } from "../../redux/store"; + +import React from "react"; + +import Login from "./login"; +import Loading from "../loading"; +import { Error } from "../error"; + +export function Authorization({ App }) { + const { loginState, expectingRedirect } = store.getState().oauth; + const skip = (loginState == "none" || loginState == "logout" || expectingRedirect); + + const { + isLoading, + isSuccess, + data: account, + error, + } = useVerifyCredentialsQuery(null, { skip: skip }); + + let showLogin = true; + let content = null; + + if (isLoading) { + showLogin = false; + + let loadingInfo; + if (loginState == "callback") { + loadingInfo = "Processing OAUTH callback."; + } else if (loginState == "login") { + loadingInfo = "Verifying stored login."; + } + + content = ( +
+ {loadingInfo} +
+ ); + } else if (error != undefined) { + content = ( +
+ + You can attempt logging in again below: +
+ ); + } + + if (loginState == "login" && isSuccess) { + return ; + } else { + return ( +
+

GoToSocial Settings

+ {content} + {showLogin && } +
+ ); + } +} diff --git a/web/source/settings/components/authorization/login.jsx b/web/source/settings/components/authorization/login.jsx deleted file mode 100644 index dbeb6c047..000000000 --- a/web/source/settings/components/authorization/login.jsx +++ /dev/null @@ -1,69 +0,0 @@ -/* - GoToSocial - Copyright (C) GoToSocial Authors admin@gotosocial.org - SPDX-License-Identifier: AGPL-3.0-or-later - - 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 React = require("react"); - -const query = require("../../lib/query"); -const { useTextInput, useValue } = require("../../lib/form"); -const useFormSubmit = require("../../lib/form/submit"); -const { TextInput } = require("../form/inputs"); -const MutationButton = require("../form/mutation-button"); -const Loading = require("../loading"); - -module.exports = function Login({ }) { - const form = { - instance: useTextInput("instance", { - defaultValue: window.location.origin - }), - scopes: useValue("scopes", "user admin") - }; - - const [formSubmit, result] = useFormSubmit( - form, - query.useAuthorizeFlowMutation(), - { changedOnly: false } - ); - - if (result.isLoading) { - return ( -
- Checking instance. -
- ); - } else if (result.isSuccess) { - return ( -
- Redirecting to instance authorization page. -
- ); - } - - return ( -
- - - - ); -}; \ No newline at end of file diff --git a/web/source/settings/components/authorization/login.tsx b/web/source/settings/components/authorization/login.tsx new file mode 100644 index 000000000..76bfccf43 --- /dev/null +++ b/web/source/settings/components/authorization/login.tsx @@ -0,0 +1,74 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + 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 . +*/ + +import React from "react"; + +import { useAuthorizeFlowMutation } from "../../lib/query/oauth"; +import { useTextInput, useValue } from "../../lib/form"; +import useFormSubmit from "../../lib/form/submit"; +import { TextInput } from "../form/inputs"; +import MutationButton from "../form/mutation-button"; +import Loading from "../loading"; + +export default function Login({ }) { + const form = { + instance: useTextInput("instance", { + defaultValue: window.location.origin + }), + scopes: useValue("scopes", "user admin") + }; + + const [formSubmit, result] = useFormSubmit( + form, + useAuthorizeFlowMutation(), + { + changedOnly: false, + onFinish: undefined, + } + ); + + if (result.isLoading) { + return ( +
+ Checking instance. +
+ ); + } else if (result.isSuccess) { + return ( +
+ Redirecting to instance authorization page. +
+ ); + } + + return ( +
+ + + + ); +} \ No newline at end of file diff --git a/web/source/settings/components/back-button.jsx b/web/source/settings/components/back-button.jsx index 13a7a757b..05306e2ea 100644 --- a/web/source/settings/components/back-button.jsx +++ b/web/source/settings/components/back-button.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); const { Link } = require("wouter"); diff --git a/web/source/settings/components/check-list.jsx b/web/source/settings/components/check-list.jsx index 492e58e5f..de42a56a5 100644 --- a/web/source/settings/components/check-list.jsx +++ b/web/source/settings/components/check-list.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); module.exports = function CheckList({ field, header = "All", EntryComponent, getExtraProps }) { diff --git a/web/source/settings/components/combo-box.jsx b/web/source/settings/components/combo-box.jsx index 030bd5c30..fc0133583 100644 --- a/web/source/settings/components/combo-box.jsx +++ b/web/source/settings/components/combo-box.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); const { diff --git a/web/source/settings/components/error.jsx b/web/source/settings/components/error.jsx index 283083481..3205cd5e3 100644 --- a/web/source/settings/components/error.jsx +++ b/web/source/settings/components/error.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); function ErrorFallback({ error, resetErrorBoundary }) { diff --git a/web/source/settings/components/fake-profile.jsx b/web/source/settings/components/fake-profile.jsx index 04424a5ed..d1f28f36c 100644 --- a/web/source/settings/components/fake-profile.jsx +++ b/web/source/settings/components/fake-profile.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); module.exports = function FakeProfile({ avatar, header, display_name, username, role }) { diff --git a/web/source/settings/components/fake-toot.jsx b/web/source/settings/components/fake-toot.jsx index b71831a95..7c2e40454 100644 --- a/web/source/settings/components/fake-toot.jsx +++ b/web/source/settings/components/fake-toot.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); const query = require("../lib/query"); diff --git a/web/source/settings/components/form/inputs.jsx b/web/source/settings/components/form/inputs.jsx index 378879525..f7a6beeda 100644 --- a/web/source/settings/components/form/inputs.jsx +++ b/web/source/settings/components/form/inputs.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); function TextInput({ label, field, ...inputProps }) { diff --git a/web/source/settings/components/form/mutation-button.jsx b/web/source/settings/components/form/mutation-button.jsx index 5f7218db4..0eaf33912 100644 --- a/web/source/settings/components/form/mutation-button.jsx +++ b/web/source/settings/components/form/mutation-button.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); const { Error } = require("../error"); diff --git a/web/source/settings/components/languages.jsx b/web/source/settings/components/languages.jsx index 51006098b..61c76e03a 100644 --- a/web/source/settings/components/languages.jsx +++ b/web/source/settings/components/languages.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); const langs = require("langs"); diff --git a/web/source/settings/components/loading.jsx b/web/source/settings/components/loading.jsx index 27ba17499..c62c72a0a 100644 --- a/web/source/settings/components/loading.jsx +++ b/web/source/settings/components/loading.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); module.exports = function Loading() { diff --git a/web/source/settings/components/user-logout-card.jsx b/web/source/settings/components/user-logout-card.jsx index 902d545bc..de77f0485 100644 --- a/web/source/settings/components/user-logout-card.jsx +++ b/web/source/settings/components/user-logout-card.jsx @@ -17,8 +17,6 @@ along with this program. If not, see . */ -"use strict"; - const React = require("react"); const query = require("../lib/query"); -- cgit v1.2.3