From 5ff899b455e07e41eb1b89985177655279f8263f Mon Sep 17 00:00:00 2001 From: taehoon Date: Tue, 17 Sep 2019 15:59:17 -0400 Subject: [PATCH 1/7] add mention button --- src/components/user_card/user_card.js | 3 +++ src/components/user_card/user_card.vue | 9 +++++++++ src/i18n/en.json | 1 + 3 files changed, 13 insertions(+) diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js index e3bd7697..d42be9fc 100644 --- a/src/components/user_card/user_card.js +++ b/src/components/user_card/user_card.js @@ -168,6 +168,9 @@ export default { } this.$store.dispatch('setMedia', [attachment]) this.$store.dispatch('setCurrent', attachment) + }, + mentionUser () { + } } } diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue index 0b83cf16..f25d16d3 100644 --- a/src/components/user_card/user_card.vue +++ b/src/components/user_card/user_card.vue @@ -188,6 +188,15 @@ +
+ +
+
Date: Thu, 19 Sep 2019 13:27:37 -0400 Subject: [PATCH 3/7] add new module and modal to post new status --- src/App.js | 4 +- src/App.vue | 1 + .../post_status_modal/post_status_modal.js | 25 +++++++++++ .../post_status_modal/post_status_modal.vue | 42 +++++++++++++++++++ src/components/user_card/user_card.js | 2 +- src/main.js | 4 +- src/modules/postStatus.js | 25 +++++++++++ 7 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 src/components/post_status_modal/post_status_modal.js create mode 100644 src/components/post_status_modal/post_status_modal.vue create mode 100644 src/modules/postStatus.js diff --git a/src/App.js b/src/App.js index e9cd5917..40f362d2 100644 --- a/src/App.js +++ b/src/App.js @@ -11,6 +11,7 @@ import SideDrawer from './components/side_drawer/side_drawer.vue' import MobilePostStatusModal from './components/mobile_post_status_modal/mobile_post_status_modal.vue' import MobileNav from './components/mobile_nav/mobile_nav.vue' import UserReportingModal from './components/user_reporting_modal/user_reporting_modal.vue' +import PostStatusModal from './components/post_status_modal/post_status_modal.vue' import { windowWidth } from './services/window_utils/window_utils' export default { @@ -28,7 +29,8 @@ export default { SideDrawer, MobilePostStatusModal, MobileNav, - UserReportingModal + UserReportingModal, + PostStatusModal }, data: () => ({ mobileActivePanel: 'timeline', diff --git a/src/App.vue b/src/App.vue index 719e00a4..46d3ac42 100644 --- a/src/App.vue +++ b/src/App.vue @@ -109,6 +109,7 @@ /> + diff --git a/src/components/post_status_modal/post_status_modal.js b/src/components/post_status_modal/post_status_modal.js new file mode 100644 index 00000000..86a4e1d8 --- /dev/null +++ b/src/components/post_status_modal/post_status_modal.js @@ -0,0 +1,25 @@ +import PostStatusForm from '../post_status_form/post_status_form.vue' + +const PostStatusModal = { + components: { + PostStatusForm + }, + computed: { + isLoggedIn () { + return !!this.$store.state.users.currentUser + }, + isOpen () { + return this.isLoggedIn && this.$store.state.postStatus.modalActivated + }, + params () { + return this.$store.state.postStatus.params + } + }, + methods: { + closeModal () { + this.$store.dispatch('closePostStatusModal') + } + } +} + +export default PostStatusModal diff --git a/src/components/post_status_modal/post_status_modal.vue b/src/components/post_status_modal/post_status_modal.vue new file mode 100644 index 00000000..85a5401c --- /dev/null +++ b/src/components/post_status_modal/post_status_modal.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js index d42be9fc..0c200ad1 100644 --- a/src/components/user_card/user_card.js +++ b/src/components/user_card/user_card.js @@ -170,7 +170,7 @@ export default { this.$store.dispatch('setCurrent', attachment) }, mentionUser () { - + this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user }) } } } diff --git a/src/main.js b/src/main.js index b3256e8e..a43d31e2 100644 --- a/src/main.js +++ b/src/main.js @@ -15,6 +15,7 @@ import mediaViewerModule from './modules/media_viewer.js' import oauthTokensModule from './modules/oauth_tokens.js' import reportsModule from './modules/reports.js' import pollsModule from './modules/polls.js' +import postStatusModule from './modules/postStatus.js' import VueI18n from 'vue-i18n' @@ -76,7 +77,8 @@ const persistedStateOptions = { mediaViewer: mediaViewerModule, oauthTokens: oauthTokensModule, reports: reportsModule, - polls: pollsModule + polls: pollsModule, + postStatus: postStatusModule }, plugins: [persistedState, pushNotifications], strict: false // Socket modifies itself, let's ignore this for now. diff --git a/src/modules/postStatus.js b/src/modules/postStatus.js new file mode 100644 index 00000000..638c1fb2 --- /dev/null +++ b/src/modules/postStatus.js @@ -0,0 +1,25 @@ +const postStatus = { + state: { + params: null, + modalActivated: false + }, + mutations: { + openPostStatusModal (state, params) { + state.params = params + state.modalActivated = true + }, + closePostStatusModal (state) { + state.modalActivated = false + } + }, + actions: { + openPostStatusModal ({ commit }, params) { + commit('openPostStatusModal', params) + }, + closePostStatusModal ({ commit }) { + commit('closePostStatusModal') + } + } +} + +export default postStatus From a9f33272a860fd95def54c7dafa863056324122d Mon Sep 17 00:00:00 2001 From: taehoon Date: Thu, 19 Sep 2019 13:52:20 -0400 Subject: [PATCH 4/7] refactor MobilePostStatusModal using new PostStatusModal --- .../mobile_post_status_modal.js | 21 ++--------- .../mobile_post_status_modal.vue | 36 +------------------ 2 files changed, 4 insertions(+), 53 deletions(-) diff --git a/src/components/mobile_post_status_modal/mobile_post_status_modal.js b/src/components/mobile_post_status_modal/mobile_post_status_modal.js index 3cec23c6..3be4a1d8 100644 --- a/src/components/mobile_post_status_modal/mobile_post_status_modal.js +++ b/src/components/mobile_post_status_modal/mobile_post_status_modal.js @@ -1,14 +1,9 @@ -import PostStatusForm from '../post_status_form/post_status_form.vue' import { debounce } from 'lodash' const MobilePostStatusModal = { - components: { - PostStatusForm - }, data () { return { hidden: false, - postFormOpen: false, scrollingDown: false, inputActive: false, oldScrollPos: 0, @@ -28,8 +23,8 @@ const MobilePostStatusModal = { window.removeEventListener('resize', this.handleOSK) }, computed: { - currentUser () { - return this.$store.state.users.currentUser + isLoggedIn () { + return !!this.$store.state.users.currentUser }, isHidden () { return this.autohideFloatingPostButton && (this.hidden || this.inputActive) @@ -57,17 +52,7 @@ const MobilePostStatusModal = { window.removeEventListener('scroll', this.handleScrollEnd) }, openPostForm () { - this.postFormOpen = true - this.hidden = true - - const el = this.$el.querySelector('textarea') - this.$nextTick(function () { - el.focus() - }) - }, - closePostForm () { - this.postFormOpen = false - this.hidden = false + this.$store.dispatch('openPostStatusModal') }, handleOSK () { // This is a big hack: we're guessing from changed window sizes if the diff --git a/src/components/mobile_post_status_modal/mobile_post_status_modal.vue b/src/components/mobile_post_status_modal/mobile_post_status_modal.vue index b6d7d3ba..38c5fce0 100644 --- a/src/components/mobile_post_status_modal/mobile_post_status_modal.vue +++ b/src/components/mobile_post_status_modal/mobile_post_status_modal.vue @@ -1,23 +1,5 @@ - +