refactor: post editor

This commit is contained in:
codytseng 2025-05-23 22:47:31 +08:00
parent 3d06421acb
commit 78725d1e88
31 changed files with 1603 additions and 766 deletions

View file

@ -14,9 +14,11 @@ import {
SheetTitle
} from '@/components/ui/sheet'
import { useScreenSize } from '@/providers/ScreenSizeProvider'
import postEditor from '@/services/post-editor.service'
import { Event } from 'nostr-tools'
import { Dispatch, useMemo } from 'react'
import NormalPostContent from './NormalPostContent'
import PostContent from './PostContent'
import { PostEditorProvider } from './PostEditorProvider'
import Title from './Title'
export default function PostEditor({
@ -34,18 +36,30 @@ export default function PostEditor({
const content = useMemo(() => {
return (
<NormalPostContent
defaultContent={defaultContent}
parentEvent={parentEvent}
close={() => setOpen(false)}
/>
<PostEditorProvider>
<PostContent
defaultContent={defaultContent}
parentEvent={parentEvent}
close={() => setOpen(false)}
/>
</PostEditorProvider>
)
}, [])
if (isSmallScreen) {
return (
<Sheet open={open} onOpenChange={setOpen}>
<SheetContent className="h-full w-full p-0 border-none" side="bottom" hideClose>
<SheetContent
className="h-full w-full p-0 border-none"
side="bottom"
hideClose
onEscapeKeyDown={(e) => {
if (postEditor.isSuggestionPopupOpen) {
e.preventDefault()
postEditor.closeSuggestionPopup()
}
}}
>
<ScrollArea className="px-4 h-full max-h-screen">
<div className="space-y-4 px-2 py-6">
<SheetHeader>
@ -64,7 +78,16 @@ export default function PostEditor({
return (
<Dialog open={open} onOpenChange={setOpen}>
<DialogContent className="p-0 max-w-2xl" withoutClose>
<DialogContent
className="p-0 max-w-2xl"
withoutClose
onEscapeKeyDown={(e) => {
if (postEditor.isSuggestionPopupOpen) {
e.preventDefault()
postEditor.closeSuggestionPopup()
}
}}
>
<ScrollArea className="px-4 h-full max-h-screen">
<div className="space-y-4 px-2 py-6">
<DialogHeader>