summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-16 10:04:10 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-01-16 10:04:10 +0900
commitd60029636011a26a6da8e09d7cb77c0bda4c81b5 (patch)
treeee5301849321d1badd053ffbb9a1d25667af4f1d /packages
parentUpdate CHANGELOG.md (diff)
downloadmisskey-d60029636011a26a6da8e09d7cb77c0bda4c81b5.tar.gz
misskey-d60029636011a26a6da8e09d7cb77c0bda4c81b5.tar.bz2
misskey-d60029636011a26a6da8e09d7cb77c0bda4c81b5.zip
enhance(client): flash作成時のプリセットを追加
Diffstat (limited to 'packages')
-rw-r--r--packages/frontend/src/components/MkAsUi.vue2
-rw-r--r--packages/frontend/src/pages/flash/flash-edit.vue53
-rw-r--r--packages/frontend/src/pages/flash/flash.vue2
-rw-r--r--packages/frontend/src/pages/scratchpad.vue2
-rw-r--r--packages/frontend/src/widgets/WidgetAiscriptApp.vue2
5 files changed, 56 insertions, 5 deletions
diff --git a/packages/frontend/src/components/MkAsUi.vue b/packages/frontend/src/components/MkAsUi.vue
index 5844a18633..6aaf2f956c 100644
--- a/packages/frontend/src/components/MkAsUi.vue
+++ b/packages/frontend/src/components/MkAsUi.vue
@@ -32,7 +32,7 @@
<template v-if="c.caption" #caption>{{ c.caption }}</template>
<option v-for="item in c.items" :key="item.value" :value="item.value">{{ item.text }}</option>
</MkSelect>
- <MkButton v-else-if="c.type === 'postFormButton'" :primary="c.primary" :rounded="c.rounded" :small="size === 'small'" @click="openPostForm">{{ c.text }}</MkButton>
+ <MkButton v-else-if="c.type === 'postFormButton'" :primary="c.primary" :rounded="c.rounded" :small="size === 'small'" inline @click="openPostForm">{{ c.text }}</MkButton>
<MkFolder v-else-if="c.type === 'folder'" :default-open="c.opened">
<template #label>{{ c.title }}</template>
<template v-for="child in c.children" :key="child">
diff --git a/packages/frontend/src/pages/flash/flash-edit.vue b/packages/frontend/src/pages/flash/flash-edit.vue
index 5e2ca9a9f3..1ce7e46962 100644
--- a/packages/frontend/src/pages/flash/flash-edit.vue
+++ b/packages/frontend/src/pages/flash/flash-edit.vue
@@ -2,13 +2,14 @@
<MkStickyContainer>
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700">
- <div class="_gaps_m">
+ <div class="_gaps">
<MkInput v-model="title">
<template #label>{{ i18n.ts._play.title }}</template>
</MkInput>
<MkTextarea v-model="summary">
<template #label>{{ i18n.ts._play.summary }}</template>
</MkTextarea>
+ <MkButton primary @click="selectPreset">{{ i18n.ts.selectFromPresets }}<i class="ti ti-chevron-down"></i></MkButton>
<MkTextarea v-model="script" class="_monospace" tall spellcheck="false">
<template #label>{{ i18n.ts._play.script }}</template>
</MkTextarea>
@@ -67,6 +68,56 @@ Ui:render([
])
`);
+function selectPreset(ev: MouseEvent) {
+ os.popupMenu([{
+ text: 'Omikuji',
+ action: () => {
+ script = `/// @ 0.12.2
+// ユーザーごとに日替わりのおみくじのプリセット
+
+// 選択肢
+let choices = [
+ "ギガ吉"
+ "大吉"
+ "吉"
+ "中吉"
+ "小吉"
+ "末吉"
+ "凶"
+ "大凶"
+]
+
+// シードが「ユーザーID+今日の日付」である乱数生成器を用意
+let random = Math:gen_rng(\`{USER_ID}{Date:day()}\`)
+
+// ランダムに選択肢を選ぶ
+let chosen = choices[random(0 (choices.len - 1))]
+
+// 結果のテキスト
+let result = \`今日のあなたの運勢は **{chosen}** です。\`
+
+// UIを表示
+Ui:render([
+ Ui:C:container({
+ align: 'center'
+ children: [
+ Ui:C:mfm({ text: result })
+ Ui:C:postFormButton({
+ text: "投稿する"
+ rounded: true
+ primary: true
+ form: {
+ text: \`{result}{Str:lf}{THIS_URL}\`
+ }
+ })
+ ]
+ })
+])
+`;
+ },
+ }], ev.currentTarget ?? ev.target);
+}
+
async function save() {
if (flash) {
os.apiWithDialog('flash/update', {
diff --git a/packages/frontend/src/pages/flash/flash.vue b/packages/frontend/src/pages/flash/flash.vue
index ebd470ca4f..0e785f259c 100644
--- a/packages/frontend/src/pages/flash/flash.vue
+++ b/packages/frontend/src/pages/flash/flash.vue
@@ -130,7 +130,7 @@ const parser = new Parser();
let started = $ref(false);
let aiscript = $shallowRef<Interpreter | null>(null);
const root = ref<AsUiRoot>();
-const components: Ref<AsUiComponent>[] = [];
+const components: Ref<AsUiComponent>[] = $ref([]);
function start() {
started = true;
diff --git a/packages/frontend/src/pages/scratchpad.vue b/packages/frontend/src/pages/scratchpad.vue
index ff5f06c8da..bd68df724e 100644
--- a/packages/frontend/src/pages/scratchpad.vue
+++ b/packages/frontend/src/pages/scratchpad.vue
@@ -53,7 +53,7 @@ let aiscript: Interpreter;
const code = ref('');
const logs = ref<any[]>([]);
const root = ref<AsUiRoot>();
-let components: Ref<AsUiComponent>[] = [];
+let components: Ref<AsUiComponent>[] = $ref([]);
let uiKey = $ref(0);
const saved = miLocalStorage.getItem('scratchpad');
diff --git a/packages/frontend/src/widgets/WidgetAiscriptApp.vue b/packages/frontend/src/widgets/WidgetAiscriptApp.vue
index 1445e5b1ad..406fb92d86 100644
--- a/packages/frontend/src/widgets/WidgetAiscriptApp.vue
+++ b/packages/frontend/src/widgets/WidgetAiscriptApp.vue
@@ -50,7 +50,7 @@ const { widgetProps, configure } = useWidgetPropsManager(name,
const parser = new Parser();
const root = ref<AsUiRoot>();
-const components: Ref<AsUiComponent>[] = [];
+const components: Ref<AsUiComponent>[] = $ref([]);
async function run() {
const aiscript = new Interpreter({