+ class="max-w-full w-full h-screen bg-dark-800 flex flex-row divide-gray-400 p-0 overflow-hidden font-['Inter']">
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 53e69f7..8510d9c 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -10,6 +10,7 @@ export default defineNuxtConfig({
"@vueuse/nuxt",
"@pinia/nuxt",
"nuxt-twemoji",
+ "@nuxtjs/google-fonts",
],
spaLoadingTemplate: false,
ssr: false,
@@ -26,6 +27,13 @@ export default defineNuxtConfig({
wasm(),
],
},
+ googleFonts: {
+ families: {
+ Inter: true,
+ },
+ subsets: "latin",
+ download: true,
+ },
runtimeConfig: {
public: {
TOKEN: process.env.TOKEN,
diff --git a/package.json b/package.json
index 220a0fc..70dd92c 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"devDependencies": {
"@nuxt/devtools": "latest",
"@nuxtjs/eslint-config-typescript": "^12.0.0",
+ "@nuxtjs/google-fonts": "^3.0.2",
"@types/node": "^18",
"@typescript-eslint/parser": "^6.2.1",
"eslint": "^8.43.0",
diff --git a/pages/index.vue b/pages/index.vue
index a2dda31..8bf7886 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -1,3 +1,5 @@
- No content
+
+
Select a conversation to begin
+
diff --git a/pages/room/[id].vue b/pages/room/[id].vue
index 8854cef..1accf14 100644
--- a/pages/room/[id].vue
+++ b/pages/room/[id].vue
@@ -62,17 +62,28 @@ const ready = () => {
timeline.value = roomTimeline.timeline;
};
+const typingMembers = ref
>(new Set());
+
+const updateTypingMembers = (members: Set) => {
+ typingMembers.value = members;
+};
+
// Add event listeners for timeline updates
roomTimeline
.on(events.events.timeline.EVENT, newEvent)
- .on(events.events.timeline.READY, ready);
+ .on(events.events.timeline.READY, ready)
+ .on(events.events.timeline.TYPING_MEMBERS_UPDATED, updateTypingMembers);
// Remove event listeners on route leave or unmount
function removeListeners() {
roomTimeline.removeInternalListeners();
roomTimeline
.off(events.events.timeline.EVENT, newEvent)
- .off(events.events.timeline.READY, ready);
+ .off(events.events.timeline.READY, ready)
+ .off(
+ events.events.timeline.TYPING_MEMBERS_UPDATED,
+ updateTypingMembers
+ );
}
onBeforeRouteLeave(removeListeners);
onUnmounted(removeListeners);
@@ -167,6 +178,7 @@ useHead({
{}" />
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a2f3f21..66a7291 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -58,6 +58,9 @@ devDependencies:
'@nuxtjs/eslint-config-typescript':
specifier: ^12.0.0
version: 12.0.0(eslint@8.46.0)(typescript@5.1.6)
+ '@nuxtjs/google-fonts':
+ specifier: ^3.0.2
+ version: 3.0.2
'@types/node':
specifier: ^18
version: 18.17.1
@@ -1279,6 +1282,17 @@ packages:
- supports-color
dev: true
+ /@nuxtjs/google-fonts@3.0.2:
+ resolution: {integrity: sha512-9DY0NcBnx/I6+3Lr7NeB64k5A7GbqCN1pqVgU9ld00NEXSpDUht2+lG8mcC5UnmpTi8KCdCJckDbD/bqW3ncYg==}
+ dependencies:
+ '@nuxt/kit': 3.6.5
+ google-fonts-helper: 3.3.1
+ pathe: 1.1.1
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+ dev: true
+
/@pinia/nuxt@0.4.11(typescript@5.1.6)(vue@3.3.4):
resolution: {integrity: sha512-bhuNFngJpmBCdAqWguezNJ/oJFR7wvKieqiZrmmdmPR07XjsidAw8RLXHMZE9kUm32M9E6T057OBbG/22jERTg==}
dependencies:
@@ -4939,6 +4953,15 @@ packages:
merge2: 1.4.1
slash: 4.0.0
+ /google-fonts-helper@3.3.1:
+ resolution: {integrity: sha512-zMycq4nUUaplGe7pzCOGBC52LB3VpwxS9temmCx1EucEaBdBEpG5MeQlJhtRu63gKI1hb/l+yHkasQtee59sFA==}
+ dependencies:
+ deepmerge: 4.3.1
+ hookable: 5.5.3
+ ofetch: 1.1.1
+ ufo: 1.2.0
+ dev: true
+
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies: