nicolium: allow previewing MFM

Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
nicole mikołajczyk
2026-03-17 21:22:08 +01:00
parent 87d23e0b50
commit 1865c40747
3 changed files with 24 additions and 3 deletions

View File

@ -22,6 +22,7 @@ import {
} from '@/stores/compose';
import { useInstance } from '@/stores/instance';
import { useModalsActions } from '@/stores/modals';
import { useSettings } from '@/stores/settings';
import toast from '@/toast';
import PreviewComposeContainer from '../containers/preview-compose-container';
@ -147,6 +148,7 @@ const ComposeForm = <ID extends string>({
const { configuration } = useInstance();
const { closeModal } = useModalsActions();
const actions = useComposeActions();
const { renderMfm } = useSettings();
const compose = useCompose(id);
const uploadCompose = useUploadCompose(id);
@ -387,7 +389,10 @@ const ComposeForm = <ID extends string>({
const actionsMenu: Menu = [];
if (features.createStatusPreview) {
if (
features.createStatusPreview ||
(renderMfm && compose.contentType === 'text/x.misskeymarkdown')
) {
actionsMenu.push({
text: intl.formatMessage(messages.preview),
action: handlePreview,

View File

@ -10,9 +10,9 @@ const settingsSchema = v.object({
onboarded: v.fallback(v.boolean(), false),
skinTone: v.fallback(skinToneSchema, 1),
reduceMotion: v.fallback(v.boolean(), false),
renderMfm: v.fallback(v.boolean(), false),
renderMfm: v.fallback(v.boolean(), true),
renderAdvancedMfm: v.fallback(v.boolean(), true),
renderAnimatedMfm: v.fallback(v.boolean(), true),
renderAnimatedMfm: v.fallback(v.boolean(), false),
underlineLinks: v.fallback(v.boolean(), false),
autoPlayGif: v.fallback(v.boolean(), true),
displayMedia: v.fallback(v.picklist(['default', 'hide_all', 'show_all']), 'default'),

View File

@ -714,6 +714,22 @@ const useSubmitCompose = (composeId: string) => {
const compose = actions.getCompose(composeId);
if (preview && compose.contentType === 'text/x.misskeymarkdown') {
const data: Partial<Status> = {
text: compose.text,
content: compose.text,
spoiler_text: compose.spoilerText,
media_attachments: compose.mediaAttachments,
content_type: 'text/x.misskeymarkdown',
emojis: [],
};
actions.updateCompose(composeId, (draft) => {
draft.preview = data;
});
onSuccess?.();
return;
}
const statusText = compose.text;
const media = compose.mediaAttachments;
const editedId = compose.editedId;