diff --git a/packages/frontend/src/components/MkAsUi.vue b/packages/frontend/src/components/MkAsUi.vue index 7670b54f1..4239cc609 100644 --- a/packages/frontend/src/components/MkAsUi.vue +++ b/packages/frontend/src/components/MkAsUi.vue @@ -43,6 +43,7 @@ SPDX-License-Identifier: AGPL-3.0-only fixed :instant="true" :initialText="c.form.text" + :initialCw="c.form.cw" /> @@ -97,6 +98,7 @@ function onSwitchUpdate(v) { function openPostForm() { os.post({ initialText: c.form.text, + initialCw: c.form.cw, instant: true, }); } diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 9e5c4ca3f..e6d55ae98 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -135,6 +135,7 @@ const props = withDefaults(defineProps<{ mention?: Misskey.entities.User; specified?: Misskey.entities.User; initialText?: string; + initialCw?: string; initialVisibility?: (typeof Misskey.noteVisibilities)[number]; initialFiles?: Misskey.entities.DriveFile[]; initialLocalOnly?: boolean; @@ -177,10 +178,10 @@ const poll = ref<{ expiresAt: string | null; expiredAfter: string | null; } | null>(null); -const useCw = ref(false); +const useCw = ref(!!props.initialCw); const showPreview = ref(defaultStore.state.showPreview); watch(showPreview, () => defaultStore.set('showPreview', showPreview.value)); -const cw = ref(null); +const cw = ref(props.initialCw ?? null); const localOnly = ref(props.initialLocalOnly ?? defaultStore.state.rememberNoteVisibility ? defaultStore.state.localOnly : defaultStore.state.defaultNoteLocalOnly); const visibility = ref(props.initialVisibility ?? (defaultStore.state.rememberNoteVisibility ? defaultStore.state.visibility : defaultStore.state.defaultNoteVisibility) as typeof Misskey.noteVisibilities[number]); const visibleUsers = ref([]); diff --git a/packages/frontend/src/components/MkPostFormDialog.vue b/packages/frontend/src/components/MkPostFormDialog.vue index a0fad1ab4..7734e5a6d 100644 --- a/packages/frontend/src/components/MkPostFormDialog.vue +++ b/packages/frontend/src/components/MkPostFormDialog.vue @@ -22,6 +22,7 @@ const props = defineProps<{ mention?: Misskey.entities.User; specified?: Misskey.entities.User; initialText?: string; + initialCw?: string; initialVisibility?: typeof Misskey.noteVisibilities; initialFiles?: Misskey.entities.DriveFile[]; initialLocalOnly?: boolean; diff --git a/packages/frontend/src/scripts/aiscript/ui.ts b/packages/frontend/src/scripts/aiscript/ui.ts index d326b956e..75b924843 100644 --- a/packages/frontend/src/scripts/aiscript/ui.ts +++ b/packages/frontend/src/scripts/aiscript/ui.ts @@ -121,6 +121,7 @@ export type AsUiPostFormButton = AsUiComponentBase & { rounded?: boolean; form?: { text: string; + cw?: string; }; }; @@ -128,6 +129,7 @@ export type AsUiPostForm = AsUiComponentBase & { type: 'postForm'; form?: { text: string; + cw?: string; }; }; @@ -454,8 +456,11 @@ function getPostFormButtonOptions(def: values.Value | undefined, call: (fn: valu const getForm = () => { const text = form!.value.get('text'); utils.assertString(text); + const cw = form!.value.get('cw'); + if (cw) utils.assertString(cw); return { text: text.value, + cw: cw?.value, }; }; @@ -478,8 +483,11 @@ function getPostFormOptions(def: values.Value | undefined, call: (fn: values.VFn const getForm = () => { const text = form!.value.get('text'); utils.assertString(text); + const cw = form!.value.get('cw'); + if (cw) utils.assertString(cw); return { text: text.value, + cw: cw?.value, }; };