diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-10-17 20:12:00 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-17 20:12:00 +0900 |
| commit | 7199e6f4e0b3a2c2bc198e689c3e0cd0d0f0354a (patch) | |
| tree | 2263a06acec7fa21882366bae26d1a983ce21135 /src/client/components/page | |
| parent | CW の input でも投稿ショートカットが動作するように (#6690) (diff) | |
| download | sharkey-7199e6f4e0b3a2c2bc198e689c3e0cd0d0f0354a.tar.gz sharkey-7199e6f4e0b3a2c2bc198e689c3e0cd0d0f0354a.tar.bz2 sharkey-7199e6f4e0b3a2c2bc198e689c3e0cd0d0f0354a.zip | |
Migrate to Vue3 (#6587)
* Update reaction.vue
* fix bug
* wip
* wip
* wjio
* wip
* Revert "wip"
This reverts commit e427f2160adf4e8a4147006e25a89854edab0033.
* wip
* wip
* wip
* Update init.ts
* Update drive-window.vue
* wip
* wip
* Use PascalCase for components
* Use PascalCase for components
* update dep
* wip
* wip
* wip
* Update init.ts
* wip
* Update paging.ts
* Update test.vue
* watch deep
* wip
* lint
* wip
* wip
* wip
* wip
* wiop
* wip
* Update webpack.config.ts
* alllow null poll
* wip
* wip
* wip
* wiop
* UI redesign & refactor (#6714)
* wip
* wip
* wip
* wip
* wip
* Update drive.vue
* Update word-mute.vue
* wip
* wip
* wip
* clean up
* wip
* Update default.vue
* wip
* Update notes.vue
* Update mfm.ts
* Update index.home.vue
* Update post-form.vue
* Update post-form-attaches.vue
* wip
* Update post-form.vue
* Update sidebar.vue
* wip
* wip
* Update index.vue
* wip
* Update default.vue
* Update index.vue
* Update index.vue
* wip
* Update post-form-attaches.vue
* Update note.vue
* wip
* clean up
* Update notes.vue
* wip
* wip
* Update ja-JP.yml
* wip
* wip
* Update index.vue
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Update default.vue
* wip
* Update _dark.json5
* wip
* wip
* wip
* clean up
* wip
* wip
* Update index.vue
* Update test.vue
* wip
* wip
* fix
* wip
* wip
* wip
* wip
* clena yop
* wip
* wip
* Update store.ts
* Update messaging-room.vue
* Update default.widgets.vue
* fix
* wip
* wip
* Update modal.vue
* wip
* Update os.ts
* Update os.ts
* Update deck.vue
* Update init.ts
* wip
* Update ja-JP.yml
* v-sizeは単にwindowのresizeを監視するだけで良いかもしれない
* Update modal.vue
* wip
* Update tooltip.ts
* wip
* wip
* wip
* wip
* wip
* Update image-viewer.vue
* wip
* wip
* Update style.scss
* Update style.scss
* Update visitor.vue
* wip
* Update init.ts
* Update init.ts
* wip
* wip
* Update visitor.vue
* Update visitor.vue
* Update visitor.vue
* Update visitor.vue
* wip
* wip
* Update modal.vue
* Update header.vue
* Update menu.vue
* Update about.vue
* Update about-misskey.vue
* wip
* wip
* Update visitor.vue
* Update tooltip.ts
* wip
* Update drive.vue
* wip
* Update style.scss
* Update header.vue
* wip
* wip
* Update users.user.vue
* Update announcements.vue
* wip
* wip
* wip
* Update emojis.vue
* wip
* Update emojis.vue
* Update style.scss
* Update users.vue
* wip
* Update style.scss
* wip
* Update welcome.entrance.vue
* Update radio.vue
* Update size.ts
* Update emoji-edit-dialog.vue
* wip
* Update emojis.vue
* wip
* Update emojis.vue
* Update emojis.vue
* Update emojis.vue
* wip
* wip
* wip
* wip
* Update file-dialog.vue
* wip
* wip
* Update token-generate-window.vue
* Update notification-setting-window.vue
* wip
* wip
* Update _error_.vue
* Update ja-JP.yml
* wip
* wip
* Update store.ts
* Update emojis.vue
* Update emojis.vue
* Update emojis.vue
* Update announcements.vue
* Update store.ts
* wip
* Update page-editor.vue
* wip
* wip
* Update modal.vue
* wip
* Update select-file.ts
* Update timeline.vue
* Update emojis.vue
* Update os.ts
* wip
* Update user-select.vue
* Update mfm.ts
* Update get-file-info.ts
* Update drive.vue
* Update init.ts
* Update mfm.ts
* wip
* wip
* Update window.vue
* Update note.vue
* wip
* wip
* Update user-info.vue
* wip
* wip
* wip
* wip
* wip
* Update header.vue
* Update header.vue
* wip
* Update explore.vue
* wip
* wip
* wip
* Update webpack.config.ts
* wip
* wip
* wip
* wip
* wip
* wip
* Update autocomplete.ts
* wip
* wip
* wip
* Update toast.vue
* wip
* Update post-form-dialog.vue
* wip
* wip
* wip
* wip
* wip
* Update users.vue
* wip
* Update explore.vue
* wip
* wip
* wip
* Update package.json
* wip
* Update icon-dialog.vue
* wip
* wip
* Update user-preview.ts
* wip
* wip
* wip
* wip
* wip
* Update instance.vue
* Update user-name.vue
* Update federation.vue
* Update instance.vue
* wip
* wip
* Update tag.vue
* wip
* wip
* wip
* wip
* wip
* Update instance.vue
* wip
* Update os.ts
* Update os.ts
* wip
* wip
* wip
* Update router.ts
* wip
* Update init.ts
* Update note.vue
* Update messages.vue
* wip
* wip
* wip
* wip
* wip
* google
* wip
* wip
* wip
* wip
* Update theme-editor.vue
* wip
* wip
* Update room.vue
* Update channel-editor.vue
* wip
* Update window.vue
* Update window.vue
* wip
* Update window.vue
* Update window.vue
* wip
* Update menu.vue
* wip
* wip
* wip
* wip
* Update messaging-room.vue
* wip
* Update post-form.vue
* Update default.widgets.vue
* Update window.vue
* wip
Diffstat (limited to 'src/client/components/page')
| -rw-r--r-- | src/client/components/page/page.block.vue | 4 | ||||
| -rw-r--r-- | src/client/components/page/page.button.vue | 13 | ||||
| -rw-r--r-- | src/client/components/page/page.canvas.vue | 5 | ||||
| -rw-r--r-- | src/client/components/page/page.counter.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.if.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.image.vue | 5 | ||||
| -rw-r--r-- | src/client/components/page/page.number-input.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.post.vue | 19 | ||||
| -rw-r--r-- | src/client/components/page/page.radio-button.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.section.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.switch.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.text-input.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.text.vue | 11 | ||||
| -rw-r--r-- | src/client/components/page/page.textarea-input.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.textarea.vue | 7 | ||||
| -rw-r--r-- | src/client/components/page/page.vue | 19 |
16 files changed, 76 insertions, 63 deletions
diff --git a/src/client/components/page/page.block.vue b/src/client/components/page/page.block.vue index 0a4b068b63..412c91ee0d 100644 --- a/src/client/components/page/page.block.vue +++ b/src/client/components/page/page.block.vue @@ -3,7 +3,7 @@ </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import XText from './page.text.vue'; import XSection from './page.section.vue'; import XImage from './page.image.vue'; @@ -19,7 +19,7 @@ import XCounter from './page.counter.vue'; import XRadioButton from './page.radio-button.vue'; import XCanvas from './page.canvas.vue'; -export default Vue.extend({ +export default defineComponent({ components: { XText, XSection, XImage, XButton, XNumberInput, XTextInput, XTextareaInput, XTextarea, XPost, XSwitch, XIf, XCounter, XRadioButton, XCanvas }, diff --git a/src/client/components/page/page.button.vue b/src/client/components/page/page.button.vue index 83753b4e80..ff4c88554b 100644 --- a/src/client/components/page/page.button.vue +++ b/src/client/components/page/page.button.vue @@ -1,14 +1,15 @@ <template> <div> - <mk-button class="kudkigyw" @click="click()" :primary="value.primary">{{ hpml.interpolate(value.text) }}</mk-button> + <MkButton class="kudkigyw" @click="click()" :primary="value.primary">{{ hpml.interpolate(value.text) }}</MkButton> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import MkButton from '../ui/button.vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkButton }, @@ -24,14 +25,14 @@ export default Vue.extend({ click() { if (this.value.action === 'dialog') { this.hpml.eval(); - this.$root.dialog({ + os.dialog({ text: this.hpml.interpolate(this.value.content) }); } else if (this.value.action === 'resetRandom') { this.hpml.updateRandomSeed(Math.random()); this.hpml.eval(); } else if (this.value.action === 'pushEvent') { - this.$root.api('page-push', { + os.api('page-push', { pageId: this.hpml.page.id, event: this.value.event, ...(this.value.var ? { @@ -39,7 +40,7 @@ export default Vue.extend({ } : {}) }); - this.$root.dialog({ + os.dialog({ type: 'success', text: this.hpml.interpolate(this.value.message) }); diff --git a/src/client/components/page/page.canvas.vue b/src/client/components/page/page.canvas.vue index 2d7cc1f8f9..d3bf5c1de6 100644 --- a/src/client/components/page/page.canvas.vue +++ b/src/client/components/page/page.canvas.vue @@ -5,9 +5,10 @@ </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ props: { value: { required: true diff --git a/src/client/components/page/page.counter.vue b/src/client/components/page/page.counter.vue index a3674b87a2..9eee47c4ec 100644 --- a/src/client/components/page/page.counter.vue +++ b/src/client/components/page/page.counter.vue @@ -1,14 +1,15 @@ <template> <div> - <mk-button class="llumlmnx" @click="click()">{{ hpml.interpolate(value.text) }}</mk-button> + <MkButton class="llumlmnx" @click="click()">{{ hpml.interpolate(value.text) }}</MkButton> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import MkButton from '../ui/button.vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkButton }, diff --git a/src/client/components/page/page.if.vue b/src/client/components/page/page.if.vue index 6bdf9cd97d..1e0c841541 100644 --- a/src/client/components/page/page.if.vue +++ b/src/client/components/page/page.if.vue @@ -1,13 +1,14 @@ <template> <div v-show="hpml.vars[value.var]"> - <x-block v-for="child in value.children" :value="child" :page="page" :hpml="hpml" :key="child.id" :h="h"/> + <XBlock v-for="child in value.children" :value="child" :page="page" :hpml="hpml" :key="child.id" :h="h"/> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ props: { value: { required: true diff --git a/src/client/components/page/page.image.vue b/src/client/components/page/page.image.vue index f515958515..ddcce5c37b 100644 --- a/src/client/components/page/page.image.vue +++ b/src/client/components/page/page.image.vue @@ -5,9 +5,10 @@ </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ props: { value: { required: true diff --git a/src/client/components/page/page.number-input.vue b/src/client/components/page/page.number-input.vue index 56899b1b20..cf4000010f 100644 --- a/src/client/components/page/page.number-input.vue +++ b/src/client/components/page/page.number-input.vue @@ -1,14 +1,15 @@ <template> <div> - <mk-input class="kudkigyw" v-model="v" type="number">{{ hpml.interpolate(value.text) }}</mk-input> + <MkInput class="kudkigyw" v-model:value="v" type="number">{{ hpml.interpolate(value.text) }}</MkInput> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import MkInput from '../ui/input.vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkInput }, diff --git a/src/client/components/page/page.post.vue b/src/client/components/page/page.post.vue index da5bc8bfab..e2b712667a 100644 --- a/src/client/components/page/page.post.vue +++ b/src/client/components/page/page.post.vue @@ -1,18 +1,19 @@ <template> <div class="ngbfujlo"> - <mk-textarea :value="text" readonly style="margin: 0;"></mk-textarea> - <mk-button class="button" primary @click="post()" :disabled="posting || posted"><fa v-if="posted" :icon="faCheck"/><fa v-else :icon="faPaperPlane"/></mk-button> + <MkTextarea :value="text" readonly style="margin: 0;"></MkTextarea> + <MkButton class="button" primary @click="post()" :disabled="posting || posted"><Fa v-if="posted" :icon="faCheck"/><Fa v-else :icon="faPaperPlane"/></MkButton> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import { faCheck, faPaperPlane } from '@fortawesome/free-solid-svg-icons'; import MkTextarea from '../ui/textarea.vue'; import MkButton from '../ui/button.vue'; -import { apiUrl } from '../../config'; +import { apiUrl } from '@/config'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkTextarea, MkButton, @@ -44,7 +45,7 @@ export default Vue.extend({ methods: { upload() { return new Promise((ok) => { - const dialog = this.$root.dialog({ + const dialog = os.dialog({ type: 'waiting', text: this.$t('uploading') + '...', showOkButton: false, @@ -75,15 +76,11 @@ export default Vue.extend({ async post() { this.posting = true; const file = this.value.attachCanvasImage ? await this.upload() : null; - this.$root.api('notes/create', { + os.apiWithDialog('notes/create', { text: this.text === '' ? null : this.text, fileIds: file ? [file.id] : undefined, }).then(() => { this.posted = true; - this.$root.dialog({ - type: 'success', - iconOnly: true, autoClose: true - }); }); } } diff --git a/src/client/components/page/page.radio-button.vue b/src/client/components/page/page.radio-button.vue index 99d9ead385..9341c2421e 100644 --- a/src/client/components/page/page.radio-button.vue +++ b/src/client/components/page/page.radio-button.vue @@ -1,15 +1,16 @@ <template> <div> <div>{{ hpml.interpolate(value.title) }}</div> - <mk-radio v-for="x in value.values" v-model="v" :value="x" :key="x">{{ x }}</mk-radio> + <MkRadio v-for="x in value.values" v-model:value="v" :value="x" :key="x">{{ x }}</MkRadio> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import MkRadio from '../ui/radio.vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkRadio }, diff --git a/src/client/components/page/page.section.vue b/src/client/components/page/page.section.vue index c9758a0dbe..d31610bc87 100644 --- a/src/client/components/page/page.section.vue +++ b/src/client/components/page/page.section.vue @@ -3,15 +3,16 @@ <component :is="'h' + h">{{ value.title }}</component> <div class="children"> - <x-block v-for="child in value.children" :value="child" :page="page" :hpml="hpml" :key="child.id" :h="h + 1"/> + <XBlock v-for="child in value.children" :value="child" :page="page" :hpml="hpml" :key="child.id" :h="h + 1"/> </div> </section> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ props: { value: { required: true diff --git a/src/client/components/page/page.switch.vue b/src/client/components/page/page.switch.vue index 9f04ad19c4..33e4371695 100644 --- a/src/client/components/page/page.switch.vue +++ b/src/client/components/page/page.switch.vue @@ -1,14 +1,15 @@ <template> <div class="hkcxmtwj"> - <mk-switch v-model="v">{{ hpml.interpolate(value.text) }}</mk-switch> + <MkSwitch v-model:value="v">{{ hpml.interpolate(value.text) }}</MkSwitch> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import MkSwitch from '../ui/switch.vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkSwitch }, diff --git a/src/client/components/page/page.text-input.vue b/src/client/components/page/page.text-input.vue index 0d09f9fb5e..f0fe70e335 100644 --- a/src/client/components/page/page.text-input.vue +++ b/src/client/components/page/page.text-input.vue @@ -1,14 +1,15 @@ <template> <div> - <mk-input class="kudkigyw" v-model="v" type="text">{{ hpml.interpolate(value.text) }}</mk-input> + <MkInput class="kudkigyw" v-model:value="v" type="text">{{ hpml.interpolate(value.text) }}</MkInput> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import MkInput from '../ui/input.vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkInput }, diff --git a/src/client/components/page/page.text.vue b/src/client/components/page/page.text.vue index 66e2acb90a..fff840f743 100644 --- a/src/client/components/page/page.text.vue +++ b/src/client/components/page/page.text.vue @@ -1,16 +1,19 @@ <template> <div class="mrdgzndn"> - <mfm :text="text" :is-note="false" :i="$store.state.i" :key="text"/> - <mk-url-preview v-for="url in urls" :url="url" :key="url" class="url"/> + <Mfm :text="text" :is-note="false" :i="$store.state.i" :key="text"/> + <MkUrlPreview v-for="url in urls" :url="url" :key="url" class="url"/> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineAsyncComponent, defineComponent } from 'vue'; import { parse } from '../../../mfm/parse'; import { unique } from '../../../prelude/array'; -export default Vue.extend({ +export default defineComponent({ + components: { + MkUrlPreview: defineAsyncComponent(() => import('@/components/url-preview.vue')), + }, props: { value: { required: true diff --git a/src/client/components/page/page.textarea-input.vue b/src/client/components/page/page.textarea-input.vue index 5e0cc43779..9e3283aa08 100644 --- a/src/client/components/page/page.textarea-input.vue +++ b/src/client/components/page/page.textarea-input.vue @@ -1,14 +1,15 @@ <template> <div> - <mk-textarea v-model="v">{{ hpml.interpolate(value.text) }}</mk-textarea> + <MkTextarea v-model:value="v">{{ hpml.interpolate(value.text) }}</MkTextarea> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import MkTextarea from '../ui/textarea.vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkTextarea }, diff --git a/src/client/components/page/page.textarea.vue b/src/client/components/page/page.textarea.vue index abb30d78ee..e2929de5f0 100644 --- a/src/client/components/page/page.textarea.vue +++ b/src/client/components/page/page.textarea.vue @@ -1,12 +1,13 @@ <template> -<mk-textarea :value="text" readonly></mk-textarea> +<MkTextarea :value="text" readonly></MkTextarea> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import MkTextarea from '../ui/textarea.vue'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { MkTextarea }, diff --git a/src/client/components/page/page.vue b/src/client/components/page/page.vue index b3cc01ec22..f7f565a8d1 100644 --- a/src/client/components/page/page.vue +++ b/src/client/components/page/page.vue @@ -1,19 +1,20 @@ <template> <div class="iroscrza" :class="{ center: page.alignCenter, serif: page.font === 'serif' }" v-if="hpml"> - <x-block v-for="child in page.content" :value="child" @input="v => updateBlock(v)" :page="page" :hpml="hpml" :key="child.id" :h="2"/> + <XBlock v-for="child in page.content" :value="child" @update:value="v => updateBlock(v)" :page="page" :hpml="hpml" :key="child.id" :h="2"/> </div> </template> <script lang="ts"> -import Vue from 'vue'; +import { defineComponent } from 'vue'; import { parse } from '@syuilo/aiscript'; import { faHeart as faHeartS } from '@fortawesome/free-solid-svg-icons'; import { faHeart } from '@fortawesome/free-regular-svg-icons'; import XBlock from './page.block.vue'; -import { Hpml } from '../../scripts/hpml/evaluator'; -import { url } from '../../config'; +import { Hpml } from '@/scripts/hpml/evaluator'; +import { url } from '@/config'; +import * as os from '@/os'; -export default Vue.extend({ +export default defineComponent({ components: { XBlock }, @@ -33,7 +34,7 @@ export default Vue.extend({ }, created() { - this.hpml = new Hpml(this, this.page, { + this.hpml = new Hpml(this.page, { randomSeed: Math.random(), visitor: this.$store.state.i, url: url, @@ -49,7 +50,7 @@ export default Vue.extend({ ast = parse(this.page.script); } catch (e) { console.error(e); - /*this.$root.dialog({ + /*os.dialog({ type: 'error', text: 'Syntax error :(' });*/ @@ -59,7 +60,7 @@ export default Vue.extend({ this.hpml.eval(); }).catch(e => { console.error(e); - /*this.$root.dialog({ + /*os.dialog({ type: 'error', text: e });*/ @@ -70,7 +71,7 @@ export default Vue.extend({ }); }, - beforeDestroy() { + beforeUnmount() { if (this.hpml.aiscript) this.hpml.aiscript.abort(); }, }); |