Skip to content

Commit 354c7af

Browse files
authored
Merge pull request #87 from hammercode-dev/feat/filtering-by-type-event
[FEAT] - User event can filtering by type, and new ui for user event card
2 parents 3acc61e + c0d5b56 commit 354c7af

17 files changed

Lines changed: 217 additions & 125 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"@radix-ui/react-separator": "^1.1.7",
3131
"@radix-ui/react-slot": "^1.2.3",
3232
"@radix-ui/react-tooltip": "^1.2.7",
33+
"@tanstack/react-query": "^5.85.5",
3334
"@tanstack/react-table": "^8.21.3",
3435
"@tiptap/extension-image": "^3.2.0",
3536
"@tiptap/extension-link": "^3.2.0",

pnpm-lock.yaml

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/app/[locale]/(public)/(user)/layout.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export default function UserLayout({ children }: UserLayoutProps) {
1919
<ProtectedRoute>
2020
<section className="container mx-auto px-5 pt-24 pb-28">
2121
<div className="grid grid-cols-5 gap-8">
22-
<aside className="fixed right-0 bottom-0 left-0 col-span-1 mt-8 flex w-full flex-col justify-between gap-4 self-start rounded-lg bg-white lg:sticky lg:top-24 lg:flex-col lg:justify-start lg:bg-transparent dark:bg-slate-950">
22+
<aside className="mt-8 hidden w-full flex-col justify-between gap-4 self-start rounded-lg lg:sticky lg:top-24 lg:col-span-1 lg:flex lg:flex-col lg:justify-start lg:bg-transparent">
2323
<div className="flex items-center gap-4">
2424
<Avatar className="h-12 w-12">
2525
<AvatarImage src="" alt="profile" />
@@ -43,7 +43,7 @@ export default function UserLayout({ children }: UserLayoutProps) {
4343
</nav>
4444
</aside>
4545

46-
<div className="col-span-4">{children}</div>
46+
<div className="col-span-5 lg:col-span-4">{children}</div>
4747
</div>
4848
</section>
4949
</ProtectedRoute>

src/app/[locale]/layout.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { cookies } from "next/headers";
99
import { AuthJwtPayload } from "@/types";
1010
import { jwtDecode } from "jwt-decode";
1111
import { ThemeProvider } from "@/components/provider/ThemeProvider";
12+
import TanstackProvider from "@/components/provider/TanstackProvider";
1213
const sora = Sora({ subsets: ["latin"] });
1314

1415
type Props = {
@@ -57,11 +58,13 @@ export default async function LocaleRootLayout(props: Readonly<Props>) {
5758
<html lang={locale} suppressHydrationWarning>
5859
<body className={`${sora.className}`}>
5960
<NextIntlClientProvider messages={messages}>
60-
<AuthProvider payload={payload}>
61-
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
62-
{children}
63-
</ThemeProvider>
64-
</AuthProvider>
61+
<TanstackProvider>
62+
<AuthProvider payload={payload}>
63+
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
64+
{children}
65+
</ThemeProvider>
66+
</AuthProvider>
67+
</TanstackProvider>
6568
<Toaster />
6669
</NextIntlClientProvider>
6770
</body>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { LoaderIcon } from "lucide-react";
2+
3+
const Loader = () => {
4+
return (
5+
<div className="flex h-[45vh] items-center justify-center">
6+
<LoaderIcon className="size-12 animate-spin" />
7+
</div>
8+
);
9+
};
10+
export default Loader;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { FileX } from "lucide-react";
2+
3+
export const NotFoundData = ({ message = "No data found" }: { message?: string }) => {
4+
return (
5+
<div className="flex flex-col items-center justify-center py-12 text-center text-gray-500">
6+
<FileX className="mb-4 h-12 w-12 text-gray-400" />
7+
<p className="text-lg font-medium">{message}</p>
8+
</div>
9+
);
10+
};
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
"use client";
2+
3+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
4+
5+
const queryClient = new QueryClient();
6+
7+
const TanstackProvider = ({ children }: { children: React.ReactNode }) => {
8+
return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>;
9+
};
10+
export default TanstackProvider;

src/components/ui/Badge/index.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ const badgeVariants = cva(
1515
soon: "border-transparent bg-green-500 text-white hover:bg-green-600",
1616
closed: "border-transparent bg-red-500 text-white hover:bg-red-600",
1717
open: "border-transparent bg-blue-500 text-white hover:bg-blue-600",
18+
// for payment status
19+
PENDING: "border-transparent bg-yellow-500 text-white hover:bg-yellow-600",
20+
SUCCESS: "border-transparent bg-green-500 text-white hover:bg-green-600",
21+
FAILED: "border-transparent bg-red-500 text-white hover:bg-red-600",
1822
},
1923
},
2024
defaultVariants: {

src/components/ui/Toaster/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const Toaster = ({ ...props }: ToasterProps) => {
1919
}
2020
toastOptions={{
2121
classNames: {
22+
success: "!bg-green-500 !text-white",
2223
error: "!bg-destructive !text-white",
2324
description: "!text-muted-foreground",
2425
},

src/constants/event.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const EVENTS_TYPE = ["Conference", "Tech Talk", "Ngobar"];

0 commit comments

Comments
 (0)