App.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <div id="app">
  3. <router-view />
  4. <theme-picker />
  5. </div>
  6. </template>
  7. <script>
  8. import ThemePicker from "@/components/ThemePicker";
  9. export default {
  10. name: "App",
  11. components: { ThemePicker },
  12. metaInfo() {
  13. return {
  14. title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
  15. titleTemplate: title => {
  16. return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
  17. }
  18. }
  19. },
  20. mounted(){
  21. const debounce = (fn, delay) => {
  22. let timer = null;
  23. return () => {
  24. let context = this;
  25. let args = arguments;
  26. clearTimeout(timer);
  27. timer = setTimeout(function () {
  28. fn.apply(context, args);
  29. }, delay);
  30. }
  31. }
  32. const _ResizeObserver = window.ResizeObserver;
  33. window.ResizeObserver = class ResizeObserver extends _ResizeObserver{
  34. constructor(callback) {
  35. callback = debounce(callback, 16);
  36. super(callback);
  37. }
  38. }
  39. }
  40. };
  41. </script>
  42. <style scoped>
  43. #app .theme-picker {
  44. display: none;
  45. }
  46. </style>