aboutsummaryrefslogtreecommitdiff
path: root/pages/user.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'pages/user.tsx')
-rw-r--r--pages/user.tsx69
1 files changed, 47 insertions, 22 deletions
diff --git a/pages/user.tsx b/pages/user.tsx
index a33f58b..8d4fb8d 100644
--- a/pages/user.tsx
+++ b/pages/user.tsx
@@ -25,7 +25,8 @@ import {
mdiClipboardTextOutline,
mdiGamepadSquareOutline,
mdiEarth,
- mdiAccountMinusOutline } from '@mdi/js';
+ mdiAccountMinusOutline,
+ mdiAccountRemoveOutline } from '@mdi/js';
function InfoModule(props: {
label: string;
@@ -217,36 +218,60 @@ export default function AccountPage() {
});
}}/>
})()}
- { relation == "friends" ?
- <IconLabelButton icon={<Icon size={1} path={mdiAccountMinusOutline}/>} text="Vriend verwijderen" onclick={() => {
- /* axios.request({ */
- /* method: "post", */
- /* url: `/api/social/request`, */
- /* headers: {"content-type": "application/json"}, */
- /* data: { "id": user?.id } */
- /* }) */
- /* .then(() => { */
- /* toast("Vriendschapsverzoek gestuurd", */
- /* "confirmation", */
- /* <PersonAddOutlinedIcon style={{ fontSize: 32 }}/>); */
- /* setIsFriends(true); */
- /* }); */
- }}/> :
- <IconLabelButton icon={<PersonAddOutlinedIcon/>} text="Vriendschapsverzoek" onclick={() => {
+ {(() => {
+ var icon = {
+ "friends": <Icon size={1} path={mdiAccountMinusOutline}/>,
+ "outgoing": <Icon size={1} path={mdiAccountRemoveOutline}/>,
+ "incoming": <PersonAddOutlinedIcon/>
+ }[relation] || <PersonAddOutlinedIcon/>
+
+ var text = {
+ "friends": "Vriend verwijderen",
+ "outgoing": "Vriendschapsverzoek annuleren",
+ "incoming": "Vriendschapsverzoek accepteren"
+ }[relation] || "Vriendschapsverzoek sturen"
+
+ return <IconLabelButton icon={icon} text={text} onclick={() => {
+ var nextRelation = {
+ "friends": {
+ "endpoint": "/api/social/remove",
+ "action": `${user.username} succesvol verwijderd als vriend`,
+ "relation": "none",
+ "icon": <Icon size={32 / 24} path={mdiAccountMinusOutline}/>,
+ },
+ "outgoing": {
+ "endpoint": "/api/social/remove",
+ "action": `Vriendschapsverzoek naar ${user.username} geannuleerd`,
+ "relation": "none",
+ "icon": <Icon size={32 / 24} path={mdiAccountMinusOutline}/>,
+ },
+ "incoming": {
+ "endpoint": "/api/social/accept",
+ "action": `Vriendschapsverzoek van ${user.username} geaccepteerd`,
+ "relation": "friends",
+ "icon": <PersonAddOutlinedIcon/>,
+ },
+ }[relation] || {
+ "endpoint": "/api/social/request",
+ "action": `Vriendschapsverzoek gestuurd naar ${user.username}`,
+ "relation": "outgoing",
+ "icon": <PersonAddOutlinedIcon/>,
+ }
+
axios.request({
method: "post",
- url: `/api/social/request`,
+ url: nextRelation.endpoint,
headers: {"content-type": "application/json"},
data: { "id": user?.id }
})
.then(() => {
- toast("Vriendschapsverzoek gestuurd",
+ toast(nextRelation.action,
"confirmation",
- <PersonAddOutlinedIcon style={{ fontSize: 32 }}/>);
- setRelation("outgoing");
+ nextRelation.icon);
+ setRelation(nextRelation.relation);
});
}}/>
- }
+ })()}
</div>
}</div>}
</div>