summaryrefslogtreecommitdiff
path: root/packages/frontend/src/widgets
diff options
context:
space:
mode:
authormisskey-release-bot[bot] <157398866+misskey-release-bot[bot]@users.noreply.github.com>2025-09-08 12:29:29 +0000
committerGitHub <noreply@github.com>2025-09-08 12:29:29 +0000
commit1eab314b17525987835ab495a94c705abd6ca78f (patch)
treebf6e8f3ce5c75c17bfdca9e38cc8316a139087da /packages/frontend/src/widgets
parentMerge pull request #16335 from misskey-dev/develop (diff)
parentRelease: 2025.9.0 (diff)
downloadmisskey-1eab314b17525987835ab495a94c705abd6ca78f.tar.gz
misskey-1eab314b17525987835ab495a94c705abd6ca78f.tar.bz2
misskey-1eab314b17525987835ab495a94c705abd6ca78f.zip
Merge pull request #16521 from misskey-dev/develop
Release: 2025.9.0
Diffstat (limited to 'packages/frontend/src/widgets')
-rw-r--r--packages/frontend/src/widgets/WidgetAiscriptApp.vue15
-rw-r--r--packages/frontend/src/widgets/WidgetButton.vue4
-rw-r--r--packages/frontend/src/widgets/WidgetNotifications.vue2
-rw-r--r--packages/frontend/src/widgets/WidgetRssTicker.vue2
4 files changed, 12 insertions, 11 deletions
diff --git a/packages/frontend/src/widgets/WidgetAiscriptApp.vue b/packages/frontend/src/widgets/WidgetAiscriptApp.vue
index fdd4eaae06..18acd966fd 100644
--- a/packages/frontend/src/widgets/WidgetAiscriptApp.vue
+++ b/packages/frontend/src/widgets/WidgetAiscriptApp.vue
@@ -7,25 +7,26 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkContainer :showHeader="widgetProps.showHeader" class="mkw-aiscriptApp">
<template #header>App</template>
<div :class="$style.root">
- <MkAsUi v-if="root" :component="root" :components="components" size="small"/>
+ <div v-if="isSyntaxError">Syntax error :(</div>
+ <MkAsUi v-else-if="root" :component="root" :components="components" size="small"/>
</div>
</MkContainer>
</template>
<script lang="ts" setup>
import { onMounted, ref, watch } from 'vue';
-import type { Ref } from 'vue';
import { Interpreter, Parser } from '@syuilo/aiscript';
import { useWidgetPropsManager } from './widget.js';
+import type { Ref } from 'vue';
import type { WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget.js';
import type { FormWithDefault, GetFormResultType } from '@/utility/form.js';
+import type { AsUiComponent, AsUiRoot } from '@/aiscript/ui.js';
import * as os from '@/os.js';
import { aiScriptReadline, createAiScriptEnv } from '@/aiscript/api.js';
import { $i } from '@/i.js';
import MkAsUi from '@/components/MkAsUi.vue';
import MkContainer from '@/components/MkContainer.vue';
import { registerAsUiLib } from '@/aiscript/ui.js';
-import type { AsUiComponent, AsUiRoot } from '@/aiscript/ui.js';
const name = 'aiscriptApp';
@@ -56,8 +57,11 @@ const parser = new Parser();
const root = ref<AsUiRoot>();
const components = ref<Ref<AsUiComponent>[]>([]);
+const isSyntaxError = ref(false);
async function run() {
+ isSyntaxError.value = false;
+
const aiscript = new Interpreter({
...createAiScriptEnv({
storageKey: 'widget',
@@ -80,10 +84,7 @@ async function run() {
try {
ast = parser.parse(widgetProps.script);
} catch (err) {
- os.alert({
- type: 'error',
- text: 'Syntax error :(',
- });
+ isSyntaxError.value = true;
return;
}
try {
diff --git a/packages/frontend/src/widgets/WidgetButton.vue b/packages/frontend/src/widgets/WidgetButton.vue
index e88a960f87..f8ae03c5fd 100644
--- a/packages/frontend/src/widgets/WidgetButton.vue
+++ b/packages/frontend/src/widgets/WidgetButton.vue
@@ -52,7 +52,7 @@ const { widgetProps, configure } = useWidgetPropsManager(name,
const parser = new Parser();
-const run = async () => {
+async function run() {
const aiscript = new Interpreter(createAiScriptEnv({
storageKey: 'widget',
token: $i?.token,
@@ -84,7 +84,7 @@ const run = async () => {
text: err instanceof Error ? err.message : String(err),
});
}
-};
+}
defineExpose<WidgetComponentExpose>({
name,
diff --git a/packages/frontend/src/widgets/WidgetNotifications.vue b/packages/frontend/src/widgets/WidgetNotifications.vue
index 8fb7968238..b588bcb029 100644
--- a/packages/frontend/src/widgets/WidgetNotifications.vue
+++ b/packages/frontend/src/widgets/WidgetNotifications.vue
@@ -17,8 +17,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { defineAsyncComponent } from 'vue';
-import type { notificationTypes as notificationTypes_typeReferenceOnly } from '@@/js/const.js';
import { useWidgetPropsManager } from './widget.js';
+import type { notificationTypes as notificationTypes_typeReferenceOnly } from 'misskey-js';
import type { WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget.js';
import type { FormWithDefault, GetFormResultType } from '@/utility/form.js';
import MkContainer from '@/components/MkContainer.vue';
diff --git a/packages/frontend/src/widgets/WidgetRssTicker.vue b/packages/frontend/src/widgets/WidgetRssTicker.vue
index 9d4feb784c..95f82f7d7b 100644
--- a/packages/frontend/src/widgets/WidgetRssTicker.vue
+++ b/packages/frontend/src/widgets/WidgetRssTicker.vue
@@ -31,7 +31,7 @@ import { ref, watch, computed } from 'vue';
import * as Misskey from 'misskey-js';
import { useWidgetPropsManager } from './widget.js';
import type { WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget.js';
-import MarqueeText from '@/components/MkMarqueeText.vue';
+import MkMarqueeText from '@/components/MkMarqueeText.vue';
import type { FormWithDefault, GetFormResultType } from '@/utility/form.js';
import MkContainer from '@/components/MkContainer.vue';
import { shuffle } from '@/utility/shuffle.js';