diff options
| author | Yash <[email protected]> | 2024-04-11 06:24:56 +0000 |
|---|---|---|
| committer | Yash <[email protected]> | 2024-04-11 06:24:56 +0000 |
| commit | 257e355ae3b47e9de37f9686b400fa598904c6cb (patch) | |
| tree | 44830a4b49ee3c3376054bdcd4cd20e9ddac5e14 /apps/web/src/components | |
| parent | add modal (diff) | |
| download | supermemory-257e355ae3b47e9de37f9686b400fa598904c6cb.tar.xz supermemory-257e355ae3b47e9de37f9686b400fa598904c6cb.zip | |
new schema
Diffstat (limited to 'apps/web/src/components')
| -rw-r--r-- | apps/web/src/components/Sidebar/AddMemoryDialog.tsx | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/apps/web/src/components/Sidebar/AddMemoryDialog.tsx b/apps/web/src/components/Sidebar/AddMemoryDialog.tsx index ace930a6..aa86966f 100644 --- a/apps/web/src/components/Sidebar/AddMemoryDialog.tsx +++ b/apps/web/src/components/Sidebar/AddMemoryDialog.tsx @@ -128,3 +128,80 @@ export function NoteAddPage({ closeDialog }: { closeDialog: () => void }) { </div> ); } + +export function SpaceAddPage({ closeDialog }: { closeDialog: () => void }) { + const [selectedSpacesId, setSelectedSpacesId] = useState<number[]>([]); + + 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 ( + <div> + <Input + 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> + <FilterCombobox + selectedSpaces={selectedSpacesId} + setSelectedSpaces={setSelectedSpacesId} + className="hover:bg-rgray-5 mr-auto bg-white/5" + name={"Spaces"} + /> + <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 + </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> + </div> + ); +} |