Fix URL prefix re-inserted when redirecting settings page (#4650)

This commit is contained in:
WithoutPants 2024-03-05 14:54:07 +11:00 committed by GitHub
parent 20ac388f77
commit 409a200ebc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,6 +1,6 @@
import React from "react";
import { Tab, Nav, Row, Col, Form } from "react-bootstrap";
import { Redirect } from "react-router-dom";
import { Redirect, useLocation } from "react-router-dom";
import { LinkContainer } from "react-router-bootstrap";
import { FormattedMessage } from "react-intl";
import { Helmet } from "react-helmet";
@ -41,24 +41,11 @@ function isTabKey(tab: string | null): tab is TabKey {
return validTabs.includes(tab as TabKey);
}
const SettingTabs: React.FC = () => {
const tab = new URLSearchParams(location.search).get("tab");
const SettingTabs: React.FC<{ tab: TabKey }> = ({ tab }) => {
const { advancedMode, setAdvancedMode } = useSettings();
const titleProps = useTitleProps({ id: "settings" });
if (!isTabKey(tab)) {
return (
<Redirect
to={{
...location,
search: `tab=${defaultTab}`,
}}
/>
);
}
return (
<Tab.Container activeKey={tab} id="configuration-tabs">
<Helmet {...titleProps} />
@ -215,9 +202,23 @@ const SettingTabs: React.FC = () => {
};
export const Settings: React.FC = () => {
const location = useLocation();
const tab = new URLSearchParams(location.search).get("tab");
if (!isTabKey(tab)) {
return (
<Redirect
to={{
...location,
search: `tab=${defaultTab}`,
}}
/>
);
}
return (
<SettingsContext>
<SettingTabs />
<SettingTabs tab={tab} />
</SettingsContext>
);
};