Skip to content

Commit a68af7b

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/eslint-8.57.0
2 parents 9195b0e + 8447b2d commit a68af7b

37 files changed

+241
-177
lines changed

.github/workflows/CI.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: CI
22

3-
on: [push]
3+
on: [push, workflow_dispatch]
44

55
env:
66
NODE_VERSION: 18
@@ -74,4 +74,4 @@ jobs:
7474
build-args: |
7575
DIRECTUS_URL=${{ secrets.DIRECTUS_URL }}
7676
DIRECTUS_TOKEN=${{ secrets.DIRECTUS_TOKEN }}
77-
PUBLIC_SCRUMLR_SERVER_URL="https://development.scrumlr.fra.ics.inovex.io/api"
77+
PUBLIC_SCRUMLR_SERVER_URL="https://development.scrumlr.fra.ics.inovex.io/api"

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"lint": "eslint . --ext .js,.ts,.astro"
1212
},
1313
"dependencies": {
14-
"@astrojs/node": "^8.2.3",
14+
"@astrojs/node": "^8.3.0",
1515
"@astrojs/react": "^3.0.10",
1616
"@directus/sdk": "^15.0.3",
1717
"@uidotdev/usehooks": "^2.4.1",

pnpm-lock.yaml

+5-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/Footer/Footer.astro

+13-22
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
2+
import getTranslatedContent from "@utils/directus";
3+
import {getLangFromUrl, getPathForLanguage} from "../../i18n/utils";
24
import { Github } from "@icons/Github";
35
import { Instagram } from "@icons/Instagram";
46
import { Linkedin } from "@icons/Linkedin";
57
import { Podcast } from "@icons/Podcast";
6-
import { X } from "@icons/X";
78
import { Xing } from "@icons/Xing";
89
import { Inovex } from "@icons/Inovex";
9-
import getTranslatedContent from "@utils/directus";
1010
import "./Footer.scss";
1111
12-
const {lang} = Astro.params;
13-
const content = await getTranslatedContent("Footer", lang!);
12+
const lang = getLangFromUrl(Astro.url);
13+
const content = await getTranslatedContent("Footer", lang);
1414
---
1515

1616
<footer>
@@ -40,7 +40,7 @@ const content = await getTranslatedContent("Footer", lang!);
4040
</li>
4141
<li>
4242
<a
43-
href="https://www.linkedin.com/company/inovex/"
43+
href="https://www.linkedin.com/showcase/scrumlr/"
4444
target="_blank"
4545
aria-label="LinkedIn"
4646
>
@@ -58,16 +58,7 @@ const content = await getTranslatedContent("Footer", lang!);
5858
</li>
5959
<li>
6060
<a
61-
href="https://twitter.com/inovexgmbh"
62-
target="_blank"
63-
aria-label="X"
64-
>
65-
<X />
66-
</a>
67-
</li>
68-
<li>
69-
<a
70-
href="https://www.instagram.com/inovexlife/"
61+
href="https://www.instagram.com/scrumlr/"
7162
target="_blank"
7263
aria-label="Instagram"
7364
>
@@ -88,13 +79,13 @@ const content = await getTranslatedContent("Footer", lang!);
8879
<nav class="footer__right">
8980
<ul class="footer__internal-links">
9081
<li>
91-
<a href=`/${lang}#home`>{content.home}</a>
82+
<a href={getPathForLanguage(lang, "#home")}>{content.home}</a>
9283
</li>
9384
<li>
94-
<a href=`/${lang}#features`>{content.features}</a>
85+
<a href={getPathForLanguage(lang, "#features")}>{content.features}</a>
9586
</li>
9687
<li>
97-
<a href=`/${lang}#about`>{content.about}</a>
88+
<a href={getPathForLanguage(lang, "#about")}>{content.about}</a>
9889
</li>
9990
<li>
10091
<a href=`/new`>{content.getStarted}</a>
@@ -106,16 +97,16 @@ const content = await getTranslatedContent("Footer", lang!);
10697
<div class="footer__bottom-content">
10798
<ul class="footer__legal-links">
10899
<li>
109-
<a href=`/${lang}/data-protection`>{content.privacy}</a>
100+
<a href={getPathForLanguage(lang, "/data-protection")}>{content.privacy}</a>
110101
</li>
111102
<li>
112-
<a href=`/${lang}/cookie-policy`>{content.cookies}</a>
103+
<a href={getPathForLanguage(lang, "/cookie-policy")}>{content.cookies}</a>
113104
</li>
114105
<li>
115-
<a href=`/${lang}/terms`>{content.terms}</a>
106+
<a href={getPathForLanguage(lang, "/terms")}>{content.terms}</a>
116107
</li>
117108
<li>
118-
<a href=`/${lang}/legal-notice`>{content.legal_notice}</a>
109+
<a href={getPathForLanguage(lang, "/legal-notice")}>{content.legal_notice}</a>
119110
</li>
120111
</ul>
121112
<span>{content.copyright}</span>

src/components/Navbar/Navbar.astro

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
---
2+
import getTranslatedContent from "@utils/directus";
3+
import { getLangFromUrl, getPathForLanguage } from '../../i18n/utils';
24
import { Logo } from "../Logo";
35
import { Plus } from "../../icons/Plus";
46
import { Link } from "../Link/Link";
5-
import getTranslatedContent from "@utils/directus";
67
import UserMenu from "@components/UserMenu/UserMenu";
78
import "./Navbar.scss";
89
9-
const {lang} = Astro.params;
10-
const content = await getTranslatedContent("Header", lang!);
10+
const lang = getLangFromUrl(Astro.url);
11+
const content = await getTranslatedContent("Header", lang);
1112
1213
const userMenuLabels = {
1314
germanLabel: content.german,
@@ -20,18 +21,18 @@ const userMenuLabels = {
2021
<nav id="navbar" class="navbar">
2122
<ul>
2223
<li>
23-
<a aria-label={content.home} href=`/${lang}`>
24+
<a aria-label={content.home} href={getPathForLanguage(lang, "/")}>
2425
<Logo />
2526
</a>
2627
</li>
2728
<li>
28-
<a href=`/${lang}#home`>{content.home}</a>
29+
<a href={getPathForLanguage(lang, "#home")}>{content.home}</a>
2930
</li>
3031
<li>
31-
<a href=`/${lang}#features`>{content.features}</a>
32+
<a href={getPathForLanguage(lang, "#features")}>{content.features}</a>
3233
</li>
3334
<li>
34-
<a href=`/${lang}#about`>{content.aboutUs}</a>
35+
<a href={getPathForLanguage(lang, "#about")}>{content.aboutUs}</a>
3536
</li>
3637
<li>
3738
<UserMenu client:load {...userMenuLabels} />

src/components/UserMenu/UserMenu.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ const UserMenu = ({
9595
</a>
9696
</li>
9797
<li>
98-
<a href="/en">
98+
<a href="/">
9999
<svg
100100
width="32"
101101
height="32"

src/i18n/utils.ts

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const languages = {
2+
en: 'English',
3+
de: 'German',
4+
};
5+
6+
const defaultLang = 'en';
7+
8+
export function getLangFromUrl(url: URL) {
9+
const [, lang] = url.pathname.split('/');
10+
if (lang in languages) return lang as keyof typeof languages;
11+
return defaultLang;
12+
}
13+
14+
export function getPathForLanguage(lang: keyof typeof languages, path: string) {
15+
return lang === defaultLang ? path : `/${lang}${path}`;
16+
}
17+

src/icons/X.tsx

-14
This file was deleted.

src/layouts/Layout.astro

+16-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
---
2+
import { getLangFromUrl } from "src/i18n/utils";
23
import Navbar from "../components/Navbar/Navbar.astro";
34
import Footer from "../components/Footer/Footer.astro";
45
@@ -7,28 +8,37 @@ export interface Props {
78
}
89
910
const { title } = Astro.props;
11+
const lang = getLangFromUrl(Astro.url);
1012
---
1113

1214
<!doctype html>
13-
<html lang="en">
15+
<html lang={lang}>
1416
<head>
1517
<meta charset="UTF-8" />
16-
<meta name="description" content="Open source online retrospective & collaboration tool - fast onboarding, jump right into a session with your team" />
18+
<meta
19+
name="description"
20+
content="Open source online retrospective & collaboration tool - fast onboarding, jump right into a session with your team"
21+
/>
1722
<meta
1823
name="viewport"
1924
content="width=device-width, initial-scale=1 viewport-fit=cover"
2025
/>
2126
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
2227
<meta name="generator" content={Astro.generator} />
2328
<title>{title}</title>
29+
<script
30+
defer
31+
data-domain="scrumlr.io"
32+
src="https://inolytics.inovex-gpt.fra.ics.inovex.io/js/script.js"
33+
></script>
2434
</head>
2535
<body>
2636
<div class="body_wrapper">
27-
<Navbar />
37+
<Navbar lang={lang} />
2838
<main>
2939
<slot />
3040
</main>
31-
<Footer />
41+
<Footer lang={lang} />
3242
</div>
3343
</body>
3444
</html>
@@ -76,8 +86,8 @@ const { title } = Astro.props;
7686

7787
--darkmode-shadow: 0 2px 32px -12px #0f131b;
7888

79-
--light-blue: #E4E8F6;
80-
--dark-blue-4: #5A647D;
89+
--light-blue: #e4e8f6;
90+
--dark-blue-4: #5a647d;
8191

8292
--light-grey-3: #edeff2;
8393
--dark-grey: #939daa;

src/layouts/LegalLayout.astro

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,30 @@
11
---
2+
import { getLangFromUrl, getPathForLanguage } from "src/i18n/utils";
3+
import getTranslatedContent from "@utils/directus";
24
import { ViewTransitions } from "astro:transitions";
35
import Layout from "./Layout.astro";
4-
import getTranslatedContent from "@utils/directus";
56
import "./LegalLayout.scss";
67
7-
const {lang} = Astro.params;
8-
const content = await getTranslatedContent("Legal_Menu", lang!);
8+
const lang = getLangFromUrl(Astro.url);
9+
const content = await getTranslatedContent("Legal_Menu", lang);
910
1011
const pathname = new URL(Astro.request.url).pathname;
1112
1213
const navItems = [
1314
{
14-
href: `/${lang}/data-protection`,
15+
href: getPathForLanguage(lang, "/data-protection"),
1516
name: content.privacy,
1617
},
1718
{
18-
href: `/${lang}/cookie-policy`,
19+
href: getPathForLanguage(lang, "/cookie-policy"),
1920
name: content.cookies,
2021
},
2122
{
22-
href: `/${lang}/terms`,
23+
href: getPathForLanguage(lang, "/terms"),
2324
name: content.terms,
2425
},
2526
{
26-
href: `/${lang}/legal-notice`,
27+
href: getPathForLanguage(lang, "/legal-notice"),
2728
name: content.legal_notice,
2829
},
2930
];

src/pages/[lang]/cookie-policy.astro

-20
This file was deleted.

src/pages/[lang]/data-protection.astro

-21
This file was deleted.

src/pages/[lang]/legal-notice.astro

-20
This file was deleted.

0 commit comments

Comments
 (0)