From 09315b27804beadb7590f8e908ae9d0eb1d6a992 Mon Sep 17 00:00:00 2001
From: taehoon
Date: Wed, 13 Feb 2019 21:21:56 -0500
Subject: [PATCH] Add a prop to force-refresh data to withSubscription hoc
---
src/components/user_settings/user_settings.vue | 2 +-
src/hocs/with_subscription/with_subscription.js | 13 +++++++------
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 5cf21815..5bae583c 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -164,7 +164,7 @@
-
+
diff --git a/src/hocs/with_subscription/with_subscription.js b/src/hocs/with_subscription/with_subscription.js
index 31fc106f..633517e3 100644
--- a/src/hocs/with_subscription/with_subscription.js
+++ b/src/hocs/with_subscription/with_subscription.js
@@ -1,24 +1,25 @@
import Vue from 'vue'
-import filter from 'lodash/filter'
+import reject from 'lodash/reject'
import isEmpty from 'lodash/isEmpty'
+import omit from 'lodash/omit'
import './with_subscription.scss'
const withSubscription = (Component, fetch, select, contentPropName = 'content') => {
const originalProps = Component.props || []
- const props = filter(originalProps, v => v !== 'content')
+ const props = reject(originalProps, v => v === 'content')
return Vue.component('withSubscription', {
render (createElement) {
const props = {
props: {
- ...this.$props,
+ ...omit(this.$props, 'refresh'),
[contentPropName]: this.fetchedData
},
on: this.$listeners
}
return (
-
+ {!this.error && !this.loading && }
)
},
- props,
+ props: [...props, 'refresh'],
data () {
return {
loading: false,
@@ -39,7 +40,7 @@ const withSubscription = (Component, fetch, select, contentPropName = 'content')
}
},
created () {
- if (isEmpty(this.fetchedData)) {
+ if (this.refresh || isEmpty(this.fetchedData)) {
this.fetchData()
}
},