-
- {t('A special note for picture-first clients like Olas')}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-function PictureUploader({
- pictureInfos,
- setPictureInfos
-}: {
- pictureInfos: { url: string; tags: string[][] }[]
- setPictureInfos: Dispatch<
- SetStateAction<
- {
- url: string
- tags: string[][]
- }[]
- >
- >
-}) {
- const [uploading, setUploading] = useState(false)
-
- return (
-
- {pictureInfos.map(({ url }, index) => (
-
-
-
-
- ))}
-
{
- setPictureInfos((prev) => [...prev, { url, tags }])
- }}
- onUploadingChange={setUploading}
- >
-
-
-
- )
-}
diff --git a/src/components/PostEditor/NormalPostContent.tsx b/src/components/PostEditor/PostContent.tsx
similarity index 64%
rename from src/components/PostEditor/NormalPostContent.tsx
rename to src/components/PostEditor/PostContent.tsx
index 7b4808f8..ab125122 100644
--- a/src/components/PostEditor/NormalPostContent.tsx
+++ b/src/components/PostEditor/PostContent.tsx
@@ -1,24 +1,22 @@
import Note from '@/components/Note'
import { Button } from '@/components/ui/button'
import { ScrollArea } from '@/components/ui/scroll-area'
-import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
import { useToast } from '@/hooks/use-toast'
import { createCommentDraftEvent, createShortTextNoteDraftEvent } from '@/lib/draft-event'
import { useNostr } from '@/providers/NostrProvider'
import postContentCache from '@/services/post-content-cache.service'
import { ChevronDown, ImageUp, LoaderCircle } from 'lucide-react'
import { Event, kinds } from 'nostr-tools'
-import { useEffect, useRef, useState } from 'react'
+import { useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
-import PostTextarea from '../PostTextarea'
import Mentions from './Mentions'
+import { usePostEditor } from './PostEditorProvider'
import PostOptions from './PostOptions'
-import Preview from './Preview'
+import PostTextarea, { TPostTextareaHandle } from './PostTextarea'
import SendOnlyToSwitch from './SendOnlyToSwitch'
import Uploader from './Uploader'
-import { preprocessContent } from './utils'
-export default function NormalPostContent({
+export default function PostContent({
defaultContent = '',
parentEvent,
close
@@ -30,38 +28,15 @@ export default function NormalPostContent({
const { t } = useTranslation()
const { toast } = useToast()
const { publish, checkLogin } = useNostr()
- const [content, setContent] = useState('')
- const [processedContent, setProcessedContent] = useState('')
- const [pictureInfos, setPictureInfos] = useState<{ url: string; tags: string[][] }[]>([])
+ const { uploadingFiles, setUploadingFiles } = usePostEditor()
+ const [text, setText] = useState('')
+ const textareaRef = useRef