diff options
author | lonkaars <l.leblansch@gmail.com> | 2021-04-21 15:13:10 +0200 |
---|---|---|
committer | lonkaars <l.leblansch@gmail.com> | 2021-04-21 15:13:10 +0200 |
commit | 4254f328f9e85fcb838815bbee1ccedbcb41daf4 (patch) | |
tree | a80fd48b956f7ad0ecf1e5ccb7b5cbc044ace6ea | |
parent | dadc722875b2095bd3d6c4ab628a644197b85f7b (diff) |
dark mode notifications + /api/social/list endpoints working
-rw-r--r-- | api/social/list.py | 67 | ||||
-rw-r--r-- | api/social/request_list.py | 27 | ||||
-rw-r--r-- | components/notificationsArea.tsx | 4 | ||||
-rw-r--r-- | styles/notifications.css | 3 |
4 files changed, 72 insertions, 29 deletions
diff --git a/api/social/list.py b/api/social/list.py new file mode 100644 index 0000000..ce0f4d9 --- /dev/null +++ b/api/social/list.py @@ -0,0 +1,67 @@ +from flask import Blueprint, request +from db import cursor, connection +from hierarchy import auth_required +from user.info import format_user +import time + + +def format_user_list(user_ids, viewer=None): + formatted_request_list = [] + + for user_1_id in user_ids: + formatted_request_list.append(format_user(user_1_id, viewer)) + + return formatted_request_list + + +requests = Blueprint('requests', __name__) + + +@requests.route("/requests") +@auth_required("user") +def route(user_2_id): + # get a list of friend requests + request_list = cursor.execute( + "select user_1_id from social where user_2_id = ? and type = \"outgoing\"", + [user_2_id] + ).fetchall() + + return {"requests": format_user_list([q[0] for q in request_list])}, 200 + + +friends = Blueprint('friends', __name__) + + +@friends.route("/friends") +@auth_required("user") +def route(user_id): + # get a list of friend requests + request_list = cursor.execute( + "select user_1_id, user_2_id from social where (user_1_id = ? or user_2_id = ?) and type = \"friendship\"", + [user_id, user_id] + ).fetchall() + + friend_id_list = [q[0] if q[1] == user_id else q[1] for q in request_list] + + return {"friends": format_user_list(friend_id_list)}, 200 + + +blocked = Blueprint('blocked', __name__) + + +@blocked.route("/blocked") +@auth_required("user") +def route(user_id): + # get a list of friend requests + request_list = cursor.execute( + "select user_2_id from social where user_1_id = ? and type = \"block\"", + [user_id] + ).fetchall() + + return {"blocked": format_user_list([q[0] for q in request_list])}, 200 + + +dynamic_routes = [ + ["/social/list", requests], ["/social/list", friends], + ["/social/list", blocked] +] diff --git a/api/social/request_list.py b/api/social/request_list.py deleted file mode 100644 index f991ce2..0000000 --- a/api/social/request_list.py +++ /dev/null @@ -1,27 +0,0 @@ -from flask import Blueprint, request -from db import cursor, connection -from hierarchy import auth_required -from user.info import format_user -import time - -requests = Blueprint('requests', __name__) - - -@requests.route("/requests") -@auth_required("user") -def route(user_2_id): - # get a list of friend requests - request_list = cursor.execute( - "select user_1_id from social where user_2_id = ? and type = \"outgoing\"", - [user_2_id] - ).fetchall() - - # get user_id for each result to prevent repeat user/info requests - formatted_request_list = [] - for user_1_id in [q[0] for q in request_list]: - formatted_request_list.append(format_user(user_1_id)) - - return {"requests": formatted_request_list}, 200 - - -dynamic_route = ["/social/list", requests] diff --git a/components/notificationsArea.tsx b/components/notificationsArea.tsx index 8ee554a..d000669 100644 --- a/components/notificationsArea.tsx +++ b/components/notificationsArea.tsx @@ -35,7 +35,7 @@ export function NotificationsArea(props: { setPreviousMessages(messages); }); - return props.visible && <Bubble className='notificationsArea bg-700 pad-l'> + return props.visible && <Bubble className='notificationsArea bg-800 pad-l'> <h2 className='title'>Meldingen</h2> <div className='inner round-t'> {props.gameInvites?.map(game => <GameInvite hide={props.rerender} game={game} />)} @@ -55,7 +55,7 @@ function Acceptable(props: { onAccept?: () => void; onDeny?: () => void; }) { - return <Vierkant className='acceptable bg-800 round-t pad-m fullwidth'> + return <Vierkant className='acceptable bg-700 round-t pad-m fullwidth'> <div className='posrel'> {props.children} <div className='sidebyside buttons'> diff --git a/styles/notifications.css b/styles/notifications.css index db1598d..02170ae 100644 --- a/styles/notifications.css +++ b/styles/notifications.css @@ -8,6 +8,9 @@ a.notificationsArea { height: 450px; } +html.dark a.notificationsArea { background-color: var(--gray-700); } +html.dark .notificationsArea .acceptable { background-color: var(--gray-800); } + a.notificationsArea .tuitje { left: var(--spacing-medium); bottom: 86px; |