From 4772a076c75fe13f86773b670ab1e3a191a782c1 Mon Sep 17 00:00:00 2001 From: Kyle Dickey <41174949+dickeyy@users.noreply.github.com> Date: Sun, 2 Jun 2024 14:26:39 -0600 Subject: [PATCH] fix empty content bug --- apps/api/src/routes/documents.ts | 9 +++-- apps/web/app/entry/[id]/page.tsx | 1 - apps/web/components/websocket.tsx | 58 ------------------------------- 3 files changed, 6 insertions(+), 62 deletions(-) delete mode 100644 apps/web/components/websocket.tsx diff --git a/apps/api/src/routes/documents.ts b/apps/api/src/routes/documents.ts index e54b67f..2d01135 100644 --- a/apps/api/src/routes/documents.ts +++ b/apps/api/src/routes/documents.ts @@ -20,7 +20,11 @@ docs.ws("/ws", { message: t.String(), data: t.Object({ doc_id: t.String(), - content_to_save: t.Optional(t.String()), + content_to_save: t.Optional( + t.String({ + minLength: 0 + }) + ), title: t.Optional(t.String()) }), token: t.String() @@ -35,14 +39,13 @@ docs.ws("/ws", { } if (message === "update content") { - if (data.content_to_save) { + if (data.content_to_save !== undefined) { const doc = await updateDocumentByID(data.doc_id, data.content_to_save); if (!doc) { ws.send({ message: "error" }); } else { - console.log("success"); ws.send({ message: "success", doc: doc[0] diff --git a/apps/web/app/entry/[id]/page.tsx b/apps/web/app/entry/[id]/page.tsx index da89b26..269dfef 100644 --- a/apps/web/app/entry/[id]/page.tsx +++ b/apps/web/app/entry/[id]/page.tsx @@ -2,7 +2,6 @@ import Document from "@/components/document"; import Spinner from "@/components/ui/spinner"; -import WebSocketDemo from "@/components/websocket"; import useClerkSWR from "@/lib/clerk-swr"; import useDocumentStore from "@/stores/document-store"; import { redirect } from "next/navigation"; diff --git a/apps/web/components/websocket.tsx b/apps/web/components/websocket.tsx deleted file mode 100644 index f522a05..0000000 --- a/apps/web/components/websocket.tsx +++ /dev/null @@ -1,58 +0,0 @@ -"use client"; - -import { useAuth } from "@clerk/nextjs"; -import React, { useState, useCallback, useEffect } from "react"; -import useWebSocket, { ReadyState } from "react-use-websocket"; - -export default function WebSocketDemo() { - //Public API that will echo messages sent to it back to the client - const { getToken } = useAuth(); - const [socketUrl, setSocketUrl] = useState("ws://localhost:8080/documents/ws"); - const [messageHistory, setMessageHistory] = useState[]>([]); - const [token, setToken] = useState(""); - - const { sendJsonMessage, lastMessage, readyState } = useWebSocket(socketUrl, { - shouldReconnect: () => true - }); - - useEffect(() => { - if (lastMessage !== null) { - setMessageHistory((prev) => prev.concat(lastMessage)); - } - }, [lastMessage]); - - useEffect(() => { - // on load, get the token - getToken().then((token: any) => { - setToken(token); - }); - }, []); - - const handleClickSendMessage = () => { - sendJsonMessage({ message: "Hello", token: token }); - }; - - const connectionStatus = { - [ReadyState.CONNECTING]: "Connecting", - [ReadyState.OPEN]: "Open", - [ReadyState.CLOSING]: "Closing", - [ReadyState.CLOSED]: "Closed", - [ReadyState.UNINSTANTIATED]: "Uninstantiated" - }[readyState]; - - return ( -
- - The WebSocket is currently {connectionStatus} - Token: {token} - {lastMessage ? Last message: {lastMessage.data} : null} - -
- ); -}