feat: auto switch to editor on preview click

This commit is contained in:
codytseng
2025-10-12 15:15:13 +08:00
parent 2d1e4507f4
commit 9bba055e92

View File

@@ -13,7 +13,7 @@ import Text from '@tiptap/extension-text'
import { TextSelection } from '@tiptap/pm/state' import { TextSelection } from '@tiptap/pm/state'
import { EditorContent, useEditor } from '@tiptap/react' import { EditorContent, useEditor } from '@tiptap/react'
import { Event } from 'nostr-tools' import { Event } from 'nostr-tools'
import { Dispatch, forwardRef, SetStateAction, useImperativeHandle } from 'react' import { Dispatch, forwardRef, SetStateAction, useImperativeHandle, useState } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { ClipboardAndDropHandler } from './ClipboardAndDropHandler' import { ClipboardAndDropHandler } from './ClipboardAndDropHandler'
import Emoji from './Emoji' import Emoji from './Emoji'
@@ -57,6 +57,7 @@ const PostTextarea = forwardRef<
ref ref
) => { ) => {
const { t } = useTranslation() const { t } = useTranslation()
const [tabValue, setTabValue] = useState('edit')
const editor = useEditor({ const editor = useEditor({
extensions: [ extensions: [
Document, Document,
@@ -158,7 +159,12 @@ const PostTextarea = forwardRef<
} }
return ( return (
<Tabs defaultValue="edit" className="space-y-2"> <Tabs
defaultValue="edit"
value={tabValue}
onValueChange={(v) => setTabValue(v)}
className="space-y-2"
>
<TabsList> <TabsList>
<TabsTrigger value="edit">{t('Edit')}</TabsTrigger> <TabsTrigger value="edit">{t('Edit')}</TabsTrigger>
<TabsTrigger value="preview">{t('Preview')}</TabsTrigger> <TabsTrigger value="preview">{t('Preview')}</TabsTrigger>
@@ -166,7 +172,13 @@ const PostTextarea = forwardRef<
<TabsContent value="edit"> <TabsContent value="edit">
<EditorContent className="tiptap" editor={editor} /> <EditorContent className="tiptap" editor={editor} />
</TabsContent> </TabsContent>
<TabsContent value="preview"> <TabsContent
value="preview"
onClick={() => {
setTabValue('edit')
editor.commands.focus()
}}
>
<Preview content={text} className={className} /> <Preview content={text} className={className} />
</TabsContent> </TabsContent>
</Tabs> </Tabs>