diff --git a/src/components/user_list/user_list.js b/src/components/user_list/user_list.js
deleted file mode 100644
index 30e3d765..00000000
--- a/src/components/user_list/user_list.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import BasicUserCard from '../basic_user_card/basic_user_card.vue'
-
-const UserList = {
- props: ['entries'],
- components: {
- BasicUserCard
- }
-}
-
-export default UserList
diff --git a/src/components/user_list/user_list.vue b/src/components/user_list/user_list.vue
deleted file mode 100644
index 242c04fc..00000000
--- a/src/components/user_list/user_list.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index 5d8541f0..a46afda6 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -5,9 +5,11 @@ import TabSwitcher from '../tab_switcher/tab_switcher.js'
import ImageCropper from '../image_cropper/image_cropper.vue'
import StyleSwitcher from '../style_switcher/style_switcher.vue'
import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'
-import UserList from '../user_list/user_list.vue'
+import BasicUserCard from '../basic_user_card/basic_user_card.vue'
import withLoadMore from '../../hocs/with_load_more/with_load_more'
+import withList from '../../hocs/with_list/with_list'
+const UserList = withList(BasicUserCard, entry => ({ user: entry }))
const BlockListWithLoadMore = withLoadMore(
UserList,
(props, $store) => $store.dispatch('fetchBlocks'),
diff --git a/src/hocs/with_list/with_list.js b/src/hocs/with_list/with_list.js
new file mode 100644
index 00000000..21aa288b
--- /dev/null
+++ b/src/hocs/with_list/with_list.js
@@ -0,0 +1,27 @@
+import Vue from 'vue'
+import map from 'lodash/map'
+
+const defaultEntryPropsGetter = entry => ({ entry })
+const defaultKeyGetter = entry => entry.id
+
+const withList = (Component, getEntryProps = defaultEntryPropsGetter, getKey = defaultKeyGetter) => {
+ return Vue.component('withList', {
+ render (createElement) {
+ return (
+
+ {map(this.entries, (entry, index) => {
+ const props = {
+ key: getKey(entry, index),
+ ...this.$props.entryProps,
+ ...getEntryProps(entry, index)
+ }
+ return
+ })}
+
+ )
+ },
+ props: ['entries', 'entryProps']
+ })
+}
+
+export default withList