"use client";
import dynamic from "next/dynamic";
import { useState, useTransition } from "react";
import { Button } from "@/components/ui/button";
import {
Dialog,
DialogContent,
DialogFooter,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { createNote } from "@/modules/notes/server/actions";
const RichTextEditor = dynamic(
() => import("@/components/rich-text/rich-text-editor").then((mod) => mod.RichTextEditor),
{
ssr: false,
loading: () => (
Loading editor…
),
},
);
type Props = {
open: boolean;
onOpenChange: (open: boolean) => void;
};
export function NoteCreateDialog({ open, onOpenChange }: Props) {
return (
);
}
function NoteCreateForm({ onDone }: { onDone: () => void }) {
const [title, setTitle] = useState("");
const [body, setBody] = useState("");
const [remindAt, setRemindAt] = useState("");
const [isPending, startTransition] = useTransition();
function handleSubmit(e: React.FormEvent) {
e.preventDefault();
if (!title.trim()) return;
startTransition(async () => {
await createNote({
title: title.trim(),
body,
remindAt: remindAt ? new Date(remindAt) : null,
});
onDone();
});
}
return (
<>
New note
>
);
}