From bbef87b5ee679b68dc315c7e2002847afa129de9 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 18 Apr 2022 17:58:59 +1200 Subject: [PATCH] feat: basic custom bottom sheet --- .../CustomComponents/swipeableBottomSheet.vue | 36 ---------- .../swipeableBottomSheet/_variables.scss | 2 + .../swipeableBottomSheet/index.js | 4 ++ .../swipeableBottomSheet.js | 33 +++++++++ .../swipeableBottomSheet.sass | 38 ++++++++++ NUXT/pages/watch.vue | 71 +++++++++++++------ NUXT/plugins/constants.js | 2 +- 7 files changed, 127 insertions(+), 59 deletions(-) delete mode 100644 NUXT/components/CustomComponents/swipeableBottomSheet.vue create mode 100644 NUXT/components/ExtendedComponents/swipeableBottomSheet/_variables.scss create mode 100644 NUXT/components/ExtendedComponents/swipeableBottomSheet/index.js create mode 100644 NUXT/components/ExtendedComponents/swipeableBottomSheet/swipeableBottomSheet.js create mode 100644 NUXT/components/ExtendedComponents/swipeableBottomSheet/swipeableBottomSheet.sass diff --git a/NUXT/components/CustomComponents/swipeableBottomSheet.vue b/NUXT/components/CustomComponents/swipeableBottomSheet.vue deleted file mode 100644 index b9f552c..0000000 --- a/NUXT/components/CustomComponents/swipeableBottomSheet.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/NUXT/components/ExtendedComponents/swipeableBottomSheet/_variables.scss b/NUXT/components/ExtendedComponents/swipeableBottomSheet/_variables.scss new file mode 100644 index 0000000..96c8ce2 --- /dev/null +++ b/NUXT/components/ExtendedComponents/swipeableBottomSheet/_variables.scss @@ -0,0 +1,2 @@ +@import "~vuetify/src/styles/settings/_variables"; +$bottom-sheet-inset-width: 70% !default; diff --git a/NUXT/components/ExtendedComponents/swipeableBottomSheet/index.js b/NUXT/components/ExtendedComponents/swipeableBottomSheet/index.js new file mode 100644 index 0000000..e82b45a --- /dev/null +++ b/NUXT/components/ExtendedComponents/swipeableBottomSheet/index.js @@ -0,0 +1,4 @@ +import swipeableBottomSheet from "./swipeableBottomSheet"; + +export { swipeableBottomSheet }; +export default swipeableBottomSheet; diff --git a/NUXT/components/ExtendedComponents/swipeableBottomSheet/swipeableBottomSheet.js b/NUXT/components/ExtendedComponents/swipeableBottomSheet/swipeableBottomSheet.js new file mode 100644 index 0000000..1724842 --- /dev/null +++ b/NUXT/components/ExtendedComponents/swipeableBottomSheet/swipeableBottomSheet.js @@ -0,0 +1,33 @@ +import "./swipeableBottomSheet.sass"; + +// Extensions +import { VDialog } from "vuetify/lib"; + +/* @vue/component */ +export default VDialog.extend({ + name: "swipeable-bottom-sheet", + + props: { + inset: Boolean, + maxWidth: [String, Number], + transition: { + type: String, + default: "bottom-sheet-transition", + }, + }, + + computed: { + classes() { + return { + ...VDialog.options.computed.classes.call(this), + "swipeable-bottom-sheet": true, + "swipeable-bottom-sheet--inset": this.inset, + }; + }, + contentClasses() { + return { + "swipeable-bottom-sheet__content": true, + }; + }, + }, +}); diff --git a/NUXT/components/ExtendedComponents/swipeableBottomSheet/swipeableBottomSheet.sass b/NUXT/components/ExtendedComponents/swipeableBottomSheet/swipeableBottomSheet.sass new file mode 100644 index 0000000..e974009 --- /dev/null +++ b/NUXT/components/ExtendedComponents/swipeableBottomSheet/swipeableBottomSheet.sass @@ -0,0 +1,38 @@ +@import './_variables.scss' + +// Transition +.bottom-sheet-transition + &-enter + transform: translateY(100%) + + &-leave-to + transform: translateY(100%) + +// Block + +.swipeable-bottom-sheet + + &.v-dialog + align-self: flex-end + border-radius: 0 + flex: 0 1 auto + margin: 0 + overflow: visible + + &.swipeable-bottom-sheet--inset + max-width: $bottom-sheet-inset-width + + @media #{map-get($display-breakpoints, 'xs-only')} + max-width: none + + &.v-dialog:not(.v-dialog--fullscreen) + max-height: 100% + +.swipeable-bottom-sheet__content + position: sticky !important + bottom: 0 + top: unset + overflow-y: auto + height: 100% + + diff --git a/NUXT/pages/watch.vue b/NUXT/pages/watch.vue index 80ce577..6f8502f 100644 --- a/NUXT/pages/watch.vue +++ b/NUXT/pages/watch.vue @@ -1,6 +1,6 @@