From 0178addbe74bd15983b8f5480bf3f4bb09b8705a Mon Sep 17 00:00:00 2001 From: mozsarmate Date: Sun, 7 Apr 2024 21:28:34 +0200 Subject: [PATCH 1/9] collection card slight design updates --- .../client/src/components/collection/CollectionListItem.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/components/collection/CollectionListItem.tsx b/packages/client/src/components/collection/CollectionListItem.tsx index 100aa34..096d22d 100644 --- a/packages/client/src/components/collection/CollectionListItem.tsx +++ b/packages/client/src/components/collection/CollectionListItem.tsx @@ -17,7 +17,7 @@ export function CollectionListItem({ collection }: Props) { return (
-
+
{collection.name}

{collection.name}

-

Linkek: {collection.links}

+

{collection.links} link

) From feda3cf7918a2993baf885f65bf09e796ea78aa9 Mon Sep 17 00:00:00 2001 From: mozsarmate Date: Sun, 7 Apr 2024 21:50:45 +0200 Subject: [PATCH 2/9] collection page looks alike link page --- packages/client/src/app/links/page.tsx | 19 +++++---- .../collection/CollectionsContainer.tsx | 39 +++++++++---------- .../client/src/components/ui/SearchField.tsx | 4 +- 3 files changed, 32 insertions(+), 30 deletions(-) diff --git a/packages/client/src/app/links/page.tsx b/packages/client/src/app/links/page.tsx index ec21b33..3265288 100644 --- a/packages/client/src/app/links/page.tsx +++ b/packages/client/src/app/links/page.tsx @@ -16,20 +16,23 @@ export default function Links() { return (
- +
+ {profile.data && ( + + )} + +
{links.map(link => ( ))}
- {profile.data && ( - - )}
) } diff --git a/packages/client/src/components/collection/CollectionsContainer.tsx b/packages/client/src/components/collection/CollectionsContainer.tsx index 99e32da..3e40e59 100644 --- a/packages/client/src/components/collection/CollectionsContainer.tsx +++ b/packages/client/src/components/collection/CollectionsContainer.tsx @@ -1,5 +1,4 @@ 'use client' -import { clsx } from 'clsx' import Link from 'next/link' import { useState } from 'react' import { TbPlus } from 'react-icons/tb' @@ -27,25 +26,25 @@ export default function CollectionsContainer({ collections }: Props) { } return ( - <> -
-

Kollekciók

- +
+
+
+ {profile.data && ( + + )} + +
+
+ {filteredCollections.map(collection => ( + + ))} +
- -
- {filteredCollections.map(curCollection => ( - - ))} -
- {profile.data && ( - - )} - +
) } diff --git a/packages/client/src/components/ui/SearchField.tsx b/packages/client/src/components/ui/SearchField.tsx index e749d26..a3541ad 100644 --- a/packages/client/src/components/ui/SearchField.tsx +++ b/packages/client/src/components/ui/SearchField.tsx @@ -5,9 +5,9 @@ type searchProps = { export default function SearchField({ onSubmit, searchPhrase }: searchProps) { return ( -
+
Date: Sun, 7 Apr 2024 21:52:12 +0200 Subject: [PATCH 3/9] SearchField width fit --- packages/client/src/components/ui/SearchField.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/components/ui/SearchField.tsx b/packages/client/src/components/ui/SearchField.tsx index a3541ad..55ef906 100644 --- a/packages/client/src/components/ui/SearchField.tsx +++ b/packages/client/src/components/ui/SearchField.tsx @@ -7,7 +7,7 @@ export default function SearchField({ onSubmit, searchPhrase }: searchProps) { return (
Date: Mon, 8 Apr 2024 14:45:41 +0200 Subject: [PATCH 4/9] keywords sep component, in links as well --- packages/client/src/app/links/page.tsx | 2 +- packages/client/src/app/page.tsx | 1 - .../client/src/components/keywords/Keywords.tsx | 14 ++++++++++++++ .../client/src/components/links/LinkWidget.tsx | 2 ++ packages/client/src/components/navbar/navbar.tsx | 4 ++-- .../components/submission/AdminSubmissionCard.tsx | 10 ++-------- .../src/components/submission/SubmissionCard.tsx | 10 ++-------- 7 files changed, 23 insertions(+), 20 deletions(-) create mode 100644 packages/client/src/components/keywords/Keywords.tsx diff --git a/packages/client/src/app/links/page.tsx b/packages/client/src/app/links/page.tsx index 3265288..14e533e 100644 --- a/packages/client/src/app/links/page.tsx +++ b/packages/client/src/app/links/page.tsx @@ -21,7 +21,7 @@ export default function Links() { )} diff --git a/packages/client/src/app/page.tsx b/packages/client/src/app/page.tsx index 2074daa..c6feaed 100644 --- a/packages/client/src/app/page.tsx +++ b/packages/client/src/app/page.tsx @@ -11,7 +11,6 @@ export default async function Home() { return (
-

StartlapSCH

{favLinks.success && } {/* */} diff --git a/packages/client/src/components/keywords/Keywords.tsx b/packages/client/src/components/keywords/Keywords.tsx new file mode 100644 index 0000000..b1f8749 --- /dev/null +++ b/packages/client/src/components/keywords/Keywords.tsx @@ -0,0 +1,14 @@ +export default function Keywords({ keywords }: { keywords: string[] }) { + return ( + <> + {keywords.map((keyword: string, _index) => ( +
+ {keyword} +
+ ))} + + ) +} diff --git a/packages/client/src/components/links/LinkWidget.tsx b/packages/client/src/components/links/LinkWidget.tsx index b467c73..7f68036 100644 --- a/packages/client/src/components/links/LinkWidget.tsx +++ b/packages/client/src/components/links/LinkWidget.tsx @@ -7,6 +7,7 @@ import React from 'react' import { BsFire } from 'react-icons/bs' import { FaRegStar, FaStar } from 'react-icons/fa' +import Keywords from '@/components/keywords/Keywords' import { useProfile } from '@/hooks/queries/use-profile' import { cn } from '@/lib/utils' import { LinkEntity } from '@/types/link.type' @@ -87,6 +88,7 @@ export default function LinkWidget(props: Props) {

{link.description}

+
) diff --git a/packages/client/src/components/navbar/navbar.tsx b/packages/client/src/components/navbar/navbar.tsx index a52ca3d..72fa874 100644 --- a/packages/client/src/components/navbar/navbar.tsx +++ b/packages/client/src/components/navbar/navbar.tsx @@ -31,10 +31,10 @@ export default function Navbar() { diff --git a/packages/client/src/components/submission/AdminSubmissionCard.tsx b/packages/client/src/components/submission/AdminSubmissionCard.tsx index 93e0bb3..8385c4a 100644 --- a/packages/client/src/components/submission/AdminSubmissionCard.tsx +++ b/packages/client/src/components/submission/AdminSubmissionCard.tsx @@ -1,6 +1,7 @@ 'use client' import Link from 'next/link' +import Keywords from '@/components/keywords/Keywords' import { Button } from '@/components/ui/button' import Popup from '@/components/ui/Popup' import { useSubmissionChangeStatus } from '@/hooks/mutations/use-submission-change-status' @@ -59,14 +60,7 @@ export default function AdminSubmissionCard({ submission }: { submission: Submis
leírás

{submission.description}

kulcsszavak
- {submission.keywords.map((keyword: string, _index) => ( -
- {keyword} -
- ))} + {submission.oldLinkId && ( <>
elavult link Id:
diff --git a/packages/client/src/components/submission/SubmissionCard.tsx b/packages/client/src/components/submission/SubmissionCard.tsx index a24a1f0..a41d37a 100644 --- a/packages/client/src/components/submission/SubmissionCard.tsx +++ b/packages/client/src/components/submission/SubmissionCard.tsx @@ -1,6 +1,7 @@ 'use client' import Link from 'next/link' +import Keywords from '@/components/keywords/Keywords' import { cn } from '@/lib/utils' import { Submission } from '@/types/submission.type' @@ -50,14 +51,7 @@ export default function SubmissionCard({ submission }: { submission: Submission
leírás

{submission.description}

kulcsszavak
- {submission.keywords.map((keyword: string, _index) => ( -
- {keyword} -
- ))} + {submission.oldLinkId && ( <>
elavult link Id:
From 9a163a6ef7e7566e6cd59440555c494be87d88ec Mon Sep 17 00:00:00 2001 From: mozsarmate Date: Mon, 8 Apr 2024 16:07:17 +0200 Subject: [PATCH 5/9] merge and LF everything again --- .../client/src/components/collection/CollectionsContainer.tsx | 4 ++-- packages/client/src/components/submission/SubmissionCard.tsx | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/client/src/components/collection/CollectionsContainer.tsx b/packages/client/src/components/collection/CollectionsContainer.tsx index 3e40e59..efbff1e 100644 --- a/packages/client/src/components/collection/CollectionsContainer.tsx +++ b/packages/client/src/components/collection/CollectionsContainer.tsx @@ -31,9 +31,9 @@ export default function CollectionsContainer({ collections }: Props) {
{profile.data && ( )} diff --git a/packages/client/src/components/submission/SubmissionCard.tsx b/packages/client/src/components/submission/SubmissionCard.tsx index 477d8f1..9726362 100644 --- a/packages/client/src/components/submission/SubmissionCard.tsx +++ b/packages/client/src/components/submission/SubmissionCard.tsx @@ -45,6 +45,7 @@ export default function SubmissionCard({ submission }: { submission: Submission
+
slug

{submission.slug}

From 27ec10fb1014123e4366324aed5b2c4ed7d86cca Mon Sep 17 00:00:00 2001 From: mozsarmate Date: Mon, 8 Apr 2024 16:55:34 +0200 Subject: [PATCH 6/9] minor changes in submission card styles, SmallKeywords.tsx init --- packages/client/src/app/admin/page.tsx | 27 ++++++++++++++----- .../src/components/keywords/SmallKeywords.tsx | 14 ++++++++++ .../src/components/links/LinkWidget.tsx | 13 +++++---- .../submission/AdminSubmissionCard.tsx | 12 ++++----- .../components/submission/SubmissionCard.tsx | 8 +++--- .../client/src/network/getAllSubmissions.ts | 13 ++++++--- 6 files changed, 61 insertions(+), 26 deletions(-) create mode 100644 packages/client/src/components/keywords/SmallKeywords.tsx diff --git a/packages/client/src/app/admin/page.tsx b/packages/client/src/app/admin/page.tsx index 9609df6..4788498 100644 --- a/packages/client/src/app/admin/page.tsx +++ b/packages/client/src/app/admin/page.tsx @@ -1,4 +1,4 @@ -import SubmissionCard from '@/components/submission/AdminSubmissionCard' +import AdminSubmissionCard from '@/components/submission/AdminSubmissionCard' import { getAllSubmissions } from '@/network/getAllSubmissions' export default async function Page() { @@ -13,11 +13,26 @@ export default async function Page() {

zsadmin

-
- {submissions.map(submission => ( - - ))} -
+ {submissions.pendingSubmissions.length > 0 && ( + <> +

Bírálatlan

+
+ {submissions.pendingSubmissions.map(submission => ( + + ))} +
+ + )} + {submissions.reviewedSubmissions.length > 0 && ( + <> +

Elbírált

+
+ {submissions.reviewedSubmissions.map(submission => ( + + ))} +
+ + )} ) } diff --git a/packages/client/src/components/keywords/SmallKeywords.tsx b/packages/client/src/components/keywords/SmallKeywords.tsx new file mode 100644 index 0000000..e799f61 --- /dev/null +++ b/packages/client/src/components/keywords/SmallKeywords.tsx @@ -0,0 +1,14 @@ +export default function SmallKeywords({ keywords }: { keywords: string[] }) { + return ( + <> + {keywords.map((keyword: string, _index) => ( +
+ {keyword} +
+ ))} + + ) +} diff --git a/packages/client/src/components/links/LinkWidget.tsx b/packages/client/src/components/links/LinkWidget.tsx index 7f68036..980bbc0 100644 --- a/packages/client/src/components/links/LinkWidget.tsx +++ b/packages/client/src/components/links/LinkWidget.tsx @@ -4,10 +4,9 @@ import '../../app/globals.css' import axios from 'axios' import { useRouter } from 'next/navigation' import React from 'react' -import { BsFire } from 'react-icons/bs' -import { FaRegStar, FaStar } from 'react-icons/fa' +import { BsFire, BsStar, BsStarFill } from 'react-icons/bs' -import Keywords from '@/components/keywords/Keywords' +import SmallKeywords from '@/components/keywords/SmallKeywords' import { useProfile } from '@/hooks/queries/use-profile' import { cn } from '@/lib/utils' import { LinkEntity } from '@/types/link.type' @@ -66,13 +65,13 @@ export default function LinkWidget(props: Props) { />
-

{link.title}

+

{link.title}

{user.data && (!link.isFavorite ? ( - makeFavorite(e)} /> + makeFavorite(e)} /> ) : ( - removeFavorite(e)} /> + removeFavorite(e)} /> ))}
@@ -88,7 +87,7 @@ export default function LinkWidget(props: Props) {

{link.description}

- +
) diff --git a/packages/client/src/components/submission/AdminSubmissionCard.tsx b/packages/client/src/components/submission/AdminSubmissionCard.tsx index 9183bf0..3932bc6 100644 --- a/packages/client/src/components/submission/AdminSubmissionCard.tsx +++ b/packages/client/src/components/submission/AdminSubmissionCard.tsx @@ -36,12 +36,12 @@ export default function AdminSubmissionCard({ submission }: { submission: Submis : submission.iconUrl return ( -
+
-

{submission.id}

+

ADMIN: {submission.id}

-
-
+
+
-
+

{submission.title}

-

{submission.url}

+

{submission.url}

diff --git a/packages/client/src/components/submission/SubmissionCard.tsx b/packages/client/src/components/submission/SubmissionCard.tsx index 9726362..039b8bb 100644 --- a/packages/client/src/components/submission/SubmissionCard.tsx +++ b/packages/client/src/components/submission/SubmissionCard.tsx @@ -29,8 +29,8 @@ export default function SubmissionCard({ submission }: { submission: Submission

{submission.id}

-
-
+
+
-
+

{submission.title}

-

{submission.url}

+

{submission.url}

diff --git a/packages/client/src/network/getAllSubmissions.ts b/packages/client/src/network/getAllSubmissions.ts index 0eda673..ad805f1 100644 --- a/packages/client/src/network/getAllSubmissions.ts +++ b/packages/client/src/network/getAllSubmissions.ts @@ -2,12 +2,19 @@ import { Submission } from '@/types/submission.type' import api from './apiSetup' -export async function getAllSubmissions(): Promise { +export async function getAllSubmissions(): Promise<{ pendingSubmissions: Submission[]; reviewedSubmissions: Submission[] }> { try { const response = await api.get('/submissions') - return response.data + const pendingSubmissions: Submission[] = [] + const reviewedSubmissions: Submission[] = [] + const data = response.data + for (const submission of data) { + if (submission.status === 'IN_REVIEW') pendingSubmissions.push(submission) + else reviewedSubmissions.push(submission) + } + return { pendingSubmissions, reviewedSubmissions } } catch (e) { console.error(e) - return [] + return { pendingSubmissions: [], reviewedSubmissions: [] } } } From 96d8a749ad013babdf3ddf718902496ed5e0203e Mon Sep 17 00:00:00 2001 From: mozsarmate Date: Wed, 17 Apr 2024 11:52:31 +0200 Subject: [PATCH 7/9] sketchy optimistic updates on linkWidget favourite --- .../client/src/components/links/LinkWidget.tsx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/client/src/components/links/LinkWidget.tsx b/packages/client/src/components/links/LinkWidget.tsx index 980bbc0..53ce521 100644 --- a/packages/client/src/components/links/LinkWidget.tsx +++ b/packages/client/src/components/links/LinkWidget.tsx @@ -3,7 +3,7 @@ import '../../app/globals.css' import axios from 'axios' import { useRouter } from 'next/navigation' -import React from 'react' +import React, { useEffect } from 'react' import { BsFire, BsStar, BsStarFill } from 'react-icons/bs' import SmallKeywords from '@/components/keywords/SmallKeywords' @@ -20,14 +20,17 @@ export default function LinkWidget(props: Props) { const link = props.link const router = useRouter() const user = useProfile() + const [isOptimisticallyFavourite, setIsOptimisticallyFavourite] = React.useState(false) const makeFavorite = async (e: React.MouseEvent) => { e.stopPropagation() + setIsOptimisticallyFavourite(true) await axios.post('/api/favorites/', { id: link.id }) router.refresh() } const removeFavorite = async (e: React.MouseEvent) => { e.stopPropagation() + setIsOptimisticallyFavourite(false) await axios.delete('/api/favorites/' + link.id) router.refresh() } @@ -37,6 +40,10 @@ export default function LinkWidget(props: Props) { window.open(process.env.NEXT_PUBLIC_API_URL + '/links/visit/' + link.slug) } + useEffect(() => { + setIsOptimisticallyFavourite(link.isFavorite) + }, [link]) + return (
{link.title}
{user.data && - (!link.isFavorite ? ( - makeFavorite(e)} /> + (!(link.isFavorite || isOptimisticallyFavourite) ? ( + makeFavorite(e)} /> ) : ( - removeFavorite(e)} /> + removeFavorite(e)} /> ))}
From c58c6884a560fe02105583b48115a0a3625a7270 Mon Sep 17 00:00:00 2001 From: mozsarmate Date: Wed, 17 Apr 2024 12:16:15 +0200 Subject: [PATCH 8/9] LinkWidget variable width --- .../src/components/links/LinkWidget.tsx | 27 +++++++++---------- .../components/links/favLinksContainer.tsx | 2 +- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/client/src/components/links/LinkWidget.tsx b/packages/client/src/components/links/LinkWidget.tsx index 53ce521..0f479e6 100644 --- a/packages/client/src/components/links/LinkWidget.tsx +++ b/packages/client/src/components/links/LinkWidget.tsx @@ -48,16 +48,15 @@ export default function LinkWidget(props: Props) {
visitLink(e)} >
-
-
- {/* eslint-disable-next-line @next/next/no-img-element */} +
+
-
+
-

{link.title}

-
+

{link.title}

+
+ {/*{!!props.visits && props.visits > 10 && (*/} +
+ +

{props.visits}32

+
+ {/*)}*/} {user.data && (!(link.isFavorite || isOptimisticallyFavourite) ? ( makeFavorite(e)} /> @@ -83,12 +88,6 @@ export default function LinkWidget(props: Props) {

{link.url}

- {!!props.visits && props.visits > 10 && ( -
- -

{props.visits}

-
- )}
diff --git a/packages/client/src/components/links/favLinksContainer.tsx b/packages/client/src/components/links/favLinksContainer.tsx index 7316490..5380c9b 100644 --- a/packages/client/src/components/links/favLinksContainer.tsx +++ b/packages/client/src/components/links/favLinksContainer.tsx @@ -37,7 +37,7 @@ export default function FavLinksContainer({ title, links }: Props) {

{title}

{links.map(link => ( -
+
))} From 392a7feceead8a2ee31cdb3371165540b791d78e Mon Sep 17 00:00:00 2001 From: mozsarmate Date: Wed, 17 Apr 2024 12:30:04 +0200 Subject: [PATCH 9/9] user profile link works --- packages/client/src/components/links/LinkWidget.tsx | 10 +++++----- packages/client/src/components/navbar/user-display.tsx | 5 ++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/client/src/components/links/LinkWidget.tsx b/packages/client/src/components/links/LinkWidget.tsx index 0f479e6..5a8b432 100644 --- a/packages/client/src/components/links/LinkWidget.tsx +++ b/packages/client/src/components/links/LinkWidget.tsx @@ -48,13 +48,13 @@ export default function LinkWidget(props: Props) {
visitLink(e)} >
-
+
-
-
+
+

{link.title}

-
+
{/*{!!props.visits && props.visits > 10 && (*/}
diff --git a/packages/client/src/components/navbar/user-display.tsx b/packages/client/src/components/navbar/user-display.tsx index fa26011..57d4e84 100644 --- a/packages/client/src/components/navbar/user-display.tsx +++ b/packages/client/src/components/navbar/user-display.tsx @@ -1,5 +1,6 @@ import Cookies from 'js-cookie' import Link from 'next/link' +import { redirect } from 'next/navigation' import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu' @@ -29,10 +30,8 @@ export function UserDisplay() { + redirect('/profile')}>Profila Kijelentkezés - - Profil -