diff options
Diffstat (limited to 'app/assets/javascripts/vue_shared/components/url_sync.vue')
-rw-r--r-- | app/assets/javascripts/vue_shared/components/url_sync.vue | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/assets/javascripts/vue_shared/components/url_sync.vue b/app/assets/javascripts/vue_shared/components/url_sync.vue new file mode 100644 index 00000000000..389d42f0829 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/url_sync.vue @@ -0,0 +1,25 @@ +<script> +import { historyPushState } from '~/lib/utils/common_utils'; +import { setUrlParams } from '~/lib/utils/url_utility'; + +export default { + props: { + query: { + type: Object, + required: true, + }, + }, + watch: { + query: { + immediate: true, + deep: true, + handler(newQuery) { + historyPushState(setUrlParams(newQuery, window.location.href, true)); + }, + }, + }, + render() { + return this.$slots.default; + }, +}; +</script> |