diff options
| author | Yash <[email protected]> | 2024-04-11 05:57:42 +0000 |
|---|---|---|
| committer | Yash <[email protected]> | 2024-04-11 05:57:42 +0000 |
| commit | b425476cc495c561988a789eb9d94e3d947735be (patch) | |
| tree | 4a8bab10bb648ce90a43f8461f6248d9053f3be6 /apps/web/src/components/Sidebar/AddMemoryDialog.tsx | |
| parent | Merge pull request #5 from Dhravya/new-ui (diff) | |
| download | supermemory-b425476cc495c561988a789eb9d94e3d947735be.tar.xz supermemory-b425476cc495c561988a789eb9d94e3d947735be.zip | |
notess
Diffstat (limited to 'apps/web/src/components/Sidebar/AddMemoryDialog.tsx')
| -rw-r--r-- | apps/web/src/components/Sidebar/AddMemoryDialog.tsx | 60 |
1 files changed, 53 insertions, 7 deletions
diff --git a/apps/web/src/components/Sidebar/AddMemoryDialog.tsx b/apps/web/src/components/Sidebar/AddMemoryDialog.tsx index 5a1d92f0..784976b4 100644 --- a/apps/web/src/components/Sidebar/AddMemoryDialog.tsx +++ b/apps/web/src/components/Sidebar/AddMemoryDialog.tsx @@ -8,7 +8,8 @@ import { } from "../ui/dialog"; import { Input } from "../ui/input"; import { Label } from "../ui/label"; -import { useRef } from "react"; +import { Markdown } from "tiptap-markdown"; +import { useEffect, useRef, useState } from "react"; export function AddMemoryPage() { return ( @@ -39,23 +40,68 @@ export function AddMemoryPage() { ); } -export function NoteAddPage() { +export function NoteAddPage({ closeDialog }: { closeDialog: () => void }) { + const inputRef = useRef<HTMLInputElement>(null); + const [name, setName] = useState(""); + const [content, setContent] = useState(""); + const [loading, setLoading] = useState(false); + + function check() { + const data = { + name: name.trim(), + content, + }; + console.log(name); + if (!data.name || data.name.length < 1) { + if (!inputRef.current) { + alert("Please enter a name for the note"); + return; + } + inputRef.current.value = ""; + inputRef.current.placeholder = "Please enter a title for the note"; + inputRef.current.dataset["error"] = "true"; + setTimeout(() => { + inputRef.current!.placeholder = "Title of the note"; + inputRef.current!.dataset["error"] = "false"; + }, 500); + inputRef.current.focus(); + } + } + return ( <> <Input - className="w-full border-none p-0 text-xl ring-0 placeholder:text-white/30 focus-visible:ring-0" - placeholder="Name of the note" + ref={inputRef} + data-error="false" + className="w-full border-none p-0 text-xl ring-0 placeholder:text-white/30 placeholder:transition placeholder:duration-200 focus-visible:ring-0 data-[error=true]:placeholder:text-red-400" + placeholder="Title of the note" data-modal-autofocus + value={name} + onChange={(e) => setName(e.target.value)} /> <Editor disableLocalStorage + defaultValue={""} + onUpdate={(editor) => { + if (!editor) return; + setContent(editor.storage.markdown.getMarkdown()); + }} + extensions={[Markdown]} className="novel-editor bg-rgray-4 border-rgray-7 dark mt-5 max-h-[60vh] min-h-[40vh] w-[50vw] overflow-y-auto rounded-lg border [&>div>div]:p-5" /> <DialogFooter> - <DialogClose className="bg-rgray-4 hover:bg-rgray-5 focus-visible:bg-rgray-5 focus-visible:ring-rgray-7 rounded-md px-4 py-2 ring-transparent transition focus-visible:outline-none focus-visible:ring-2"> + <button + onClick={() => { + check(); + }} + className="bg-rgray-4 hover:bg-rgray-5 focus-visible:bg-rgray-5 focus-visible:ring-rgray-7 rounded-md px-4 py-2 ring-transparent transition focus-visible:outline-none focus-visible:ring-2" + > Add - </DialogClose> - <DialogClose className="hover:bg-rgray-4 focus-visible:bg-rgray-4 focus-visible:ring-rgray-7 rounded-md px-3 py-2 ring-transparent transition focus-visible:outline-none focus-visible:ring-2"> + </button> + <DialogClose + type={undefined} + className="hover:bg-rgray-4 focus-visible:bg-rgray-4 focus-visible:ring-rgray-7 rounded-md px-3 py-2 ring-transparent transition focus-visible:outline-none focus-visible:ring-2" + > Cancel </DialogClose> </DialogFooter> |