diff options
author | lonkaars <l.leblansch@gmail.com> | 2021-03-13 10:46:32 +0100 |
---|---|---|
committer | lonkaars <l.leblansch@gmail.com> | 2021-03-13 10:46:32 +0100 |
commit | 056b77e82c72136170084ef0addba013eae22c9d (patch) | |
tree | 7e5e559a0d391a9b5a68ffa852439b43a5ce9ec1 /components/navbar.tsx | |
parent | 371c5fdd505361b226133fb446924f23c58f29c0 (diff) |
friend request accept thingy cool :tada:
Diffstat (limited to 'components/navbar.tsx')
-rw-r--r-- | components/navbar.tsx | 115 |
1 files changed, 3 insertions, 112 deletions
diff --git a/components/navbar.tsx b/components/navbar.tsx index ee00f0a..3eabe2d 100644 --- a/components/navbar.tsx +++ b/components/navbar.tsx @@ -1,10 +1,10 @@ -import { CSSProperties, useEffect, useState, ReactNode } from "react"; +import { CSSProperties, useEffect, useState } from "react"; import axios from "axios"; import { LogoDark } from "../components/logo"; import { AccountAvatar } from "./account"; -import { userInfo, gameInfo } from "../api/api"; -import { Bubble, Vierkant, IconLabelButton } from './ui'; +import { userInfo } from "../api/api"; +import { NotificationsArea } from "./notificationsArea"; import Home from '@material-ui/icons/Home'; import VideogameAssetIcon from '@material-ui/icons/VideogameAsset'; @@ -13,115 +13,6 @@ import SearchIcon from '@material-ui/icons/Search'; import SettingsIcon from '@material-ui/icons/Settings'; import PersonIcon from '@material-ui/icons/Person'; import NotificationsIcon from '@material-ui/icons/Notifications'; -import DoneIcon from '@material-ui/icons/Done'; -import CloseIcon from '@material-ui/icons/Close'; - -function NotificationsArea(props: { - visible?: boolean; - friendRequests?: Array<userInfo>; -}) { - return props.visible && <Bubble style={{ - left: 48 + 12, - top: 92, - transform: "translateY(-100%)", - textAlign: "left", - width: 400, - height: 450 - }} tuitjeStyle={{ - left: 12, - bottom: 86, - transform: "translate(-100%, 100%) rotate(90deg)" - }}> - <h2 style={{ marginBottom: 24 }}>Meldingen</h2> - <div style={{ - overflowY: "scroll", - whiteSpace: "normal", - height: 450 - 24 * 4, - borderRadius: 6 - }}> - { /* here should be the game invites */ } - { props.friendRequests?.map(user => <FriendRequest user={user}/>) } - </div> - </Bubble> -} - -var FriendRequestButtonStyle: CSSProperties = { - borderRadius: 6, - display: "inline-block", - marginLeft: 0, - textAlign: "center" -}; - -function Acceptable(props: { - children?: ReactNode; - onAccept?: () => void; - onDeny?: () => void; -}) { - return <Vierkant style={{ - borderRadius: 8, - background: "var(--background-alt)", - margin: 0, - padding: 12, - width: "100%", - marginBottom: 12 - }}> - <div style={{ position: "relative" }}> - {props.children} - <div style={{ - display: "grid", - gridTemplateColumns: "1fr, 1fr", - gridGap: 12, - marginTop: 12, - gridAutoFlow: "column", - }}> - <IconLabelButton - onclick={props.onAccept} - style={FriendRequestButtonStyle} - icon={<DoneIcon/>} - text="Accepteren"/> - <IconLabelButton - onclick={props.onDeny} - style={FriendRequestButtonStyle} - icon={<CloseIcon/>} - text="Verwijderen"/> - </div> - </div> - </Vierkant> -} - -function FriendRequest(props: { - user: userInfo; -}) { - return <Acceptable> - <a href={"/user?id=" + props.user.id}> - <AccountAvatar size={48} dummy/> - <div style={{ - display: "inline-block", - verticalAlign: "top", - marginLeft: 6 - }}> - <i style={{ display: "block" }}>Vriendschapsverzoek</i> - <b>{props.user.username}</b> - </div> - </a> - </Acceptable> -} - -function GameInvite(props: { - game: gameInfo; -}) { - return <Acceptable> - <a> - <div style={{ - display: "inline-block", - verticalAlign: "top", - }}> - <i style={{ display: "block" }}>Partijuitnodiging</i> - <p><b><a href={"/user?id=" + props.game.opponent?.id}>{props.game.opponent?.username}</a></b> wil een potje 4 op een rij spelen!</p> - </div> - </a> - </Acceptable> -} var NavBarItemStyle: CSSProperties = { margin: 12, |