From 83a02135fca112cfdea60167aca5d49546063d79 Mon Sep 17 00:00:00 2001 From: Matthieu Fesselier Date: Wed, 19 May 2021 10:25:10 +0200 Subject: [PATCH] bugfix: improve reactivity --- src/components/hubl-reactivity.js | 8 ++++++-- src/views/partials/admin/page-admin-circles-join.pug | 4 ++-- .../partials/admin/page-admin-circles-leave.pug | 8 ++++---- src/views/partials/admin/page-admin-projects.pug | 12 ++++++------ 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/components/hubl-reactivity.js b/src/components/hubl-reactivity.js index 0478e3d..001983c 100644 --- a/src/components/hubl-reactivity.js +++ b/src/components/hubl-reactivity.js @@ -15,6 +15,9 @@ export const HublReactivity = { this.subscribe(); } }, + refreshData: { + type: String, + }, }, async fetchData(value) { this.resourceId = null; @@ -28,9 +31,10 @@ export const HublReactivity = { this.subscribe(); }, subscribe() { - if (this.resourceId && this.targetSrc) { + if (this.refreshData === '') { // clears cache and re-fetch data store.subscribeVirtualContainerTo(this.resourceId, this.targetSrc); - store.subscribeVirtualContainerTo(this.targetSrc, this.resourceId); + } else { // notifies components + store.subscribeResourceTo(this.resourceId, this.targetSrc); } } } diff --git a/src/views/partials/admin/page-admin-circles-join.pug b/src/views/partials/admin/page-admin-circles-join.pug index ced26ac..f0dd4e4 100644 --- a/src/views/partials/admin/page-admin-circles-join.pug +++ b/src/views/partials/admin/page-admin-circles-join.pug @@ -16,8 +16,8 @@ solid-widget(name=`hubl-admin-circle-join-button`) hubl-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${value}') hubl-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${value}') hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${value}') - hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${value}') - hubl-reactivity(bind-user nested-field="circles" target-src='${value}') + hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${value}' refresh-data) + hubl-reactivity(bind-user nested-field="circles" target-src='${value}' refresh-data) include page-admin-circles.pug diff --git a/src/views/partials/admin/page-admin-circles-leave.pug b/src/views/partials/admin/page-admin-circles-leave.pug index 43a75b2..749dd30 100644 --- a/src/views/partials/admin/page-admin-circles-leave.pug +++ b/src/views/partials/admin/page-admin-circles-leave.pug @@ -3,8 +3,8 @@ solid-widget(name=`leave-circle-reactivity`) hubl-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${value}') hubl-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${value}') hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${value}') - hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${value}') - hubl-reactivity(bind-user nested-field="circles" target-src='${value}') + hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${value}' refresh-data) + hubl-reactivity(bind-user nested-field="circles" target-src='${value}' refresh-data) solid-widget(name=`hubl-admin-circle-leave-button`) template @@ -17,8 +17,8 @@ solid-widget(name=`hubl-admin-circle-leave-button`) hubl-reactivity(data-src=`${getComponent('circles').endpoints.get}` target-src='${src}') hubl-reactivity(data-src=`${getComponent('circles').endpoints.get}joinable/` target-src='${src}') hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}` target-src='${src}') - hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${src}') - hubl-reactivity(bind-user nested-field="circles" target-src='${src}') + hubl-reactivity(data-src=`${getComponent('circles').endpoints.post}joinable/` target-src='${src}' refresh-data) + hubl-reactivity(bind-user nested-field="circles" target-src='${src}' refresh-data) solid-display( data-src="${src}" fields="circle" diff --git a/src/views/partials/admin/page-admin-projects.pug b/src/views/partials/admin/page-admin-projects.pug index def6e0c..a3db9d8 100644 --- a/src/views/partials/admin/page-admin-projects.pug +++ b/src/views/partials/admin/page-admin-projects.pug @@ -43,8 +43,8 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac hubl-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${value}') hubl-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${value}') hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${value}') - hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${value}') - hubl-reactivity(bind-user nested-field="projects" target-src='${value}') + hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${value}' refresh-data) + hubl-reactivity(bind-user nested-field="projects" target-src='${value}' refresh-data) solid-widget(name=`hubl-admin-project-leave-button`) template @@ -57,8 +57,8 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac hubl-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${src}') hubl-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${src}') hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${src}') - hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${src}') - hubl-reactivity(bind-user nested-field="projects" target-src='${src}') + hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${src}' refresh-data) + hubl-reactivity(bind-user nested-field="projects" target-src='${src}' refresh-data) solid-display( data-src="${src}" fields="project" @@ -122,8 +122,8 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac hubl-reactivity(data-src=`${getComponent('projects').endpoints.get}` target-src='${value}') hubl-reactivity(data-src=`${getComponent('projects').endpoints.get}joinable/` target-src='${value}') hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}` target-src='${value}') - hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${value}') - hubl-reactivity(bind-user nested-field="projects" target-src='${value}') + hubl-reactivity(data-src=`${getComponent('projects').endpoints.post}joinable/` target-src='${value}' refresh-data) + hubl-reactivity(bind-user nested-field="projects" target-src='${value}' refresh-data) solid-display( class='table-body'