From 22854bb4fb5948608ed7dc79177c722b36151bd6 Mon Sep 17 00:00:00 2001 From: Viet An Date: Thu, 9 Jul 2026 17:22:19 +0700 Subject: [PATCH] changes --- app/assets/styles/main.scss | 1 + app/assets/styles/scrollbar.scss | 14 ++++++ app/components/AppLoading.vue | 67 ----------------------------- app/components/Modal.vue | 7 ++- app/pages/index.vue | 5 +-- app/plugins/03-api-loader.js | 6 +-- app/plugins/05-artificial-delay.js | 12 ++++++ app/spa-loading-template.html | 68 ++++++++++++++++++++++++++++++ app/stores/index.js | 1 - 9 files changed, 104 insertions(+), 77 deletions(-) create mode 100644 app/assets/styles/scrollbar.scss delete mode 100644 app/components/AppLoading.vue create mode 100644 app/plugins/05-artificial-delay.js create mode 100644 app/spa-loading-template.html diff --git a/app/assets/styles/main.scss b/app/assets/styles/main.scss index c014f50..5ccf224 100644 --- a/app/assets/styles/main.scss +++ b/app/assets/styles/main.scss @@ -1,5 +1,6 @@ @use "utils.scss"; @use "overrides-components.scss"; +@use "scrollbar.scss"; :root { font-size: 15px; diff --git a/app/assets/styles/scrollbar.scss b/app/assets/styles/scrollbar.scss new file mode 100644 index 0000000..f5bec72 --- /dev/null +++ b/app/assets/styles/scrollbar.scss @@ -0,0 +1,14 @@ +// Fix: Scrollbar causing layout shift +* { + scrollbar-width: thin; + scrollbar-color: #888 transparent; +} + +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: transparent; +} diff --git a/app/components/AppLoading.vue b/app/components/AppLoading.vue deleted file mode 100644 index b9fcc80..0000000 --- a/app/components/AppLoading.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/app/components/Modal.vue b/app/components/Modal.vue index c247016..4d66d9e 100644 --- a/app/components/Modal.vue +++ b/app/components/Modal.vue @@ -141,13 +141,18 @@ function closeOnEsc(e) { onMounted(() => { window.addEventListener("keydown", closeOnEsc); + const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; + document.documentElement.style.cssText += ` ;padding-right: ${scrollbarWidth}px;`; document.documentElement.classList.add("is-clipped"); }); onUnmounted(() => { window.removeEventListener("keydown", closeOnEsc); const remaining = document.getElementsByClassName("modal-background").length; - if (remaining === 0) document.documentElement.classList.remove("is-clipped"); + if (remaining === 0) { + document.documentElement.classList.remove("is-clipped"); + document.documentElement.style.removeProperty("padding-right"); + } }); const loaded = ref(false); diff --git a/app/pages/index.vue b/app/pages/index.vue index 43e6710..f28ddff 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -1,8 +1,5 @@