From bca5833409fc9c323bb59ede3e8e2754b381c09e Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Thu, 5 Jan 2023 02:12:13 -0500 Subject: [PATCH 01/28] feat: check whether repo is starred for nav UI (#431) --- src/components/PrimaryNav.tsx | 40 ++++++++----------------- src/components/RepoSubmission.tsx | 8 ++--- src/components/SecondaryNav.tsx | 4 +-- src/components/StarTheRepo.tsx | 50 +++++++++++++++++++++++++++++++ src/hooks/useSupabaseAuth.ts | 33 ++++++++++++++------ src/hooks/useVotedRepos.ts | 10 +++---- src/lib/githubAPI.ts | 22 +++++++++----- 7 files changed, 112 insertions(+), 55 deletions(-) create mode 100644 src/components/StarTheRepo.tsx diff --git a/src/components/PrimaryNav.tsx b/src/components/PrimaryNav.tsx index efaafe73..3d596676 100644 --- a/src/components/PrimaryNav.tsx +++ b/src/components/PrimaryNav.tsx @@ -1,6 +1,5 @@ import { Menu, Transition } from "@headlessui/react"; import { GiHamburgerMenu } from "react-icons/gi"; -import { AiOutlineStar } from "react-icons/ai"; import { capturePostHogAnayltics } from "../lib/analytics"; import { getAvatarLink } from "../lib/github"; import useSupabaseAuth from "../hooks/useSupabaseAuth"; @@ -13,26 +12,13 @@ import RepoSubmission from "./RepoSubmission"; import { useState, useEffect } from "react"; import AdminStatsBar from "./AdminStatusBar"; import { useKey } from "rooks"; +import { StarTheRepo } from "./StarTheRepo"; const bugReportLink = "https://github.com/open-sauced/hot/issues/new?assignees=&labels=%F0%9F%91%80+needs+triage%2C%F0%9F%90%9B+bug&template=bug_report.yml&title=Bug%3A+"; -const StarTheRepo = (): JSX.Element => ( -
- - - - Star us on GitHub - -
-); - const PrimaryNav = (): JSX.Element => { - const { signIn, signOut, user } = useSupabaseAuth(); + const { signIn, signOut, userAndTokens } = useSupabaseAuth(); const currentUser = supabase.auth.session(); const [isFormOpen, setIsFormOpen] = useState(false); const [openAdminBar, setOpenAdminBar] = useState(false); @@ -50,11 +36,11 @@ const PrimaryNav = (): JSX.Element => { }; fetchAuthSession().catch(err => console.log(err)); - }, [user]); + }, [userAndTokens]); return (
- { user && openAdminBar && } + { userAndTokens && openAdminBar && }
@@ -69,22 +55,22 @@ const PrimaryNav = (): JSX.Element => {
- {user && ( + {userAndTokens && (
- +
{String(user.user_metadata.user_name)}
@@ -109,19 +95,19 @@ const PrimaryNav = (): JSX.Element => {
{String(user.user_metadata.user_name)}

- {user.user_metadata.full_name} + {userAndTokens.user.user_metadata.full_name}

- {user.user_metadata.user_name} + {userAndTokens.user.user_metadata.user_name}

@@ -197,7 +183,7 @@ const PrimaryNav = (): JSX.Element => {
)} - {!user && ( + {!userAndTokens && (
diff --git a/src/components/RepoSubmission.tsx b/src/components/RepoSubmission.tsx index 5dd66417..fe962ad7 100644 --- a/src/components/RepoSubmission.tsx +++ b/src/components/RepoSubmission.tsx @@ -10,13 +10,13 @@ export declare interface RepoSubmissionProps { } const RepoSubmission = ({ isFormOpen, handleFormOpen }: RepoSubmissionProps): JSX.Element => { - const { user, token } = useSupabaseAuth(); + const { userAndTokens } = useSupabaseAuth(); const [isSubmissionInProcess, setIsSubmissionInProcess] = useState(false); const [submitted, setSubmitted] = useState(false); const [input, setInput] = useState(""); const [submissionRef] = useOutsideClickRef(handleClickOutsideRepoSubmission); - const userName = String(user?.user_metadata.user_name); + const userName = String(userAndTokens?.user.user_metadata.user_name); const saveToDataBase = (repoUrl: string): void => { setIsSubmissionInProcess(true); @@ -38,8 +38,8 @@ const RepoSubmission = ({ isFormOpen, handleFormOpen }: RepoSubmissionProps): JS setSubmitted(true); - if (token) { - const resp = await submitRepo(sanitizedUrl, token); + if (userAndTokens) { + const resp = await submitRepo(sanitizedUrl, userAndTokens.supabaseToken); try { if (resp.status === 200) { diff --git a/src/components/SecondaryNav.tsx b/src/components/SecondaryNav.tsx index 3b0a2d8a..4bff6f3b 100644 --- a/src/components/SecondaryNav.tsx +++ b/src/components/SecondaryNav.tsx @@ -4,7 +4,7 @@ import locationsHash from "../lib/locationsHash"; import { RepoOrderByEnum } from "./RepoListWrap"; const SecondaryNav = (): JSX.Element => { - const { user } = useSupabaseAuth(); + const { userAndTokens } = useSupabaseAuth(); const location = useLocation(); const activeLink = (locationsHash[location.pathname] ?? "recent") as keyof typeof RepoOrderByEnum; @@ -27,7 +27,7 @@ const SecondaryNav = (): JSX.Element => { }, ]; - user && + userAndTokens && links.push({ link: "myVotes", title: "My Votes", diff --git a/src/components/StarTheRepo.tsx b/src/components/StarTheRepo.tsx new file mode 100644 index 00000000..a5553f53 --- /dev/null +++ b/src/components/StarTheRepo.tsx @@ -0,0 +1,50 @@ +import { useEffect, useState } from "react"; +import { AiFillStar, AiOutlineStar } from "react-icons/ai"; +import { UserAndTokens } from "../hooks/useSupabaseAuth"; +import { getUserStarredHotRepo } from "../lib/githubAPI"; + +export interface StarTheRepoProps { + userAndTokens?: UserAndTokens; +} + +enum RepoStarred { + Anonymous, + Pending, + NotStarred, + Starred, +} + +export const StarTheRepo = ({ userAndTokens }: StarTheRepoProps): JSX.Element | null => { + const [starred, setStarred] = useState(RepoStarred.Pending); + const opacity = starred === RepoStarred.Pending ? 0 : 100; + const [Icon, message] = starred === RepoStarred.Starred ? [AiFillStar, "Starred on GitHub"] : [AiOutlineStar, "Star us on GitHub"]; + + useEffect(() => { + if (!userAndTokens?.providerToken) { + setStarred(RepoStarred.Anonymous); + return; + } + + setStarred(RepoStarred.Pending); + + getUserStarredHotRepo(userAndTokens.providerToken) + .then(isStarred => setStarred(isStarred ? RepoStarred.Starred : RepoStarred.NotStarred)) + .catch(() => setStarred(RepoStarred.NotStarred)); + }, [userAndTokens?.providerToken]); + + return ( + + ); +}; diff --git a/src/hooks/useSupabaseAuth.ts b/src/hooks/useSupabaseAuth.ts index acb5a111..b330ac3e 100644 --- a/src/hooks/useSupabaseAuth.ts +++ b/src/hooks/useSupabaseAuth.ts @@ -1,20 +1,36 @@ import { useEffect, useState } from "react"; import { supabase } from "../lib/supabase"; -import { User } from "@supabase/supabase-js"; +import { Session, User } from "@supabase/supabase-js"; import { UserCredentials } from "@supabase/gotrue-js/src/lib/types"; +export interface UserAndTokens { + user: User; + providerToken: string | undefined; + supabaseToken: string; +} + const useSupabaseAuth = () => { - const [user, setUser] = useState(); - const [token, setToken] = useState(); + const [userAndTokens, setUserAndTokens] = useState(); + + const setNewUserAndTokens = (session: Session | null) => { + if (session?.user) { + setUserAndTokens({ + user: session.user, + providerToken: session.provider_token ?? undefined, + supabaseToken: session.access_token, + }); + } else { + setUserAndTokens(undefined); + } + }; useEffect(() => { - const currentUser = supabase.auth.session(); + const session = supabase.auth.session(); - setUser(currentUser?.user ?? undefined); - setToken(currentUser?.access_token ?? undefined); + setNewUserAndTokens(session); const { data: listener } = supabase.auth.onAuthStateChange((_, session) => { - setUser(session?.user ?? undefined); + setNewUserAndTokens(session); }); return () => { @@ -25,8 +41,7 @@ const useSupabaseAuth = () => { return { signIn: async (data: UserCredentials) => supabase.auth.signIn(data, { redirectTo: import.meta.env.BASE_URL }), signOut: async () => supabase.auth.signOut(), - user, - token, + userAndTokens, }; }; diff --git a/src/hooks/useVotedRepos.ts b/src/hooks/useVotedRepos.ts index 62450be5..a7b75889 100644 --- a/src/hooks/useVotedRepos.ts +++ b/src/hooks/useVotedRepos.ts @@ -6,7 +6,7 @@ import handleVoteUpdateByRepo from "../lib/handleVoteUpdateByRepo"; const useVotedRepos = () => { const [votedReposIds, setVotedReposIds] = useState([]); - const { signIn, user } = useSupabaseAuth(); + const { signIn, userAndTokens } = useSupabaseAuth(); const fetchVotedData = useCallback(async (user?: User) => { try { @@ -26,7 +26,7 @@ const useVotedRepos = () => { votedReposIds.includes(parseInt(`${repo_id}`)); const handleVoteUpdate = async (votes: number, repo_id: number) => { - const voteCount = await handleVoteUpdateByRepo(votes, repo_id, user?.user_metadata.sub); + const voteCount = await handleVoteUpdateByRepo(votes, repo_id, userAndTokens?.user.user_metadata.sub); handleVoted(repo_id); @@ -44,14 +44,14 @@ const useVotedRepos = () => { }; useEffect(() => { - fetchVotedData(user) + fetchVotedData(userAndTokens?.user) .catch(console.error); - }, [user]); + }, [userAndTokens?.user]); return { votedReposIds, checkVoted, - voteHandler: async (votes = 0, repo_id: number) => (user ? handleVoteUpdate(votes, repo_id) : signIn({ provider: "github" })), + voteHandler: async (votes = 0, repo_id: number) => (userAndTokens ? handleVoteUpdate(votes, repo_id) : signIn({ provider: "github" })), }; }; diff --git a/src/lib/githubAPI.ts b/src/lib/githubAPI.ts index e51d7080..b53db37e 100644 --- a/src/lib/githubAPI.ts +++ b/src/lib/githubAPI.ts @@ -1,7 +1,11 @@ -async function getOpensaucedGoalsReposCount (): Promise { +export interface ReposCountFetchObject { + total_count: number; +} + +export async function getOpensaucedGoalsReposCount (): Promise { const res = await fetch(`https://api.github.com/search/repositories?q=open-sauced-goals&order=asc&per_page=100`); - const data = await res.json() as ReposCountFetchObject; + const data = (await res.json()) as ReposCountFetchObject; if (res.ok) { return data.total_count; @@ -10,11 +14,13 @@ async function getOpensaucedGoalsReposCount (): Promise { return 0; } +export async function getUserStarredHotRepo (githubToken: string): Promise { + const result = await fetch("https://api.github.com/user/starred/open-sauced/hot", { + headers: { + Accept: "application/vnd.github+json", + Authorization: `Bearer ${githubToken}`, + }, + }); -const githubAPI = { getOpensaucedGoalsReposCount }; - -interface ReposCountFetchObject { - total_count: number; + return result.status === 204; } - -export default githubAPI; From 63268366f1342404de7d59299ad82020a793824a Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Thu, 5 Jan 2023 07:15:00 +0000 Subject: [PATCH 02/28] chore(minor): release 2.31.0-beta.1 on beta channel [skip ci] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [2.31.0-beta.1](https://github.com/open-sauced/hot-sauce/compare/v2.30.0...v2.31.0-beta.1) (2023-01-05) ### πŸ• Features * check whether repo is starred for nav UI ([#431](https://github.com/open-sauced/hot-sauce/issues/431)) ([bca5833](https://github.com/open-sauced/hot-sauce/commit/bca5833409fc9c323bb59ede3e8e2754b381c09e)) --- CHANGELOG.md | 7 +++++++ npm-shrinkwrap.json | 4 ++-- package.json | 2 +- public/diagram.svg | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cfd45295..e06f5cee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ > All notable changes to this project will be documented in this file +## [2.31.0-beta.1](https://github.com/open-sauced/hot-sauce/compare/v2.30.0...v2.31.0-beta.1) (2023-01-05) + + +### πŸ• Features + +* check whether repo is starred for nav UI ([#431](https://github.com/open-sauced/hot-sauce/issues/431)) ([bca5833](https://github.com/open-sauced/hot-sauce/commit/bca5833409fc9c323bb59ede3e8e2754b381c09e)) + ## [2.30.0](https://github.com/open-sauced/hot-sauce/compare/v2.29.0...v2.30.0) (2022-12-17) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index c4dc7866..285dc3e6 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "@open-sauced/hot", - "version": "2.30.0", + "version": "2.31.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@open-sauced/hot", - "version": "2.30.0", + "version": "2.31.0-beta.1", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 667b01d3..77d4290f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@open-sauced/hot", "description": "πŸ•The site that recommends the hottest sauce.", "keywords": [], - "version": "2.30.0", + "version": "2.31.0-beta.1", "author": "TED Vortex ", "private": true, "license": "MIT", diff --git a/public/diagram.svg b/public/diagram.svg index a5bea086..b3d7f15e 100644 --- a/public/diagram.svg +++ b/public/diagram.svg @@ -1 +1 @@ -liblibhookshookscomponentscomponentsassetsassetsvalidateUrl.test.tsvalidateUrl.test.tsvalidateUrl.test.tssupabase.tssupabase.tssupabase.tsvalidateUrl.tsvalidateUrl.tsvalidateUrl.tshandleVo...handleVo...handleVo...location...location...location...useVotedRep...useVotedRep...useVotedRep...useVotedRe...useVotedRe...useVotedRe...useSupaba...useSupaba...useSupaba...useContr...useContr...useContr...PrimaryNav.tsxPrimaryNav.tsxPrimaryNav.tsxFooter.tsxFooter.tsxFooter.tsxHotRepoCard.tsxHotRepoCard.tsxHotRepoCard.tsxAdminStatusBar.tsxAdminStatusBar.tsxAdminStatusBar.tsxRepoList.tsxRepoList.tsxRepoList.tsxRepoSubmission.tsxRepoSubmission.tsxRepoSubmission.tsxRecentRepoListWr...RecentRepoListWr...RecentRepoListWr...Hero.tsxHero.tsxHero.tsxModal.tsxModal.tsxModal.tsxAvatar.tsxAvatar.tsxAvatar.tsxSearchedRepoC...SearchedRepoC...SearchedRepoC...VotedRepoList...VotedRepoList...VotedRepoList...ListReposito...ListReposito...ListReposito...SecondaryNa...SecondaryNa...SecondaryNa...RepoListWra...RepoListWra...RepoListWra...LayoutTogg...LayoutTogg...LayoutTogg...TextHover...TextHover...TextHover...HotReposi...HotReposi...HotReposi...StackedA...StackedA...StackedA...styles/index.cssstyles/index.cssstyles/index.csse2e-tests/logged...e2e-tests/logged...e2e-tests/logged...App.tsxApp.tsxApp.tsxvite-types...vite-types...vite-types....css.svg.ts.tsxeach dot sized by file size \ No newline at end of file +liblibhookshookscomponentscomponentsassetsassetsvalidateUrl.test.tsvalidateUrl.test.tsvalidateUrl.test.tssupabase.tssupabase.tssupabase.tsvalidateUrl.tsvalidateUrl.tsvalidateUrl.tsgithubAP...githubAP...githubAP...handleVo...handleVo...handleVo...useVotedRep...useVotedRep...useVotedRep...useVotedRe...useVotedRe...useVotedRe...useSupabas...useSupabas...useSupabas...useContr...useContr...useContr...PrimaryNav.tsxPrimaryNav.tsxPrimaryNav.tsxFooter.tsxFooter.tsxFooter.tsxHotRepoCard.tsxHotRepoCard.tsxHotRepoCard.tsxAdminStatusBar.tsxAdminStatusBar.tsxAdminStatusBar.tsxRepoList.tsxRepoList.tsxRepoList.tsxRepoSubmission.tsxRepoSubmission.tsxRepoSubmission.tsxRecentRepoListWr...RecentRepoListWr...RecentRepoListWr...Hero.tsxHero.tsxHero.tsxModal.tsxModal.tsxModal.tsxAvatar.tsxAvatar.tsxAvatar.tsxSearchedRepoC...SearchedRepoC...SearchedRepoC...VotedRepoLis...VotedRepoLis...VotedRepoLis...ListReposito...ListReposito...ListReposito...SecondaryNa...SecondaryNa...SecondaryNa...StarTheRepo...StarTheRepo...StarTheRepo...RepoListWr...RepoListWr...RepoListWr...LayoutTogg...LayoutTogg...LayoutTogg...TextHover...TextHover...TextHover...HotReposi...HotReposi...HotReposi...StackedA...StackedA...StackedA...styles/index.cssstyles/index.cssstyles/index.csse2e-tests/logged...e2e-tests/logged...e2e-tests/logged...App.tsxApp.tsxApp.tsxvite-types...vite-types...vite-types....css.svg.ts.tsxeach dot sized by file size \ No newline at end of file From e5fd93597262f2baad0c01934a006e1ebf1fde62 Mon Sep 17 00:00:00 2001 From: OGBONNA SUNDAY <62995161+OgDev-01@users.noreply.github.com> Date: Thu, 5 Jan 2023 16:35:56 +0100 Subject: [PATCH 03/28] refactor: Add test for dayjs `getDateFromNow` method (#390) * feat: create hook for dayjs * test: add test for getDateFromNow method * refactor: update avatar component to use new lib function * refactor: update to dynamic date string * chore: cleanup Co-authored-by: OGBONNA SUNDAY <62995161+SunGoldTech@users.noreply.github.com> --- src/components/Avatar.tsx | 7 ++----- src/lib/getDateFromNow.test.ts | 27 +++++++++++++++++++++++++++ src/lib/getDatefromNow.ts | 12 ++++++++++++ 3 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 src/lib/getDateFromNow.test.ts create mode 100644 src/lib/getDatefromNow.ts diff --git a/src/components/Avatar.tsx b/src/components/Avatar.tsx index b91f82c5..662e466b 100644 --- a/src/components/Avatar.tsx +++ b/src/components/Avatar.tsx @@ -1,10 +1,7 @@ import { getAvatarLink, getProfileLink } from "../lib/github"; import * as HoverCardPrimitive from "@radix-ui/react-hover-card"; import cx from "classnames"; -import dayjs from "dayjs/esm/index.js"; -import relativeTime from "dayjs/esm/plugin/relativeTime"; - -dayjs.extend(relativeTime); +import getDateFromNow from "../lib/getDatefromNow"; export declare interface AvatarProps { contributor: string; @@ -68,7 +65,7 @@ const Avatar = ({ contributor, lastPr }: AvatarProps): JSX.Element => (

- {`Last contribution was ${dayjs(lastPr).fromNow()}.`} + {`Last contribution was ${getDateFromNow(lastPr ?? "")}.`}

diff --git a/src/lib/getDateFromNow.test.ts b/src/lib/getDateFromNow.test.ts new file mode 100644 index 00000000..79822e88 --- /dev/null +++ b/src/lib/getDateFromNow.test.ts @@ -0,0 +1,27 @@ +import getDateFromNow from "./getDatefromNow"; +import { describe, expect, test } from "vitest"; + +describe("Test: getDateFromNow() without suffix", () => { + test("should return 24 years", () => { + const date = (new Date); + + date.setFullYear(date.getFullYear() - 24); + const dateString = date.toISOString().substring(0, 10); + const result = getDateFromNow(dateString, true); + + expect(result).toBe("24 years"); + }); +}); + +describe("Test: getDateFromNow() with suffix", () => { + test("should return 20 years", () => { + const date = (new Date); + + date.setFullYear(date.getFullYear() - 20); + const dateString = date.toISOString().substring(0, 10); + + const result = getDateFromNow(dateString); + + expect(result).toBe("20 years ago"); + }); +}); diff --git a/src/lib/getDatefromNow.ts b/src/lib/getDatefromNow.ts new file mode 100644 index 00000000..4103f2b8 --- /dev/null +++ b/src/lib/getDatefromNow.ts @@ -0,0 +1,12 @@ +import dayjs from "dayjs/esm/index.js"; +import relativeTime from "dayjs/esm/plugin/relativeTime"; + +dayjs.extend(relativeTime); + +const getDateFromNow = (dateString: string, suffix?: boolean) => { + const dateSuffix = typeof suffix !== "undefined" ? suffix : false; + + return dateSuffix ? dayjs(dateString).fromNow(true) : dayjs(dateString).fromNow(); +}; + +export default getDateFromNow; From ae7fc4fa2a372a796537af9f200faf6c520e71c1 Mon Sep 17 00:00:00 2001 From: OGBONNA SUNDAY <62995161+OgDev-01@users.noreply.github.com> Date: Thu, 5 Jan 2023 15:38:26 +0000 Subject: [PATCH 04/28] chore(patch): release 2.31.0-beta.2 on beta channel [skip ci] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## [2.31.0-beta.2](https://github.com/open-sauced/hot-sauce/compare/v2.31.0-beta.1...v2.31.0-beta.2) (2023-01-05) ### πŸ§‘β€πŸ’» Code Refactoring * Add test for dayjs `getDateFromNow` method ([#390](https://github.com/open-sauced/hot-sauce/issues/390)) ([e5fd935](https://github.com/open-sauced/hot-sauce/commit/e5fd93597262f2baad0c01934a006e1ebf1fde62)) --- CHANGELOG.md | 7 +++++++ npm-shrinkwrap.json | 4 ++-- package.json | 2 +- public/diagram.svg | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e06f5cee..34988826 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ > All notable changes to this project will be documented in this file +## [2.31.0-beta.2](https://github.com/open-sauced/hot-sauce/compare/v2.31.0-beta.1...v2.31.0-beta.2) (2023-01-05) + + +### πŸ§‘β€πŸ’» Code Refactoring + +* Add test for dayjs `getDateFromNow` method ([#390](https://github.com/open-sauced/hot-sauce/issues/390)) ([e5fd935](https://github.com/open-sauced/hot-sauce/commit/e5fd93597262f2baad0c01934a006e1ebf1fde62)) + ## [2.31.0-beta.1](https://github.com/open-sauced/hot-sauce/compare/v2.30.0...v2.31.0-beta.1) (2023-01-05) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 285dc3e6..6277da27 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "@open-sauced/hot", - "version": "2.31.0-beta.1", + "version": "2.31.0-beta.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@open-sauced/hot", - "version": "2.31.0-beta.1", + "version": "2.31.0-beta.2", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 77d4290f..71305c93 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@open-sauced/hot", "description": "πŸ•The site that recommends the hottest sauce.", "keywords": [], - "version": "2.31.0-beta.1", + "version": "2.31.0-beta.2", "author": "TED Vortex ", "private": true, "license": "MIT", diff --git a/public/diagram.svg b/public/diagram.svg index b3d7f15e..555f7fb7 100644 --- a/public/diagram.svg +++ b/public/diagram.svg @@ -1 +1 @@ -liblibhookshookscomponentscomponentsassetsassetsvalidateUrl.test.tsvalidateUrl.test.tsvalidateUrl.test.tssupabase.tssupabase.tssupabase.tsvalidateUrl.tsvalidateUrl.tsvalidateUrl.tsgithubAP...githubAP...githubAP...handleVo...handleVo...handleVo...useVotedRep...useVotedRep...useVotedRep...useVotedRe...useVotedRe...useVotedRe...useSupabas...useSupabas...useSupabas...useContr...useContr...useContr...PrimaryNav.tsxPrimaryNav.tsxPrimaryNav.tsxFooter.tsxFooter.tsxFooter.tsxHotRepoCard.tsxHotRepoCard.tsxHotRepoCard.tsxAdminStatusBar.tsxAdminStatusBar.tsxAdminStatusBar.tsxRepoList.tsxRepoList.tsxRepoList.tsxRepoSubmission.tsxRepoSubmission.tsxRepoSubmission.tsxRecentRepoListWr...RecentRepoListWr...RecentRepoListWr...Hero.tsxHero.tsxHero.tsxModal.tsxModal.tsxModal.tsxAvatar.tsxAvatar.tsxAvatar.tsxSearchedRepoC...SearchedRepoC...SearchedRepoC...VotedRepoLis...VotedRepoLis...VotedRepoLis...ListReposito...ListReposito...ListReposito...SecondaryNa...SecondaryNa...SecondaryNa...StarTheRepo...StarTheRepo...StarTheRepo...RepoListWr...RepoListWr...RepoListWr...LayoutTogg...LayoutTogg...LayoutTogg...TextHover...TextHover...TextHover...HotReposi...HotReposi...HotReposi...StackedA...StackedA...StackedA...styles/index.cssstyles/index.cssstyles/index.csse2e-tests/logged...e2e-tests/logged...e2e-tests/logged...App.tsxApp.tsxApp.tsxvite-types...vite-types...vite-types....css.svg.ts.tsxeach dot sized by file size \ No newline at end of file +liblibhookshookscomponentscomponentsassetsassetsvalidateUrl.test.tsvalidateUrl.test.tsvalidateUrl.test.tssupabase.tssupabase.tssupabase.tsvalidateUrl.tsvalidateUrl.tsvalidateUrl.tsgetDateF...getDateF...getDateF...githubAP...githubAP...githubAP...handleVo...handleVo...handleVo...useVotedRep...useVotedRep...useVotedRep...useVotedRe...useVotedRe...useVotedRe...useSupabas...useSupabas...useSupabas...useContr...useContr...useContr...PrimaryNav.tsxPrimaryNav.tsxPrimaryNav.tsxFooter.tsxFooter.tsxFooter.tsxHotRepoCard.tsxHotRepoCard.tsxHotRepoCard.tsxAdminStatusBar.tsxAdminStatusBar.tsxAdminStatusBar.tsxRepoList.tsxRepoList.tsxRepoList.tsxRepoSubmission.tsxRepoSubmission.tsxRepoSubmission.tsxRecentRepoListW...RecentRepoListW...RecentRepoListW...Hero.tsxHero.tsxHero.tsxModal.tsxModal.tsxModal.tsxSearchedRepoC...SearchedRepoC...SearchedRepoC...Avatar.tsxAvatar.tsxAvatar.tsxVotedRepoLis...VotedRepoLis...VotedRepoLis...ListReposito...ListReposito...ListReposito...SecondaryNa...SecondaryNa...SecondaryNa...StarTheRepo...StarTheRepo...StarTheRepo...RepoListWr...RepoListWr...RepoListWr...LayoutTogg...LayoutTogg...LayoutTogg...TextHover...TextHover...TextHover...HotReposi...HotReposi...HotReposi...StackedA...StackedA...StackedA...styles/index.cssstyles/index.cssstyles/index.csse2e-tests/logged...e2e-tests/logged...e2e-tests/logged...App.tsxApp.tsxApp.tsxvite-types...vite-types...vite-types....css.svg.ts.tsxeach dot sized by file size \ No newline at end of file From 149fbf01eacf67eb7053c6a4dd675e265f18ec86 Mon Sep 17 00:00:00 2001 From: Sebastian Gugulski <43274289+Themesses@users.noreply.github.com> Date: Thu, 5 Jan 2023 12:17:58 -0500 Subject: [PATCH 05/28] fix: remove height from footer to prevent socials from being truncated (#436) closes #435 --- src/components/Footer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index bc2cb30f..9a79afe1 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -59,7 +59,7 @@ const footerContext = [ const Footer = (): JSX.Element => (
-