mancala/apps/frontend/src/routes/Home.tsx

62 lines
2.0 KiB
TypeScript
Raw Normal View History

2022-05-12 23:41:24 +03:00
import * as React from "react";
import { FunctionComponent, useEffect, useState } from "react";
import { getColorByBrightness } from "@mancala/core";
import { Theme } from "@mancala/core";
2022-07-20 22:06:11 +03:00
import HeaderBar from "../components/headerbar/HeaderBar";
2022-07-14 13:38:00 +03:00
import PageContainer from "../components/PageContainer";
2022-07-15 18:11:09 +03:00
import Row from "../components/Row";
import HeaderbarIcon from "../components/headerbar/HeaderbarIcon";
import HeaderbarTitle from "../components/headerbar/HeaderbarTitle";
import ThemeSwitchMenu from "../components/headerbar/ThemeSwitchMenu";
import Button from "../components/Button";
import { Context } from "../context/context";
2022-07-31 00:59:36 +03:00
import { Link, useNavigate } from "react-router-dom";
2022-09-04 01:06:26 +03:00
import Util from "../util/Util";
import { useTranslation } from "react-i18next";
2022-05-12 23:41:24 +03:00
const Home: FunctionComponent<{
context: Context,
userKey?: string,
2022-07-31 00:59:36 +03:00
theme: Theme,
}> = ({ context, userKey, theme }) => {
2021-06-30 19:41:53 +03:00
2022-07-31 00:59:36 +03:00
const navigate = useNavigate();
2022-06-04 20:54:19 +03:00
const { t } = useTranslation();
2022-07-13 22:39:01 +03:00
const onNewGameClick = () => {
if(Util.checkConnectionAndMaybeAlert(context, t)) return;
2022-07-31 00:59:36 +03:00
navigate("/loby")
2022-05-12 23:41:24 +03:00
};
2021-07-02 23:13:38 +03:00
2022-07-15 18:11:09 +03:00
const textColorOnAppBar = getColorByBrightness(
context.themeManager.theme.appBarBgColor,
context.themeManager.theme.textColor,
context.themeManager.theme.textLightColor
);
2022-05-12 23:41:24 +03:00
return (
2022-07-13 22:39:01 +03:00
<PageContainer theme={theme!}>
2022-07-15 18:11:09 +03:00
<HeaderBar color={theme?.appBarBgColor}>
<Row>
2022-07-31 00:59:36 +03:00
<Link style={{ textDecoration: 'none' }} to={"/"}>
<HeaderbarIcon />
</Link>
<Link style={{ textDecoration: 'none' }} to={"/"}>
<HeaderbarTitle title={t("Mancala")} color={textColorOnAppBar} />
2022-07-31 00:59:36 +03:00
</Link>
</Row>
<Row>
<ThemeSwitchMenu context={context} textColor={textColorOnAppBar} />
<Button
context={context}
color={context.themeManager.theme.pitColor}
text={t("NewGame")}
2022-07-31 00:59:36 +03:00
onClick={onNewGameClick} />
</Row>
</HeaderBar>
2022-07-13 22:39:01 +03:00
</PageContainer>
2022-05-12 23:41:24 +03:00
);
};
export default Home;