From 830fdd51cec25aad3efc651e2f2f6e6000e39e6c Mon Sep 17 00:00:00 2001 From: lonkaars Date: Fri, 12 Mar 2021 18:25:47 +0100 Subject: friend requests -> notifications --- components/navbar.tsx | 118 +++++++++++++++++++++++++++++---------------- components/recentGames.tsx | 1 - 2 files changed, 76 insertions(+), 43 deletions(-) (limited to 'components') diff --git a/components/navbar.tsx b/components/navbar.tsx index 2c7ce32..c2c1299 100644 --- a/components/navbar.tsx +++ b/components/navbar.tsx @@ -1,9 +1,9 @@ -import { CSSProperties, useEffect, useState } from "react"; +import { CSSProperties, useEffect, useState, ReactNode } from "react"; import { LogoDark } from "../components/logo"; import { AccountAvatar } from "./account"; -import { userInfo } from "../api/api"; -import { Bubble, Vierkant, Button } from './ui'; +import { userInfo, gameInfo } from "../api/api"; +import { Bubble, Vierkant, IconLabelButton } from './ui'; import Home from '@material-ui/icons/Home'; import VideogameAssetIcon from '@material-ui/icons/VideogameAsset'; @@ -11,11 +11,11 @@ import ExtensionIcon from '@material-ui/icons/Extension'; import SearchIcon from '@material-ui/icons/Search'; import SettingsIcon from '@material-ui/icons/Settings'; import PersonIcon from '@material-ui/icons/Person'; -import GroupAddIcon from '@material-ui/icons/GroupAdd'; +import NotificationsIcon from '@material-ui/icons/Notifications'; import DoneIcon from '@material-ui/icons/Done'; import CloseIcon from '@material-ui/icons/Close'; -function FriendRequestsBubble(props: { +function NotificationsArea(props: { visible?: boolean; }) { return props.visible && -

Vriendschapsverzoeken

+

Meldingen

+ @@ -48,14 +49,16 @@ function FriendRequestsBubble(props: { } var FriendRequestButtonStyle: CSSProperties = { - display: "inline-block", - padding: 12, borderRadius: 6, - marginLeft: 6 + display: "inline-block", + marginLeft: 0, + textAlign: "center" }; -function FriendRequest(props: { - user: userInfo; +function Acceptable(props: { + children?: ReactNode; + onAccept?: () => void; + onDeny?: () => void; }) { return -
- - -
- {props.user.username} -

{props.user.status}

-
-
+
+ {props.children}
- - + } + text="Accepteren"/> + } + text="Verwijderen"/>
} +function FriendRequest(props: { + user: userInfo; +}) { + return + + +
+ Vriendschapsverzoek + {props.user.username} +
+
+
+} + +function GameInvite(props: { + game: gameInfo; +}) { + return + +
+ Partijuitnodiging +

{props.game.opponent?.username} wil een potje 4 op een rij spelen!

+
+ +
+} var NavBarItemStyle: CSSProperties = { margin: 12, @@ -102,7 +136,7 @@ export function NavBar() { var [ loggedIn, setLoggedIn ] = useState(false); useEffect(() => setLoggedIn(document.cookie.includes("token")), []); - var [ friendRequestDialogVisible, setFriendRequestDialogVisible ] = useState(false); + var [ notificationsAreaVisible, setNotificationsAreaVisible ] = useState(false); return
@@ -138,17 +172,17 @@ export function NavBar() { position: "relative", ...NavBarItemStyle }}> -