Github icon fix

images-fix
Kamran Ahmed 1 year ago
parent 6e9fe97e5c
commit ee6e3e4029
  1. 23
      src/components/AuthenticationFlow/GitHubButton.tsx
  2. 20
      src/components/ReactIcons/GitHubIcon.tsx

@ -1,9 +1,9 @@
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import GitHubIcon from '../../icons/github.svg'; import { GitHubIcon } from '../ReactIcons/GitHubIcon.tsx';
import SpinnerIcon from '../../icons/spinner.svg';
import Cookies from 'js-cookie'; import Cookies from 'js-cookie';
import { TOKEN_COOKIE_NAME } from '../../lib/jwt'; import { TOKEN_COOKIE_NAME } from '../../lib/jwt';
import { httpGet } from '../../lib/http'; import { httpGet } from '../../lib/http';
import { Spinner } from '../ReactIcons/Spinner.tsx';
type GitHubButtonProps = {}; type GitHubButtonProps = {};
@ -13,7 +13,6 @@ const GITHUB_LAST_PAGE = 'githubLastPage';
export function GitHubButton(props: GitHubButtonProps) { export function GitHubButton(props: GitHubButtonProps) {
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState(''); const [error, setError] = useState('');
const icon = isLoading ? SpinnerIcon : GitHubIcon;
useEffect(() => { useEffect(() => {
const urlParams = new URLSearchParams(window.location.search); const urlParams = new URLSearchParams(window.location.search);
@ -29,7 +28,7 @@ export function GitHubButton(props: GitHubButtonProps) {
httpGet<{ token: string }>( httpGet<{ token: string }>(
`${import.meta.env.PUBLIC_API_URL}/v1-github-callback${ `${import.meta.env.PUBLIC_API_URL}/v1-github-callback${
window.location.search window.location.search
}` }`,
) )
.then(({ response, error }) => { .then(({ response, error }) => {
if (!response?.token) { if (!response?.token) {
@ -81,12 +80,12 @@ export function GitHubButton(props: GitHubButtonProps) {
setIsLoading(true); setIsLoading(true);
const { response, error } = await httpGet<{ loginUrl: string }>( const { response, error } = await httpGet<{ loginUrl: string }>(
`${import.meta.env.PUBLIC_API_URL}/v1-github-login` `${import.meta.env.PUBLIC_API_URL}/v1-github-login`,
); );
if (error || !response?.loginUrl) { if (error || !response?.loginUrl) {
setError( setError(
error?.message || 'Something went wrong. Please try again later.' error?.message || 'Something went wrong. Please try again later.',
); );
setIsLoading(false); setIsLoading(false);
@ -97,7 +96,7 @@ export function GitHubButton(props: GitHubButtonProps) {
// the user was on before they clicked the social login button // the user was on before they clicked the social login button
if (!['/login', '/signup'].includes(window.location.pathname)) { if (!['/login', '/signup'].includes(window.location.pathname)) {
const pagePath = ['/respond-invite', '/befriend'].includes( const pagePath = ['/respond-invite', '/befriend'].includes(
window.location.pathname window.location.pathname,
) )
? window.location.pathname + window.location.search ? window.location.pathname + window.location.search
: window.location.pathname; : window.location.pathname;
@ -116,11 +115,11 @@ export function GitHubButton(props: GitHubButtonProps) {
disabled={isLoading} disabled={isLoading}
onClick={handleClick} onClick={handleClick}
> >
<img {isLoading ? (
src={icon.src} <Spinner className={'h-[18px] w-[18px]'} isDualRing={false} />
alt="GitHub" ) : (
className={`h-[18px] w-[18px] ${isLoading ? 'animate-spin' : ''}`} <GitHubIcon className={'h-[18px] w-[18px]'} />
/> )}
Continue with GitHub Continue with GitHub
</button> </button>
{error && ( {error && (

@ -0,0 +1,20 @@
type GitHubIconProps = {
className?: string;
};
export function GitHubIcon(props: GitHubIconProps) {
const { className } = props;
return (
<svg
className={className || ''}
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 98 96"
>
<path
fillRule="evenodd"
d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362l-.08-9.127c-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126l-.08 13.526c0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z"
fill="#24292f"
/>
</svg>
);
}
Loading…
Cancel
Save