summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-01-15 16:40:15 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-01-15 16:40:15 +0900
commitffc07a08d76c3b11f5ab7e5fc03ff1ec17f8daf0 (patch)
treeabc1836985a87b3a95fe1f222a60cdbf9fb6b748
parentwip: refactor(client): migrate components to composition api (diff)
downloadmisskey-ffc07a08d76c3b11f5ab7e5fc03ff1ec17f8daf0.tar.gz
misskey-ffc07a08d76c3b11f5ab7e5fc03ff1ec17f8daf0.tar.bz2
misskey-ffc07a08d76c3b11f5ab7e5fc03ff1ec17f8daf0.zip
wip: refactor(client): migrate components to composition api
-rw-r--r--packages/client/src/pages/my-antennas/create.vue60
-rw-r--r--packages/client/src/pages/my-clips/index.vue103
-rw-r--r--packages/client/src/pages/my-lists/index.vue63
3 files changed, 101 insertions, 125 deletions
diff --git a/packages/client/src/pages/my-antennas/create.vue b/packages/client/src/pages/my-antennas/create.vue
index 173807475a..427c9935c3 100644
--- a/packages/client/src/pages/my-antennas/create.vue
+++ b/packages/client/src/pages/my-antennas/create.vue
@@ -4,45 +4,37 @@
</div>
</template>
-<script lang="ts">
-import { defineComponent } from 'vue';
-import MkButton from '@/components/ui/button.vue';
+<script lang="ts" setup>
+import { } from 'vue';
import XAntenna from './editor.vue';
import * as symbols from '@/symbols';
+import { i18n } from '@/i18n';
+import { router } from '@/router';
-export default defineComponent({
- components: {
- MkButton,
- XAntenna,
- },
+let draft = $ref({
+ name: '',
+ src: 'all',
+ userListId: null,
+ userGroupId: null,
+ users: [],
+ keywords: [],
+ excludeKeywords: [],
+ withReplies: false,
+ caseSensitive: false,
+ withFile: false,
+ notify: false
+});
- data() {
- return {
- [symbols.PAGE_INFO]: {
- title: this.$ts.manageAntennas,
- icon: 'fas fa-satellite',
- },
- draft: {
- name: '',
- src: 'all',
- userListId: null,
- userGroupId: null,
- users: [],
- keywords: [],
- excludeKeywords: [],
- withReplies: false,
- caseSensitive: false,
- withFile: false,
- notify: false
- },
- };
- },
+function onAntennaCreated() {
+ router.push('/my/antennas');
+}
- methods: {
- onAntennaCreated() {
- this.$router.push('/my/antennas');
- },
- }
+defineExpose({
+ [symbols.PAGE_INFO]: {
+ title: i18n.locale.manageAntennas,
+ icon: 'fas fa-satellite',
+ bg: 'var(--bg)',
+ },
});
</script>
diff --git a/packages/client/src/pages/my-clips/index.vue b/packages/client/src/pages/my-clips/index.vue
index ccfb9095d1..97b563f6f8 100644
--- a/packages/client/src/pages/my-clips/index.vue
+++ b/packages/client/src/pages/my-clips/index.vue
@@ -3,7 +3,7 @@
<div class="qtcaoidl">
<MkButton primary class="add" @click="create"><i class="fas fa-plus"></i> {{ $ts.add }}</MkButton>
- <MkPagination v-slot="{items}" ref="list" :pagination="pagination" class="list">
+ <MkPagination v-slot="{items}" ref="pagingComponent" :pagination="pagination" class="list">
<MkA v-for="item in items" :key="item.id" :to="`/clips/${item.id}`" class="item _panel _gap">
<b>{{ item.name }}</b>
<div v-if="item.description" class="description">{{ item.description }}</div>
@@ -13,71 +13,64 @@
</MkSpacer>
</template>
-<script lang="ts">
-import { defineComponent } from 'vue';
+<script lang="ts" setup>
+import { } from 'vue';
import MkPagination from '@/components/ui/pagination.vue';
import MkButton from '@/components/ui/button.vue';
import * as os from '@/os';
import * as symbols from '@/symbols';
+import i18n from '@/components/global/i18n';
-export default defineComponent({
- components: {
- MkPagination,
- MkButton,
- },
-
- data() {
- return {
- [symbols.PAGE_INFO]: {
- title: this.$ts.clip,
- icon: 'fas fa-paperclip',
- bg: 'var(--bg)',
- action: {
- icon: 'fas fa-plus',
- handler: this.create
- }
- },
- pagination: {
- endpoint: 'clips/list' as const,
- limit: 10,
- },
- draft: null,
- };
- },
+const pagination = {
+ endpoint: 'clips/list' as const,
+ limit: 10,
+};
- methods: {
- async create() {
- const { canceled, result } = await os.form(this.$ts.createNewClip, {
- name: {
- type: 'string',
- label: this.$ts.name
- },
- description: {
- type: 'string',
- required: false,
- multiline: true,
- label: this.$ts.description
- },
- isPublic: {
- type: 'boolean',
- label: this.$ts.public,
- default: false
- }
- });
- if (canceled) return;
+const pagingComponent = $ref<InstanceType<typeof MkPagination>>();
- os.apiWithDialog('clips/create', result);
+async function create() {
+ const { canceled, result } = await os.form(i18n.locale.createNewClip, {
+ name: {
+ type: 'string',
+ label: i18n.locale.name,
},
-
- onClipCreated() {
- this.$refs.list.reload();
- this.draft = null;
+ description: {
+ type: 'string',
+ required: false,
+ multiline: true,
+ label: i18n.locale.description,
},
+ isPublic: {
+ type: 'boolean',
+ label: i18n.locale.public,
+ default: false,
+ },
+ });
+ if (canceled) return;
+
+ os.apiWithDialog('clips/create', result);
+
+ pagingComponent.reload();
+}
+
+function onClipCreated() {
+ pagingComponent.reload();
+}
- onClipDeleted() {
- this.$refs.list.reload();
+function onClipDeleted() {
+ pagingComponent.reload();
+}
+
+defineExpose({
+ [symbols.PAGE_INFO]: {
+ title: i18n.locale.clip,
+ icon: 'fas fa-paperclip',
+ bg: 'var(--bg)',
+ action: {
+ icon: 'fas fa-plus',
+ handler: create
},
- }
+ },
});
</script>
diff --git a/packages/client/src/pages/my-lists/index.vue b/packages/client/src/pages/my-lists/index.vue
index 1b1b7e2d02..e6fcba1b34 100644
--- a/packages/client/src/pages/my-lists/index.vue
+++ b/packages/client/src/pages/my-lists/index.vue
@@ -3,7 +3,7 @@
<div class="qkcjvfiv">
<MkButton primary class="add" @click="create"><i class="fas fa-plus"></i> {{ $ts.createList }}</MkButton>
- <MkPagination v-slot="{items}" ref="list" :pagination="pagination" class="lists _content">
+ <MkPagination v-slot="{items}" ref="pagingComponent" :pagination="pagination" class="lists _content">
<MkA v-for="list in items" :key="list.id" class="list _panel" :to="`/my/lists/${ list.id }`">
<div class="name">{{ list.name }}</div>
<MkAvatars :user-ids="list.userIds"/>
@@ -13,50 +13,41 @@
</MkSpacer>
</template>
-<script lang="ts">
-import { defineComponent } from 'vue';
+<script lang="ts" setup>
+import { } from 'vue';
import MkPagination from '@/components/ui/pagination.vue';
import MkButton from '@/components/ui/button.vue';
import MkAvatars from '@/components/avatars.vue';
import * as os from '@/os';
import * as symbols from '@/symbols';
+import { i18n } from '@/i18n';
-export default defineComponent({
- components: {
- MkPagination,
- MkButton,
- MkAvatars,
- },
+const pagingComponent = $ref<InstanceType<typeof MkPagination>>();
- data() {
- return {
- [symbols.PAGE_INFO]: {
- title: this.$ts.manageLists,
- icon: 'fas fa-list-ul',
- bg: 'var(--bg)',
- action: {
- icon: 'fas fa-plus',
- handler: this.create
- },
- },
- pagination: {
- endpoint: 'users/lists/list' as const,
- limit: 10,
- },
- };
- },
+const pagination = {
+ endpoint: 'users/lists/list' as const,
+ limit: 10,
+};
+
+async function create() {
+ const { canceled, result: name } = await os.inputText({
+ title: i18n.locale.enterListName,
+ });
+ if (canceled) return;
+ await os.apiWithDialog('users/lists/create', { name: name });
+ pagingComponent.reload();
+}
- methods: {
- async create() {
- const { canceled, result: name } = await os.inputText({
- title: this.$ts.enterListName,
- });
- if (canceled) return;
- await os.api('users/lists/create', { name: name });
- this.$refs.list.reload();
- os.success();
+defineExpose({
+ [symbols.PAGE_INFO]: {
+ title: i18n.locale.manageLists,
+ icon: 'fas fa-list-ul',
+ bg: 'var(--bg)',
+ action: {
+ icon: 'fas fa-plus',
+ handler: create,
},
- }
+ },
});
</script>