+ {liveDetails && (
+
+
+
{liveDetails.title}
+
Channel Owner Name: {liveDetails.channelName}
+
Channel Profile URL: {liveDetails.channelUrl}
+
+ )}
+ {displayedMessage?.map((it, index) => (
+
{it.message}
+ ))}
+
)
+}
+```
+
+### Reference
+
+Part of the code is referenced from [LinaTsukusu/youtube-chat](https://github.com/LinaTsukusu/youtube-chat), many thanks 🙌
+
+
+
## Monorepo structure
@@ -24,7 +183,7 @@ Contains a demo NextJS 14 website demonstrate the usage of `next-youtube-livecha
└── turbo.json
```
-- `apps/web` - Demo website
+- `apps/web` - Demo website
- `packages/next-youtube-livechat` - React hook library `next-youtube-livechat`
- `packages/eslint-config` - eslint configurations (includes `eslint-config-next`, `eslint-config-prettier` and `eslint-config-turbo`)
- `packages/typescript-config` - tsconfig.json used throughout the monorepo
@@ -38,8 +197,8 @@ Restore dependencies:
npm i
```
-To develop all apps and packages, run:
-Both app & packages should be hot reload on file changed, and supporting linting & typecheck.
+Developing apps & packages should be able to hot reload on file changed, also with linting & typecheck.
+To develop (all apps and packages), run:
```sh
turbo dev
diff --git a/apps/web/package.json b/apps/web/package.json
index a5b943a..905700d 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -12,10 +12,6 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "next": "^14.1.1",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "next-youtube-livechat": "*",
"@radix-ui/react-avatar": "^1.0.4",
"@radix-ui/react-label": "^2.0.2",
"@radix-ui/react-slot": "^1.0.2",
@@ -25,8 +21,12 @@
"clsx": "^2.1.0",
"framer-motion": "^11.0.20",
"lucide-react": "^0.338.0",
+ "next": "^14.1.1",
"next-themes": "^0.2.1",
+ "next-youtube-livechat": "*",
+ "react": "^18.2.0",
"react-device-detect": "^2.2.3",
+ "react-dom": "^18.2.0",
"tailwind-merge": "^2.2.1",
"tailwindcss-animate": "^1.0.7",
"zustand": "^4.5.2"
@@ -35,8 +35,8 @@
"@next/eslint-plugin-next": "^14.1.1",
"@repo/eslint-config": "*",
"@repo/typescript-config": "*",
- "@types/eslint": "^8.56.5",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
+ "@types/eslint": "^8.56.5",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
diff --git a/package-lock.json b/package-lock.json
index 4c0b34f..c0b13b5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8967,7 +8967,8 @@
}
},
"packages/next-youtube-livechat": {
- "version": "0.1.16",
+ "version": "0.1.22",
+ "license": "MIT",
"dependencies": {
"next": "^14.1.1",
"react": "^18",
diff --git a/packages/next-youtube-livechat/README.md b/packages/next-youtube-livechat/README.md
index 6cec8b9..bb59891 100644
--- a/packages/next-youtube-livechat/README.md
+++ b/packages/next-youtube-livechat/README.md
@@ -1,13 +1,20 @@
# `next-youtube-livechat`
-Fetch YouTube live chat without API using NextJS which bypass CORS.
-
-🚨 You will need to take full responsibility for your action 🚨
-
+Fetch YouTube live chat without API using NextJS which bypass CORS.
Demo site: [https://next-youtube-livechat.vercel.app/](https://next-youtube-livechat.vercel.app/)
+