right click on language switcher

This commit is contained in:
2025-06-03 17:15:11 +01:00
parent 1220131cfd
commit dedd23dfb1
2 changed files with 52 additions and 105 deletions
+48 -102
View File
@@ -93,6 +93,29 @@ const Header = (props) => {
});
};
const switchLocale = locale === "en" ? "cy" : "en";
const handleLocaleSwitch = () => {
// Set cookie
setCookie(null, "pedw_locale", switchLocale, {
path: "/",
maxAge: 60 * 60 * 24 * 365,
});
// Rebuild URL with query parameters
const queryString =
Object.keys(router.query).length > 0
? "?" +
Object.entries(router.query)
.map(([key, value]) => `${key}=${value}`)
.join("&")
: "";
router.push(router.pathname + queryString, undefined, {
locale: switchLocale,
});
};
return (
<header
className="govuk-header "
@@ -115,106 +138,6 @@ const Header = (props) => {
</div>
<div className="languageSwitch">
{/* <div className="mobileNav">
<div className="mobileMenu">
<input
type="radio"
id="mobileMenu-1"
name="mobileMenu-group-1"
/>
<label htmlFor="mobileMenu-1">
{t("common:mobile-nav-label")} <i>▼</i>
</label>
<div className="mobileMenu close-mobileMenu">
<input
type="radio"
id="mobileMenu-close"
name="mobileMenu-group-1"
/>
<label htmlFor="mobileMenu-close">
{t("common:mobile-nav-label")} <i>▲</i>
</label>
</div>
<div className="content">
<ul>
{hasContactLink.includes(router.pathname) ==
true ? (
<li>
<Link href="/dns/contact-us">
<a className="govuk-header__link ">
Contact
</a>
</Link>
</li>
) : (
""
)}
{noSignoutLink.includes(router.pathname) ==
true ? (
""
) : (
<li>
<a
href={
router.locale == "cy"
? "/allgofnodi"
: "/logout"
}
onClick={() => {
setLogout(),
window.localStorage.clear();
}}
className="govuk-header__link "
>
{t("common:signout-label")}
</a>
</li>
)}
<li>
<Link
href={
locale == "en"
? router.query.q != null
? router.pathname +
"?q=" +
router.query.q
: router.pathname
: router.query.q != null
? process.env.I18N_DOMAIN +
"/" +
router.asPath +
"?q=" +
router.query.q
: router.asPath
}
locale={
locale == "en" ? "cy" : "en"
}
className="govuk-header__link "
lang={locale == "en" ? "cy" : "en"}
hrefLang={
locale == "en" ? "cy" : "en"
}
data-journey-click={
locale == "en"
? "link - click:lang-select:Cymraeg"
: "link - click:lang-select:English"
}
aria-label={
locale == "en"
? "Dewiswch Cymraeg"
: "Select English"
}
>
{" "}
{t("common:available-in")}
</Link>
</li>
</ul>
</div>
</div>
</div> */}
<div className="fullNavs">
{hasContactLink.includes(router.pathname) == true ? (
<Link
@@ -244,7 +167,30 @@ const Header = (props) => {
</Link>
)}
<Link
<span
onClick={handleLocaleSwitch}
className="govuk-header__link"
lang={switchLocale}
hrefLang={switchLocale}
role="link"
tabIndex={0}
onKeyDown={(e) => {
if (e.key === "Enter") handleLocaleSwitch();
}}
data-journey-click={
locale === "en"
? "link - click:lang-select:Cymraeg"
: "link - click:lang-select:English"
}
aria-label={
locale === "en"
? "Dewiswch Cymraeg"
: "Select English"
}
>
{t("common:available-in")}
</span>
{/* <Link
href={
Object.keys(router.query).length > 0
? router.pathname +
@@ -284,7 +230,7 @@ const Header = (props) => {
>
{" "}
{t("common:available-in")}
</Link>
</Link> */}
</div>
</div>
</div>
+4 -3
View File
@@ -734,6 +734,7 @@ textarea,
margin-top: 10px;
text-align: right;
margin-right: 0px;
cursor: pointer;
@media screen and (max-width: 900px) {
position: absolute;
@@ -741,7 +742,7 @@ textarea,
right: -10px;
}
a.govuk-header__link {
.govuk-header__link {
background-color: $black;
padding: 10px 20px;
font-weight: 700;
@@ -753,9 +754,9 @@ textarea,
}
}
a.govuk-header__link:focus {
.govuk-header__link:focus {
background-color: $black;
padding: 10px;
padding: 10px 20px;
color: #fff;
box-shadow: none;
}