57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import * as React from "react";
|
|
import { FunctionComponent, useEffect, useState } from "react";
|
|
import { getColorByBrightness } from "../util/ColorUtil";
|
|
import { Theme } from "../theme/Theme";
|
|
import HeaderBar from "../components/headerbar/HeaderBar";
|
|
import PageContainer from "../components/PageContainer";
|
|
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";
|
|
import { Link, useNavigate } from "react-router-dom";
|
|
|
|
const Home: FunctionComponent<{
|
|
context: Context,
|
|
userKey?: string,
|
|
theme: Theme,
|
|
}> = ({ context, userKey, theme }) => {
|
|
|
|
const navigate = useNavigate();
|
|
|
|
const onNewGameClick = () => {
|
|
navigate("/loby")
|
|
};
|
|
|
|
const textColorOnAppBar = getColorByBrightness(
|
|
context.themeManager.theme.appBarBgColor,
|
|
context.themeManager.theme.textColor,
|
|
context.themeManager.theme.textLightColor
|
|
);
|
|
return (
|
|
<PageContainer theme={theme!}>
|
|
<HeaderBar color={theme?.appBarBgColor}>
|
|
<Row>
|
|
<Link style={{ textDecoration: 'none' }} to={"/"}>
|
|
<HeaderbarIcon />
|
|
</Link>
|
|
<Link style={{ textDecoration: 'none' }} to={"/"}>
|
|
<HeaderbarTitle title={context.texts.Mancala} color={textColorOnAppBar} />
|
|
</Link>
|
|
</Row>
|
|
<Row>
|
|
<ThemeSwitchMenu context={context} textColor={textColorOnAppBar} />
|
|
<Button
|
|
context={context}
|
|
color={context.themeManager.theme.pitColor}
|
|
text={context.texts.NewGame}
|
|
onClick={onNewGameClick} />
|
|
</Row>
|
|
</HeaderBar>
|
|
</PageContainer>
|
|
);
|
|
};
|
|
|
|
export default Home;
|