-
+
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index d5772082..259e3418 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -1,6 +1,8 @@
import { compose } from 'vue-compose'
import unescape from 'lodash/unescape'
import get from 'lodash/get'
+import map from 'lodash/map'
+import reject from 'lodash/reject'
import TabSwitcher from '../tab_switcher/tab_switcher.js'
import ImageCropper from '../image_cropper/image_cropper.vue'
import StyleSwitcher from '../style_switcher/style_switcher.vue'
@@ -12,6 +14,7 @@ import EmojiInput from '../emoji-input/emoji-input.vue'
import UserAutoSuggest from '../user_autosuggest/user_autosuggest.vue'
import withSubscription from '../../hocs/with_subscription/with_subscription'
import withList from '../../hocs/with_list/with_list'
+import userSearchApi from '../../services/new_api/user_search.js'
const BlockList = compose(
withSubscription({
@@ -336,6 +339,19 @@ const UserSettings = {
if (window.confirm(`${this.$i18n.t('settings.revoke_token')}?`)) {
this.$store.dispatch('revokeToken', id)
}
+ },
+ filterUnblockedUsers (userIds) {
+ return reject(userIds, (userId) => {
+ const user = this.$store.getters.findUser(userId)
+ return !user || user.statusnet_blocking || user.id === this.$store.state.users.currentUser.id
+ })
+ },
+ queryUserIds (query) {
+ return userSearchApi.search({query, store: this.$store})
+ .then((users) => {
+ this.$store.dispatch('addNewUsers', users)
+ return map(users, 'id')
+ })
}
}
}
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 811f63aa..6018cc30 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -196,7 +196,7 @@
-
+
{{$t('settings.no_blocks')}}
--
cgit v1.2.3-70-g09d2
From fc5f4fba8c4af713855b881d7b178623b1e77b01 Mon Sep 17 00:00:00 2001
From: taehoon
Date: Tue, 2 Apr 2019 15:43:41 -0400
Subject: make more generic
---
src/components/user_autosuggest/user_autosuggest.js | 4 ++++
src/components/user_autosuggest/user_autosuggest.vue | 2 +-
src/components/user_settings/user_settings.vue | 2 +-
3 files changed, 6 insertions(+), 2 deletions(-)
(limited to 'src/components/user_settings/user_settings.vue')
diff --git a/src/components/user_autosuggest/user_autosuggest.js b/src/components/user_autosuggest/user_autosuggest.js
index 6b95fc15..12a6964a 100644
--- a/src/components/user_autosuggest/user_autosuggest.js
+++ b/src/components/user_autosuggest/user_autosuggest.js
@@ -10,6 +10,10 @@ export default {
},
filter: { // function to filter results in real time
type: Function
+ },
+ placeholder: {
+ type: String,
+ default: 'Search...'
}
},
components: {
diff --git a/src/components/user_autosuggest/user_autosuggest.vue b/src/components/user_autosuggest/user_autosuggest.vue
index 48cffc78..db3e1bdf 100644
--- a/src/components/user_autosuggest/user_autosuggest.vue
+++ b/src/components/user_autosuggest/user_autosuggest.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 6018cc30..3dde5ae1 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -196,7 +196,7 @@
-
+
{{$t('settings.no_blocks')}}
--
cgit v1.2.3-70-g09d2
From 1cf9780e05957c96b6d6b6b898b83ff1987b2703 Mon Sep 17 00:00:00 2001
From: taehoon
Date: Tue, 2 Apr 2019 16:02:02 -0400
Subject: make more generic
---
src/components/user_autosuggest/user_autosuggest.js | 5 -----
src/components/user_autosuggest/user_autosuggest.vue | 3 ++-
src/components/user_settings/user_settings.js | 3 ++-
src/components/user_settings/user_settings.vue | 4 +++-
4 files changed, 7 insertions(+), 8 deletions(-)
(limited to 'src/components/user_settings/user_settings.vue')
diff --git a/src/components/user_autosuggest/user_autosuggest.js b/src/components/user_autosuggest/user_autosuggest.js
index 12a6964a..d4efe912 100644
--- a/src/components/user_autosuggest/user_autosuggest.js
+++ b/src/components/user_autosuggest/user_autosuggest.js
@@ -1,5 +1,3 @@
-import BlockCard from '../block_card/block_card.vue'
-
const debounceMilliseconds = 500
export default {
@@ -16,9 +14,6 @@ export default {
default: 'Search...'
}
},
- components: {
- BlockCard
- },
data () {
return {
term: '',
diff --git a/src/components/user_autosuggest/user_autosuggest.vue b/src/components/user_autosuggest/user_autosuggest.vue
index db3e1bdf..6eaecbaa 100644
--- a/src/components/user_autosuggest/user_autosuggest.vue
+++ b/src/components/user_autosuggest/user_autosuggest.vue
@@ -2,7 +2,8 @@
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index 259e3418..2cae2d00 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -78,7 +78,8 @@ const UserSettings = {
BlockList,
MuteList,
EmojiInput,
- UserAutoSuggest
+ UserAutoSuggest,
+ BlockCard
},
computed: {
user () {
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 3dde5ae1..69d3dc53 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -196,7 +196,9 @@
-
+
+
+
{{$t('settings.no_blocks')}}
--
cgit v1.2.3-70-g09d2
From 0bdb0e5a8124508edff12a265174bd51a09c37e6 Mon Sep 17 00:00:00 2001
From: taehoon
Date: Tue, 2 Apr 2019 16:10:03 -0400
Subject: rename Autosuggest component
---
src/components/autosuggest/autosuggest.js | 52 ++++++++++++++++++++++
src/components/autosuggest/autosuggest.vue | 46 +++++++++++++++++++
.../user_autosuggest/user_autosuggest.js | 52 ----------------------
.../user_autosuggest/user_autosuggest.vue | 46 -------------------
src/components/user_settings/user_settings.js | 4 +-
src/components/user_settings/user_settings.vue | 4 +-
6 files changed, 102 insertions(+), 102 deletions(-)
create mode 100644 src/components/autosuggest/autosuggest.js
create mode 100644 src/components/autosuggest/autosuggest.vue
delete mode 100644 src/components/user_autosuggest/user_autosuggest.js
delete mode 100644 src/components/user_autosuggest/user_autosuggest.vue
(limited to 'src/components/user_settings/user_settings.vue')
diff --git a/src/components/autosuggest/autosuggest.js b/src/components/autosuggest/autosuggest.js
new file mode 100644
index 00000000..d4efe912
--- /dev/null
+++ b/src/components/autosuggest/autosuggest.js
@@ -0,0 +1,52 @@
+const debounceMilliseconds = 500
+
+export default {
+ props: {
+ query: { // function to query results and return a promise
+ type: Function,
+ required: true
+ },
+ filter: { // function to filter results in real time
+ type: Function
+ },
+ placeholder: {
+ type: String,
+ default: 'Search...'
+ }
+ },
+ data () {
+ return {
+ term: '',
+ timeout: null,
+ results: [],
+ resultsVisible: false
+ }
+ },
+ computed: {
+ filtered () {
+ return this.filter ? this.filter(this.results) : this.results
+ }
+ },
+ watch: {
+ term (val) {
+ this.fetchResults(val)
+ }
+ },
+ methods: {
+ fetchResults (term) {
+ clearTimeout(this.timeout)
+ this.timeout = setTimeout(() => {
+ this.results = []
+ if (term) {
+ this.query(term).then((results) => { this.results = results })
+ }
+ }, debounceMilliseconds)
+ },
+ onInputClick () {
+ this.resultsVisible = true
+ },
+ onClickOutside () {
+ this.resultsVisible = false
+ }
+ }
+}
diff --git a/src/components/autosuggest/autosuggest.vue b/src/components/autosuggest/autosuggest.vue
new file mode 100644
index 00000000..ae1e312d
--- /dev/null
+++ b/src/components/autosuggest/autosuggest.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
diff --git a/src/components/user_autosuggest/user_autosuggest.js b/src/components/user_autosuggest/user_autosuggest.js
deleted file mode 100644
index d4efe912..00000000
--- a/src/components/user_autosuggest/user_autosuggest.js
+++ /dev/null
@@ -1,52 +0,0 @@
-const debounceMilliseconds = 500
-
-export default {
- props: {
- query: { // function to query results and return a promise
- type: Function,
- required: true
- },
- filter: { // function to filter results in real time
- type: Function
- },
- placeholder: {
- type: String,
- default: 'Search...'
- }
- },
- data () {
- return {
- term: '',
- timeout: null,
- results: [],
- resultsVisible: false
- }
- },
- computed: {
- filtered () {
- return this.filter ? this.filter(this.results) : this.results
- }
- },
- watch: {
- term (val) {
- this.fetchResults(val)
- }
- },
- methods: {
- fetchResults (term) {
- clearTimeout(this.timeout)
- this.timeout = setTimeout(() => {
- this.results = []
- if (term) {
- this.query(term).then((results) => { this.results = results })
- }
- }, debounceMilliseconds)
- },
- onInputClick () {
- this.resultsVisible = true
- },
- onClickOutside () {
- this.resultsVisible = false
- }
- }
-}
diff --git a/src/components/user_autosuggest/user_autosuggest.vue b/src/components/user_autosuggest/user_autosuggest.vue
deleted file mode 100644
index 6eaecbaa..00000000
--- a/src/components/user_autosuggest/user_autosuggest.vue
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index 2cae2d00..a0dfbc67 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -11,7 +11,7 @@ import fileSizeFormatService from '../../services/file_size_format/file_size_for
import BlockCard from '../block_card/block_card.vue'
import MuteCard from '../mute_card/mute_card.vue'
import EmojiInput from '../emoji-input/emoji-input.vue'
-import UserAutoSuggest from '../user_autosuggest/user_autosuggest.vue'
+import Autosuggest from '../autosuggest/autosuggest.vue'
import withSubscription from '../../hocs/with_subscription/with_subscription'
import withList from '../../hocs/with_list/with_list'
import userSearchApi from '../../services/new_api/user_search.js'
@@ -78,7 +78,7 @@ const UserSettings = {
BlockList,
MuteList,
EmojiInput,
- UserAutoSuggest,
+ Autosuggest,
BlockCard
},
computed: {
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 69d3dc53..d79abd0f 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -196,9 +196,9 @@
{{$t('settings.no_blocks')}}
--
cgit v1.2.3-70-g09d2
From d58e08cf52c5953914f0bf1b6c9fb120168c6160 Mon Sep 17 00:00:00 2001
From: taehoon
Date: Tue, 2 Apr 2019 16:14:45 -0400
Subject: add search to the mutes tab as well
---
src/components/user_settings/user_settings.js | 9 ++++++++-
src/components/user_settings/user_settings.vue | 5 +++++
2 files changed, 13 insertions(+), 1 deletion(-)
(limited to 'src/components/user_settings/user_settings.vue')
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index a0dfbc67..dd931e67 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -79,7 +79,8 @@ const UserSettings = {
MuteList,
EmojiInput,
Autosuggest,
- BlockCard
+ BlockCard,
+ MuteCard
},
computed: {
user () {
@@ -347,6 +348,12 @@ const UserSettings = {
return !user || user.statusnet_blocking || user.id === this.$store.state.users.currentUser.id
})
},
+ filterUnMutedUsers (userIds) {
+ return reject(userIds, (userId) => {
+ const user = this.$store.getters.findUser(userId)
+ return !user || user.muted || user.id === this.$store.state.users.currentUser.id
+ })
+ },
queryUserIds (query) {
return userSearchApi.search({query, store: this.$store})
.then((users) => {
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index d79abd0f..8fcf4c07 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -206,6 +206,11 @@
+
{{$t('settings.no_mutes')}}
--
cgit v1.2.3-70-g09d2
From d874ca905cbf90a4adb070bbe9b307e5bf9ad82f Mon Sep 17 00:00:00 2001
From: taehoon
Date: Tue, 2 Apr 2019 16:28:51 -0400
Subject: support i18n
---
src/components/user_settings/user_settings.vue | 4 ++--
src/i18n/en.json | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
(limited to 'src/components/user_settings/user_settings.vue')
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 8fcf4c07..9d37ffc4 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -196,7 +196,7 @@
@@ -207,7 +207,7 @@
diff --git a/src/i18n/en.json b/src/i18n/en.json
index 9188c6f7..c71c9036 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -217,6 +217,8 @@
"reply_visibility_self": "Only show replies directed at me",
"saving_err": "Error saving settings",
"saving_ok": "Settings saved",
+ "search_user_to_block": "Search whom you want to block",
+ "search_user_to_mute": "Search whom you want to mute",
"security_tab": "Security",
"scope_copy": "Copy scope when replying (DMs are always copied)",
"minimal_scopes_mode": "Minimize post scope selection options",
--
cgit v1.2.3-70-g09d2
From 1cec2b696952ef2c472219329961bc102ed315df Mon Sep 17 00:00:00 2001
From: taehoon
Date: Wed, 3 Apr 2019 22:17:42 -0400
Subject: use reusable List vue component instead of withList hoc
Using slot is the preferred way in vue
---
src/components/list/list.vue | 28 ++++++++++++++++++++++++++
src/components/user_settings/user_settings.js | 27 ++++++++++---------------
src/components/user_settings/user_settings.vue | 14 +++++++++----
3 files changed, 49 insertions(+), 20 deletions(-)
create mode 100644 src/components/list/list.vue
(limited to 'src/components/user_settings/user_settings.vue')
diff --git a/src/components/list/list.vue b/src/components/list/list.vue
new file mode 100644
index 00000000..f361e3b1
--- /dev/null
+++ b/src/components/list/list.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index dd931e67..057d1cec 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -10,29 +10,24 @@ import ScopeSelector from '../scope_selector/scope_selector.vue'
import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'
import BlockCard from '../block_card/block_card.vue'
import MuteCard from '../mute_card/mute_card.vue'
+import List from '../list/list.vue'
import EmojiInput from '../emoji-input/emoji-input.vue'
import Autosuggest from '../autosuggest/autosuggest.vue'
import withSubscription from '../../hocs/with_subscription/with_subscription'
import withList from '../../hocs/with_list/with_list'
import userSearchApi from '../../services/new_api/user_search.js'
-const BlockList = compose(
- withSubscription({
- fetch: (props, $store) => $store.dispatch('fetchBlocks'),
- select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []),
- childPropName: 'entries'
- }),
- withList({ getEntryProps: userId => ({ userId }) })
-)(BlockCard)
+const BlockList = withSubscription({
+ fetch: (props, $store) => $store.dispatch('fetchBlocks'),
+ select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []),
+ childPropName: 'items'
+})(List)
-const MuteList = compose(
- withSubscription({
- fetch: (props, $store) => $store.dispatch('fetchMutes'),
- select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []),
- childPropName: 'entries'
- }),
- withList({ getEntryProps: userId => ({ userId }) })
-)(MuteCard)
+const MuteList = withSubscription({
+ fetch: (props, $store) => $store.dispatch('fetchMutes'),
+ select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []),
+ childPropName: 'items'
+})(List)
const UserSettings = {
data () {
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 9d37ffc4..741fbe3f 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -200,9 +200,12 @@
-
+
+
+
+
{{$t('settings.no_blocks')}}
-
+
@@ -211,9 +214,12 @@
-
+
+
+
+
{{$t('settings.no_mutes')}}
-
+
--
cgit v1.2.3-70-g09d2
From 32035217b8e04b0f178409f0f1f49d54296ce80c Mon Sep 17 00:00:00 2001
From: taehoon
Date: Thu, 4 Apr 2019 00:00:21 -0400
Subject: clean up
---
src/components/list/list.vue | 2 +-
src/components/selectable_list/selectable_list.js | 11 +----------
src/components/user_profile/user_profile.vue | 4 ++--
src/components/user_settings/user_settings.vue | 8 ++++----
4 files changed, 8 insertions(+), 17 deletions(-)
(limited to 'src/components/user_settings/user_settings.vue')
diff --git a/src/components/list/list.vue b/src/components/list/list.vue
index 1159898d..7d62283a 100644
--- a/src/components/list/list.vue
+++ b/src/components/list/list.vue
@@ -18,7 +18,7 @@ export default {
},
getKey: {
type: Function,
- default: item => item
+ default: item => item.id
}
}
}
diff --git a/src/components/selectable_list/selectable_list.js b/src/components/selectable_list/selectable_list.js
index 1fdd5a67..7856d725 100644
--- a/src/components/selectable_list/selectable_list.js
+++ b/src/components/selectable_list/selectable_list.js
@@ -6,16 +6,7 @@ const SelectableList = {
List,
Checkbox
},
- props: {
- items: {
- type: Array,
- default: () => []
- },
- getKey: {
- type: Function,
- default: item => item
- }
- },
+ props: List.props,
data () {
return {
selected: []
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
index 39f3c381..8d78d2d2 100644
--- a/src/components/user_profile/user_profile.vue
+++ b/src/components/user_profile/user_profile.vue
@@ -16,14 +16,14 @@
-
+
-
+
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 741fbe3f..66ce6cea 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -200,9 +200,9 @@
-
+
-
+
{{$t('settings.no_blocks')}}
@@ -214,9 +214,9 @@
-
+
-
+
{{$t('settings.no_mutes')}}
--
cgit v1.2.3-70-g09d2
From fe7766bc618f9a994e2c0a9337deb7cce8b162cf Mon Sep 17 00:00:00 2001
From: taehoon
Date: Thu, 4 Apr 2019 12:12:27 -0400
Subject: replace scope attributes by slot-scope
---
src/components/follow_requests/follow_requests.vue | 2 +-
src/components/selectable_list/selectable_list.vue | 2 +-
src/components/user_profile/user_profile.vue | 4 ++--
src/components/user_search/user_search.vue | 2 +-
src/components/user_settings/user_settings.vue | 4 ++--
src/components/who_to_follow/who_to_follow.vue | 2 +-
6 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'src/components/user_settings/user_settings.vue')
diff --git a/src/components/follow_requests/follow_requests.vue b/src/components/follow_requests/follow_requests.vue
index 0970713b..8b1e8f94 100644
--- a/src/components/follow_requests/follow_requests.vue
+++ b/src/components/follow_requests/follow_requests.vue
@@ -5,7 +5,7 @@
-
+
diff --git a/src/components/selectable_list/selectable_list.vue b/src/components/selectable_list/selectable_list.vue
index f3dd5e88..25781d06 100644
--- a/src/components/selectable_list/selectable_list.vue
+++ b/src/components/selectable_list/selectable_list.vue
@@ -9,7 +9,7 @@