diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-06 23:12:27 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2020-02-06 23:12:27 +0900 |
| commit | 15a41e31b0514623f1db6cc99cc61c49dbde2de9 (patch) | |
| tree | 8f4406d66e0dcf3b38947710b4e7e7894b372a33 /src | |
| parent | 12.2.0 (diff) | |
| download | sharkey-15a41e31b0514623f1db6cc99cc61c49dbde2de9.tar.gz sharkey-15a41e31b0514623f1db6cc99cc61c49dbde2de9.tar.bz2 sharkey-15a41e31b0514623f1db6cc99cc61c49dbde2de9.zip | |
Fix #5856
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/pages/share.vue | 76 | ||||
| -rw-r--r-- | src/client/router.ts | 1 |
2 files changed, 77 insertions, 0 deletions
diff --git a/src/client/pages/share.vue b/src/client/pages/share.vue new file mode 100644 index 0000000000..07bb70737f --- /dev/null +++ b/src/client/pages/share.vue @@ -0,0 +1,76 @@ +<template> +<div class=""> + <portal to="icon"><fa :icon="faShareAlt"/></portal> + <portal to="title">{{ $t('share') }}</portal> + + <section class="_card"> + <div class="_title" v-if="title">{{ title }}</div> + <div class="_content"> + <div>{{ text }}</div> + <mk-button @click="post()">{{ $t('post') }}</mk-button> + </div> + <div class="_footer" v-if="url">{{ url }}</div> + </section> +</div> +</template> + +<script lang="ts"> +import Vue from 'vue'; +import { faShareAlt } from '@fortawesome/free-solid-svg-icons'; +import i18n from '../i18n'; +import PostFormDialog from '../components/post-form-dialog.vue'; +import MkButton from '../components/ui/button.vue'; + +export default Vue.extend({ + i18n, + + metaInfo() { + return { + title: this.$t('share') as string + }; + }, + + components: { + MkButton + }, + + data() { + return { + title: null, + text: null, + url: null, + faShareAlt + } + }, + + created() { + const urlParams = new URLSearchParams(window.location.search); + this.title = urlParams.get('title'); + this.text = urlParams.get('text'); + this.url = urlParams.get('url'); + }, + + mounted() { + this.post(); + }, + + methods: { + post() { + let text = ''; + if (this.title) text += `【${this.title}】\n`; + if (this.text) text += `${this.text}\n`; + if (this.url) text += `${this.url}`; + this.$root.new(PostFormDialog, { + instant: true, + initialText: text.trim() + }).$once('posted', () => { + alert('a'); + window.close(); + }); + } + } +}); +</script> + +<style lang="scss" scoped> +</style> diff --git a/src/client/router.ts b/src/client/router.ts index 16ab96dea4..70bc48c49e 100644 --- a/src/client/router.ts +++ b/src/client/router.ts @@ -52,6 +52,7 @@ export const router = new VueRouter({ { path: '/tags/:tag', component: page('tag') }, { path: '/auth/:token', component: page('auth') }, { path: '/authorize-follow', component: page('follow') }, + { path: '/share', component: page('share') }, /*{ path: '*', component: MkNotFound }*/ ], // なんかHacky |