diff --git a/package.json b/package.json index ca2208a..576b1ce 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "deploy": "yarn build && gh-pages -t true -d build" }, "dependencies": { - "@oliverflecke/components-react": "^0.3.3", + "@oliverflecke/components-react": "^0.5.1", "@visx/curve": "^2.1.0", "@visx/group": "^2.1.0", "@visx/legend": "^2.2.2", @@ -76,7 +76,7 @@ "gh-pages": "^3.2.3", "husky": "^7.0.4", "jest": "^28.0.3", - "next": "^12.1.5", + "next": "^12.1.6", "postcss": "^8.4.5", "postcss-cli": "^9.1.0", "postcss-import": "^14.0.1", diff --git a/src/features/Header.tsx b/src/features/Header.tsx index 3ee1241..7eaadef 100644 --- a/src/features/Header.tsx +++ b/src/features/Header.tsx @@ -7,14 +7,14 @@ import LoginState from './login/LoginState'; import Navigation from './Navigation'; import { getMyUser } from './user/userApi'; +const returnUrl = + process.env.NODE_ENV === 'development' + ? 'https://localhost:3000' + : 'https://finance.oliverflecke.me'; + const Header: React.FC = () => { const [user, setUser] = useState(null); - const returnUrl = - process.env.NODE_ENV === 'development' - ? 'http://localhost:3000' - : 'https://finance.oliverflecke.me'; - useEffect(() => { getMyUser().then(user => { if (user) setUser(user); @@ -26,7 +26,11 @@ const Header: React.FC = () => {
- + diff --git a/src/features/login/LoginButton.tsx b/src/features/login/LoginButton.tsx new file mode 100644 index 0000000..89dcc79 --- /dev/null +++ b/src/features/login/LoginButton.tsx @@ -0,0 +1,13 @@ +import React from 'react'; + +interface LoginButtonProps { + authorizeUrl: string; +} + +const LoginButton: React.FC = ({ authorizeUrl }) => ( + + Login + +); + +export default LoginButton; diff --git a/src/features/login/LoginMenuProps.tsx b/src/features/login/LoginMenuProps.tsx new file mode 100644 index 0000000..1bcfd02 --- /dev/null +++ b/src/features/login/LoginMenuProps.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import { IoLogOutOutline } from 'react-icons/io5'; + +interface LoginMenuProps { + isOpen: boolean; + logoutUrl: string; +} + +const LoginMenu: React.FC = ({ isOpen, logoutUrl }) => ( + +); + +export default LoginMenu; diff --git a/src/features/login/LoginState.tsx b/src/features/login/LoginState.tsx index 5510971..d792a0b 100644 --- a/src/features/login/LoginState.tsx +++ b/src/features/login/LoginState.tsx @@ -1,75 +1,50 @@ -import React, { useState } from 'react'; -import { IoLogOutOutline } from 'react-icons/io5'; +import { useOnOutsideMouseDown } from '@oliverflecke/components-react'; +import React, { useCallback, useRef, useState } from 'react'; import { User } from 'utils/githubAuth'; +import LoginButton from './LoginButton'; +import LoginMenu from './LoginMenuProps'; +import UserAvatar from './UserAvatarProps'; interface LoginStateProps { user: User | null; authorizeUrl: string; - logout?: () => void; + logoutUrl: string; } -const LoginState: React.FC = ({ user, authorizeUrl, logout }: LoginStateProps) => { +const LoginState: React.FC = ({ user, authorizeUrl, logoutUrl }) => + user === null ? ( + + ) : ( + + ); + +export default LoginState; + +interface LoginDropDownMenuProps { + user: User; + logoutUrl: string; +} + +const LoginDropDownMenu: React.FC = ({ user, logoutUrl }) => { const [isOpen, setIsOpen] = useState(false); - if (user === null) { - return ; - } + const ref = useRef(null); + useOnOutsideMouseDown( + ref, + useCallback(() => setIsOpen(false), []) + ); + + console.debug(logoutUrl); return ( -
+
{user.login} -
setIsOpen(false)}> -
- +
); }; - -export default LoginState; - -interface LoginButtonProps { - authorizeUrl: string; -} - -const LoginButton = ({ authorizeUrl }: LoginButtonProps) => ( - - Login - -); - -interface UserAvatarProps { - user: User; -} - -const UserAvatar = ({ user }: UserAvatarProps) => ( - Avatar of the logged in user -); - -interface MenuProps { - isOpen: boolean; - logout?: () => void; -} - -const Menu = ({ isOpen, logout }: MenuProps) => ( -
- -
-); diff --git a/src/features/login/UserAvatarProps.tsx b/src/features/login/UserAvatarProps.tsx new file mode 100644 index 0000000..e7e517a --- /dev/null +++ b/src/features/login/UserAvatarProps.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { User } from 'utils/githubAuth'; + +interface UserAvatarProps { + user: User; +} + +const UserAvatar: React.FC = ({ user }) => ( + Avatar of the logged in user +); + +export default UserAvatar; diff --git a/src/features/user/userApi.ts b/src/features/user/userApi.ts index 1f59a7a..c114c31 100644 --- a/src/features/user/userApi.ts +++ b/src/features/user/userApi.ts @@ -5,6 +5,6 @@ export function getMyUser(): Promise { return fetch(`${baseUri}/${apiVersion}/user/me`, { credentials: 'include', }) - .then((res) => res.json()) - .catch((err) => console.log(err)); + .then(res => res.json()) + .catch(err => console.log(err)); } diff --git a/src/utils/githubAuth.ts b/src/utils/githubAuth.ts index a8ef001..b9757cd 100644 --- a/src/utils/githubAuth.ts +++ b/src/utils/githubAuth.ts @@ -1,5 +1,6 @@ import dotenv from 'dotenv'; import { useCallback, useEffect, useMemo, useState } from 'react'; +import { baseUri } from '../features/apiBase'; dotenv.config(); const authorizeUrl = 'https://github.com/login/oauth/authorize'; @@ -49,7 +50,7 @@ export function useGithubUser(): UseGithubUserHook { } export function getUser(state: string): Promise { - return new Promise((resolve) => { + return new Promise(resolve => { const user = getUserFromLocalStorage(); if (user) { resolve(user); @@ -77,7 +78,7 @@ export function getUser(state: string): Promise { Accept: 'application/json', }, }) - .then(async (res) => { + .then(async res => { if (res.status === 200) { const body: AuthorizeResponse = await res.json(); const user = await getUserFromGithub(body.access_token); @@ -91,7 +92,7 @@ export function getUser(state: string): Promise { // Remove query parameters from navigation bar window.history.replaceState({}, document.title, window.location.pathname); }) - .catch((err) => console.debug(err)); + .catch(err => console.debug(err)); }); } @@ -100,7 +101,7 @@ function getUserFromGithub(token: string): Promise { headers: { Authorization: `token ${token}`, }, - }).then(async (res) => (await res.json()) as User); + }).then(async res => (await res.json()) as User); } function getUserFromLocalStorage(): User | null { diff --git a/yarn.lock b/yarn.lock index 0d32da7..10de18f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1434,70 +1434,70 @@ resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.3.1.tgz#b50a781709c81e10701004214340f25475a171a0" integrity sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw== -"@next/env@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.5.tgz#a21ba6708022d630402ca2b340316e69a0296dfc" - integrity sha512-+34yUJslfJi7Lyx6ELuN8nWcOzi27izfYnZIC1Dqv7kmmfiBVxgzR3BXhlvEMTKC2IRJhXVs2FkMY+buQe3k7Q== - -"@next/swc-android-arm-eabi@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.5.tgz#36729ab3dfd7743e82cfe536b43254dcb146620c" - integrity sha512-SKnGTdYcoN04Y2DvE0/Y7/MjkA+ltsmbuH/y/hR7Ob7tsj+8ZdOYuk+YvW1B8dY20nDPHP58XgDTSm2nA8BzzA== - -"@next/swc-android-arm64@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.5.tgz#52578f552305c92d0b9b81d603c9643fb71e0835" - integrity sha512-YXiqgQ/9Rxg1dXp6brXbeQM1JDx9SwUY/36JiE+36FXqYEmDYbxld9qkX6GEzkc5rbwJ+RCitargnzEtwGW0mw== - -"@next/swc-darwin-arm64@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.5.tgz#3d5b53211484c72074f4975ba0ec2b1107db300e" - integrity sha512-y8mhldb/WFZ6lFeowkGfi0cO/lBdiBqDk4T4LZLvCpoQp4Or/NzUN6P5NzBQZ5/b4oUHM/wQICEM+1wKA4qIVw== - -"@next/swc-darwin-x64@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.5.tgz#adcabb732d226453777c0d37d58eaff9328b66fd" - integrity sha512-wqJ3X7WQdTwSGi0kIDEmzw34QHISRIQ5uvC+VXmsIlCPFcMA+zM5723uh8NfuKGquDMiEMS31a83QgkuHMYbwQ== - -"@next/swc-linux-arm-gnueabihf@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.5.tgz#82a7cde67482b756bc65fbebf1dfa8a782074e93" - integrity sha512-WnhdM5duONMvt2CncAl+9pim0wBxDS2lHoo7ub/o/i1bRbs11UTzosKzEXVaTDCUkCX2c32lIDi1WcN2ZPkcdw== - -"@next/swc-linux-arm64-gnu@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.5.tgz#f82ca014504950aab751e81f467492e9be0bad5d" - integrity sha512-Jq2H68yQ4bLUhR/XQnbw3LDW0GMQn355qx6rU36BthDLeGue7YV7MqNPa8GKvrpPocEMW77nWx/1yI6w6J07gw== - -"@next/swc-linux-arm64-musl@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.5.tgz#f811ec9f4b12a978426c284c95ab2f515ddf7f9e" - integrity sha512-KgPjwdbhDqXI7ghNN8V/WAiLquc9Ebe8KBrNNEL0NQr+yd9CyKJ6KqjayVkmX+hbHzbyvbui/5wh/p3CZQ9xcQ== - -"@next/swc-linux-x64-gnu@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.5.tgz#d44857257e6d20dc841998951d584ab1f25772c3" - integrity sha512-O2ErUTvCJ6DkNTSr9pbu1n3tcqykqE/ebty1rwClzIYdOgpB3T2MfEPP+K7GhUR87wmN/hlihO9ch7qpVFDGKw== - -"@next/swc-linux-x64-musl@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.5.tgz#3cc523abadc9a2a6de680593aff06e71cc29ecef" - integrity sha512-1eIlZmlO/VRjxxzUBcVosf54AFU3ltAzHi+BJA+9U/lPxCYIsT+R4uO3QksRzRjKWhVQMRjEnlXyyq5SKJm7BA== - -"@next/swc-win32-arm64-msvc@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.5.tgz#c62232d869f1f9b22e8f24e4e7f05307c20f30ca" - integrity sha512-oromsfokbEuVb0CBLLE7R9qX3KGXucZpsojLpzUh1QJjuy1QkrPJncwr8xmWQnwgtQ6ecMWXgXPB+qtvizT9Tw== - -"@next/swc-win32-ia32-msvc@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.5.tgz#2bd9b28a9ba730d12a493e7d9d18e150fe89d496" - integrity sha512-a/51L5KzBpeZSW9LbekMo3I3Cwul+V+QKwbEIMA+Qwb2qrlcn1L9h3lt8cHqNTFt2y72ce6aTwDTw1lyi5oIRA== - -"@next/swc-win32-x64-msvc@12.1.5": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.5.tgz#02f377e4d41eaaacf265e34bab9bacd8efc4a351" - integrity sha512-/SoXW1Ntpmpw3AXAzfDRaQidnd8kbZ2oSni8u5z0yw6t4RwJvmdZy1eOaAADRThWKV+2oU90++LSnXJIwBRWYQ== +"@next/env@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.6.tgz#5f44823a78335355f00f1687cfc4f1dafa3eca08" + integrity sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA== + +"@next/swc-android-arm-eabi@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.6.tgz#79a35349b98f2f8c038ab6261aa9cd0d121c03f9" + integrity sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ== + +"@next/swc-android-arm64@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.6.tgz#ec08ea61794f8752c8ebcacbed0aafc5b9407456" + integrity sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew== + +"@next/swc-darwin-arm64@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.6.tgz#d1053805615fd0706e9b1667893a72271cd87119" + integrity sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw== + +"@next/swc-darwin-x64@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.6.tgz#2d1b926a22f4c5230d5b311f9c56cfdcc406afec" + integrity sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg== + +"@next/swc-linux-arm-gnueabihf@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.6.tgz#c021918d2a94a17f823106a5e069335b8a19724f" + integrity sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw== + +"@next/swc-linux-arm64-gnu@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.6.tgz#ac55c07bfabde378dfa0ce2b8fc1c3b2897e81ae" + integrity sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ== + +"@next/swc-linux-arm64-musl@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.6.tgz#e429f826279894be9096be6bec13e75e3d6bd671" + integrity sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ== + +"@next/swc-linux-x64-gnu@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.6.tgz#1f276c0784a5ca599bfa34b2fcc0b38f3a738e08" + integrity sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ== + +"@next/swc-linux-x64-musl@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.6.tgz#1d9933dd6ba303dcfd8a2acd6ac7c27ed41e2eea" + integrity sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag== + +"@next/swc-win32-arm64-msvc@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.6.tgz#2ef9837f12ca652b1783d72ecb86208906042f02" + integrity sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g== + +"@next/swc-win32-ia32-msvc@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.6.tgz#74003d0aa1c59dfa56cb15481a5c607cbc0027b9" + integrity sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA== + +"@next/swc-win32-x64-msvc@12.1.6": + version "12.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz#a350caf42975e7197b24b495b8d764eec7e6a36e" + integrity sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1520,10 +1520,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@oliverflecke/components-react@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@oliverflecke/components-react/-/components-react-0.3.3.tgz#9e2db8df7d8c983791ce06cbd10d3255537b244a" - integrity sha512-yWjowUikg3GQuLpCQsjrkL9dWOrCv3Y5jiobHIFTjinsiMNCrx7pdDOMXyBeTVOy1BJxkTHlxyLKO7zanUuYvA== +"@oliverflecke/components-react@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@oliverflecke/components-react/-/components-react-0.5.1.tgz#5d03f0c67af64e649686977ad82000091820d22e" + integrity sha512-jE/Gl7f1/pc6l2sxJ/zc58nAlhdIK4GQ/z4PbBWktNOSg3IAHqVzQ8JiWkUerqialCfO+Vo+pqWC4Cb6VOw+AQ== "@react-dnd/asap@^5.0.1": version "5.0.2" @@ -2664,7 +2664,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001283, caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001334: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001334: version "1.0.30001335" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz#899254a0b70579e5a957c32dced79f0727c61f2a" integrity sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w== @@ -4993,28 +4993,28 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -next@^12.1.5: - version "12.1.5" - resolved "https://registry.yarnpkg.com/next/-/next-12.1.5.tgz#7a07687579ddce61ee519493e1c178d83abac063" - integrity sha512-YGHDpyfgCfnT5GZObsKepmRnne7Kzp7nGrac07dikhutWQug7hHg85/+sPJ4ZW5Q2pDkb+n0FnmLkmd44htIJQ== +next@^12.1.6: + version "12.1.6" + resolved "https://registry.yarnpkg.com/next/-/next-12.1.6.tgz#eb205e64af1998651f96f9df44556d47d8bbc533" + integrity sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A== dependencies: - "@next/env" "12.1.5" - caniuse-lite "^1.0.30001283" + "@next/env" "12.1.6" + caniuse-lite "^1.0.30001332" postcss "8.4.5" - styled-jsx "5.0.1" + styled-jsx "5.0.2" optionalDependencies: - "@next/swc-android-arm-eabi" "12.1.5" - "@next/swc-android-arm64" "12.1.5" - "@next/swc-darwin-arm64" "12.1.5" - "@next/swc-darwin-x64" "12.1.5" - "@next/swc-linux-arm-gnueabihf" "12.1.5" - "@next/swc-linux-arm64-gnu" "12.1.5" - "@next/swc-linux-arm64-musl" "12.1.5" - "@next/swc-linux-x64-gnu" "12.1.5" - "@next/swc-linux-x64-musl" "12.1.5" - "@next/swc-win32-arm64-msvc" "12.1.5" - "@next/swc-win32-ia32-msvc" "12.1.5" - "@next/swc-win32-x64-msvc" "12.1.5" + "@next/swc-android-arm-eabi" "12.1.6" + "@next/swc-android-arm64" "12.1.6" + "@next/swc-darwin-arm64" "12.1.6" + "@next/swc-darwin-x64" "12.1.6" + "@next/swc-linux-arm-gnueabihf" "12.1.6" + "@next/swc-linux-arm64-gnu" "12.1.6" + "@next/swc-linux-arm64-musl" "12.1.6" + "@next/swc-linux-x64-gnu" "12.1.6" + "@next/swc-linux-x64-musl" "12.1.6" + "@next/swc-win32-arm64-msvc" "12.1.6" + "@next/swc-win32-ia32-msvc" "12.1.6" + "@next/swc-win32-x64-msvc" "12.1.6" node-int64@^0.4.0: version "0.4.0" @@ -6236,10 +6236,10 @@ strip-outer@^1.0.1: dependencies: escape-string-regexp "^1.0.2" -styled-jsx@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.1.tgz#78fecbbad2bf95ce6cd981a08918ce4696f5fc80" - integrity sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw== +styled-jsx@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.2.tgz#ff230fd593b737e9e68b630a694d460425478729" + integrity sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ== stylehacks@^5.1.0: version "5.1.0"