Widget: Handle resize events

This commit is contained in:
Raphael Michel
2019-04-23 10:35:07 +02:00
parent f9341b4d47
commit c6ea30ec1e
4 changed files with 10 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ window.PretixWidget = {
};
var Vue = module.exports;
Vue.component('resize-observer', VueResize.ResizeObserver)
var strings = {
'sold_out': django.pgettext('widget', 'Sold out'),
@@ -542,6 +543,9 @@ var shared_methods = {
window.open(redirect_url);
}
},
handleResize: function () {
this.mobile = this.$refs.wrapper.clientWidth <= 800;
}
};
var shared_widget_data = function () {
@@ -918,6 +922,7 @@ Vue.component('pretix-widget-event-calendar', {
Vue.component('pretix-widget', {
template: ('<div class="pretix-widget-wrapper" ref="wrapper">'
+ '<div :class="classObject">'
+ '<resize-observer @notify="handleResize" />'
+ shared_loading_fragment
+ '<div class="pretix-widget-error-message" v-if="$root.error && $root.view !== \'event\'">{{ $root.error }}</div>'
+ '<pretix-widget-event-form ref="formcomp" v-if="$root.view === \'event\'"></pretix-widget-event-form>'

View File

@@ -84,7 +84,6 @@
}
}
}
.pretix-widget {
margin: 10px 0;
padding: 0 10px;
@@ -716,3 +715,6 @@
}
}
}
// https://github.com/Akryum/vue-resize/blob/master/dist/vue-resize.css
.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}