diff options
author | 2022-10-03 16:46:38 +0200 | |
---|---|---|
committer | 2022-10-03 16:46:38 +0200 | |
commit | 5249294a166c901469eeac1d3297e913b4a125e7 (patch) | |
tree | d68ff7bebbc0135d23c18520417c668155aa56f2 /web/source/settings-panel/lib/get-views.js | |
parent | [performance] add user cache and database (#879) (diff) | |
download | gotosocial-5249294a166c901469eeac1d3297e913b4a125e7.tar.xz |
[chore] Bundler restructure (#880)
* re-structure bundler, settings panel files
* add more info logging
* tidy up CSS syntax errors
* split into lib/ files
* livereloading server
* fix factor function for production builds
* remove testing console.log
* default to production env, saves 300kb bundle size
Diffstat (limited to 'web/source/settings-panel/lib/get-views.js')
-rw-r--r-- | web/source/settings-panel/lib/get-views.js | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/web/source/settings-panel/lib/get-views.js b/web/source/settings-panel/lib/get-views.js deleted file mode 100644 index 39f627435..000000000 --- a/web/source/settings-panel/lib/get-views.js +++ /dev/null @@ -1,102 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021-2022 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 <http://www.gnu.org/licenses/>. -*/ - -"use strict"; - -const React = require("react"); -const Redux = require("react-redux"); -const { Link, Route, Switch, Redirect } = require("wouter"); -const { ErrorBoundary } = require("react-error-boundary"); - -const ErrorFallback = require("../components/error"); -const NavButton = require("../components/nav-button"); - -function urlSafe(str) { - return str.toLowerCase().replace(/\s+/g, "-"); -} - -module.exports = function getViews(struct) { - const sidebar = { - all: [], - admin: [], - }; - - const panelRouter = { - all: [], - admin: [], - }; - - Object.entries(struct).forEach(([name, entries]) => { - let sidebarEl = sidebar.all; - let panelRouterEl = panelRouter.all; - - if (entries.adminOnly) { - sidebarEl = sidebar.admin; - panelRouterEl = panelRouter.admin; - delete entries.adminOnly; - } - - let base = `/settings/${urlSafe(name)}`; - - let links = []; - - let firstRoute; - - Object.entries(entries).forEach(([name, ViewComponent]) => { - let url = `${base}/${urlSafe(name)}`; - - if (firstRoute == undefined) { - firstRoute = url; - } - - panelRouterEl.push(( - <Route path={`${url}/:page?`} key={url}> - <ErrorBoundary FallbackComponent={ErrorFallback} onReset={() => { }}> - {/* FIXME: implement onReset */} - <ViewComponent /> - </ErrorBoundary> - </Route> - )); - - links.push( - <NavButton key={url} href={url} name={name} /> - ); - }); - - panelRouterEl.push( - <Route key={base} path={base}> - <Redirect to={firstRoute} /> - </Route> - ); - - sidebarEl.push( - <React.Fragment key={name}> - <Link href={firstRoute}> - <a> - <h2>{name}</h2> - </a> - </Link> - <nav> - {links} - </nav> - </React.Fragment> - ); - }); - - return { sidebar, panelRouter }; -};
\ No newline at end of file |