Skip to content

Commit 8ca791d

Browse files
committed
πŸ‘ƒπŸ»πŸ§Ÿβ€β™€οΈ ↝ Content dir
1 parent ddd56b5 commit 8ca791d

File tree

8 files changed

+486
-59
lines changed

8 files changed

+486
-59
lines changed

β€Žcomponents/Avatar.tsx

-11
This file was deleted.

β€Žcomponents/Content/FileUpload.tsx

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import { useSupabaseClient } from "@supabase/auth-helpers-react";
2+
import { ConnectWallet, useStorageUpload, MediaRenderer } from "@thirdweb-dev/react";
3+
import { NextPage } from "next";
4+
import { useCallback, useEffect, useState } from "react";
5+
import { useDropzone } from "react-dropzone";
6+
import { useMutation, useQuery } from "react-query";
7+
8+
const IPFS_GATEWAY = "https://d4b4e2e663a6efce5f7f8310426ba24a.ipfscdn.io/ipfs/";
9+
10+
export default function FileUpload() {
11+
const supabase = useSupabaseClient();
12+
const [uris, setUris] = useState<string[]>([]);
13+
14+
const { mutateAsync: upload } = useStorageUpload();
15+
const onDrop = useCallback(
16+
async (acceptedFiles: File[]) => {
17+
const _uris = await upload({ data: acceptedFiles });
18+
setUris(_uris);
19+
},
20+
[upload],
21+
);
22+
23+
const { getRootProps, getInputProps } = useDropzone({ onDrop });
24+
25+
const uploadAndAddToSupabase = async (files: File[]) => {
26+
try {
27+
const uris = await upload({ data: files });
28+
setUris(uris);
29+
30+
// Add URIs to Supabase table
31+
for (const uri of uris) {
32+
supabase.from('files')
33+
.insert({
34+
filename: uri
35+
});
36+
}
37+
} catch (error) {
38+
console.error("Error uploading files and adding to Supabase:", error);
39+
}
40+
};
41+
42+
const fetchAndRenderFromSupabase = async () => {
43+
try {
44+
const { data, error } = await supabase.from("files").select("file_url");
45+
if (error) {
46+
console.error("Error fetching files from Supabase:", error.message);
47+
return;
48+
}
49+
if (data) {
50+
const urisFromSupabase = data.map((row: any) => row.file_url);
51+
setUris(urisFromSupabase);
52+
}
53+
} catch (error: any) {
54+
console.error("Error fetching files from Supabase:", error.message);
55+
}
56+
};
57+
58+
useEffect(() => {
59+
fetchAndRenderFromSupabase();
60+
}, []);
61+
62+
return (
63+
<div>
64+
<div {...getRootProps()}>
65+
<input {...getInputProps()} />
66+
<button>Drop files to upload them to IPFS</button>
67+
</div>
68+
<div>
69+
{uris.map((uri) => (
70+
<MediaRenderer key={uri} src={uri} alt="image" />
71+
))}
72+
</div>
73+
</div>
74+
);
75+
};

β€Žcomponents/Section/Navbar.tsx

+360-26
Large diffs are not rendered by default.

β€Žcomponents/ui/Avatar.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from "react";
22
import * as AvatarPrimitive from '@radix-ui/react-avatar';
33

4-
import { cn } from "../../lib/uitls";
4+
import { cn } from "../../lib/utils";
55

66
const Avatar = React.forwardRef<
77
React.ElementRef<typeof AvatarPrimitive.Root>,

β€Žlib/utils.ts

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { type ClassValue, clsx } from "clsx";
2+
import { twMerge } from "tailwind-merge";
3+
4+
export function cn(...inputs: ClassValue[]) {
5+
return twMerge(clsx(inputs));
6+
};

β€Žpackage.json

+11-7
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,32 @@
1818
"test-api": "cd server && venv/bin/activate && flask test"
1919
},
2020
"dependencies": {
21+
"@heroicons/react": "^2.1.1",
22+
"@radix-ui/react-avatar": "^1.0.4",
2123
"@supabase/auth-helpers-nextjs": "^0.8.7",
2224
"@supabase/auth-helpers-react": "^0.3.1",
2325
"@supabase/auth-ui-react": "^0.2.6",
2426
"@supabase/supabase-js": "^2.13.1",
2527
"@supabase/ui": "^0.36.5",
28+
"@thirdweb-dev/react": "^4",
29+
"@thirdweb-dev/sdk": "^4",
2630
"axios": "^1.6.2",
31+
"clsx": "^2.1.0",
32+
"ethers": "^5",
2733
"lucide-react": "^0.293.0",
2834
"next": "^13.0.2",
2935
"package.json": "^2.0.1",
3036
"postcss": "^8.4.21",
3137
"react": "^18.2.0",
3238
"react-dom": "18.2.0",
39+
"react-dropzone": "^14.2.3",
3340
"react-hook-form": "^7.48.2",
41+
"react-icons": "^5.0.1",
42+
"react-query": "^3.39.3",
3443
"react-spinners": "^0.13.8",
35-
"tailwind-merge": "^2.0.0",
44+
"tailwind-merge": "^2.2.1",
3645
"tailwindcss": "^3.2.4",
37-
"tailwindcss-animate": "^1.0.7",
38-
"@thirdweb-dev/react": "^4",
39-
"@thirdweb-dev/sdk": "^4",
40-
"ethers": "^5",
41-
"react-dropzone": "^14.2.3",
42-
"react-query": "^3.39.3"
46+
"tailwindcss-animate": "^1.0.7"
4347
},
4448
"devDependencies": {
4549
"@capacitor/cli": "^5.5.1",

β€Žpages/index.tsx

-7
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { useSession, useSupabaseClient } from "@supabase/auth-helpers-react";
22
import React, { useEffect, useState } from "react";
33
import CoreLayout from "../components/Core/Layout";
44
import Layout from "../components/Section/Layout";
5-
import CardForum from "../components/Content/DiscussCard";
65
import { useRouter } from "next/router";
76
import Login from "./login";
87

@@ -24,12 +23,6 @@ export default function Home() {
2423

2524
const userId = session?.user?.id;
2625

27-
useEffect(() => {
28-
if (session) {
29-
router.push('/feed');
30-
}
31-
}, [session, router]);
32-
3326
if (session) {
3427
return (
3528
<Layout>

β€Žyarn.lock

+33-7
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@
5656
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b"
5757
integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==
5858

59-
"@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.23.4", "@babel/runtime@^7.23.8", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2":
59+
"@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.23.4", "@babel/runtime@^7.23.7", "@babel/runtime@^7.23.8", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2":
6060
version "7.23.9"
6161
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7"
6262
integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==
6363
dependencies:
6464
regenerator-runtime "^0.14.0"
6565

66-
"@babel/runtime@^7.13.10", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.1", "@babel/runtime@^7.23.2":
66+
"@babel/runtime@^7.13.10", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2":
6767
version "7.23.5"
6868
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz"
6969
integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==
@@ -756,6 +756,11 @@
756756
dependencies:
757757
client-only "^0.0.1"
758758

759+
"@heroicons/react@^2.1.1":
760+
version "2.1.1"
761+
resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.1.1.tgz#422deb80c4d6caf3371aec6f4bee8361a354dc13"
762+
integrity sha512-JyyN9Lo66kirbCMuMMRPtJxtKJoIsXKS569ebHGGRKbl8s4CtUfLnyKJxteA+vIKySocO4s1SkTkGS4xtG/yEA==
763+
759764
"@humanwhocodes/config-array@^0.11.8":
760765
version "0.11.13"
761766
resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz"
@@ -1399,6 +1404,17 @@
13991404
"@babel/runtime" "^7.13.10"
14001405
"@radix-ui/react-primitive" "1.0.3"
14011406

1407+
"@radix-ui/react-avatar@^1.0.4":
1408+
version "1.0.4"
1409+
resolved "https://registry.yarnpkg.com/@radix-ui/react-avatar/-/react-avatar-1.0.4.tgz#de9a5349d9e3de7bbe990334c4d2011acbbb9623"
1410+
integrity sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==
1411+
dependencies:
1412+
"@babel/runtime" "^7.13.10"
1413+
"@radix-ui/react-context" "1.0.1"
1414+
"@radix-ui/react-primitive" "1.0.3"
1415+
"@radix-ui/react-use-callback-ref" "1.0.1"
1416+
"@radix-ui/react-use-layout-effect" "1.0.1"
1417+
14021418
"@radix-ui/react-collection@1.0.3":
14031419
version "1.0.3"
14041420
resolved "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz"
@@ -4073,6 +4089,11 @@ clsx@^1.1.0:
40734089
resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12"
40744090
integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==
40754091

4092+
clsx@^2.1.0:
4093+
version "2.1.0"
4094+
resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.0.tgz#e851283bcb5c80ee7608db18487433f7b23f77cb"
4095+
integrity sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==
4096+
40764097
cluster-key-slot@^1.1.0:
40774098
version "1.1.2"
40784099
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac"
@@ -9213,6 +9234,11 @@ react-hook-form@^7.48.2:
92139234
resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.48.2.tgz"
92149235
integrity sha512-H0T2InFQb1hX7qKtDIZmvpU1Xfn/bdahWBN1fH19gSe4bBEqTfmlr7H3XWTaVtiK4/tpPaI1F3355GPMZYge+A==
92159236

9237+
react-icons@^5.0.1:
9238+
version "5.0.1"
9239+
resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-5.0.1.tgz#1694e11bfa2a2888cab47dcc30154ce90485feee"
9240+
integrity sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==
9241+
92169242
react-is@^16.13.1, react-is@^16.7.0:
92179243
version "16.13.1"
92189244
resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
@@ -10324,12 +10350,12 @@ table-layout@^1.0.2:
1032410350
typical "^5.2.0"
1032510351
wordwrapjs "^4.0.0"
1032610352

10327-
tailwind-merge@^2.0.0:
10328-
version "2.0.0"
10329-
resolved "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.0.0.tgz"
10330-
integrity sha512-WO8qghn9yhsldLSg80au+3/gY9E4hFxIvQ3qOmlpXnqpDKoMruKfi/56BbbMg6fHTQJ9QD3cc79PoWqlaQE4rw==
10353+
tailwind-merge@^2.2.1:
10354+
version "2.2.1"
10355+
resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-2.2.1.tgz#3f10f296a2dba1d88769de8244fafd95c3324aeb"
10356+
integrity sha512-o+2GTLkthfa5YUt4JxPfzMIpQzZ3adD1vLVkvKE1Twl9UAhGsEbIZhHHZVRttyW177S8PDJI3bTQNaebyofK3Q==
1033110357
dependencies:
10332-
"@babel/runtime" "^7.23.1"
10358+
"@babel/runtime" "^7.23.7"
1033310359

1033410360
tailwindcss-animate@^1.0.7:
1033510361
version "1.0.7"

0 commit comments

Comments
Β (0)