Skip to content

Commit 1bb6722

Browse files
committed
Refactor preview component
1 parent 1f2062b commit 1bb6722

2 files changed

Lines changed: 37 additions & 30 deletions

File tree

src/components/Header.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
type="a"
3636
/>
3737
<q-btn
38+
v-if="showOpenPreviewButton"
3839
class="lt-lg gt-xs"
3940
flat
4041
icon="menu"
@@ -52,6 +53,13 @@ import { useRouter } from 'vue-router'
5253
export default defineComponent({
5354
name: 'Header',
5455
emits: ['togglePreview'],
56+
props: {
57+
showOpenPreviewButton: {
58+
type: Boolean,
59+
required: false,
60+
default: false
61+
}
62+
},
5563
setup () {
5664
const router = useRouter()
5765
return {

src/components/LayoutStepper.vue

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<template>
22
<q-layout view="hHh lpR fFf">
3+
<q-resize-observer v-on:resize="onResize" />
34
<q-header id="header-inner">
45
<a
56
class="skip-to-main-content-link"
@@ -12,22 +13,26 @@
1213
Skip to main content
1314
</a>
1415
<Header
15-
v-on:togglePreview="onTogglePreview"
16+
v-bind:show-open-preview-button="isPreviewDrawer"
17+
v-on:togglePreview="togglePreview"
1618
/>
1719
</q-header>
1820

1921
<q-drawer
2022
id="preview-drawer"
21-
elevated
22-
overlay
2323
side="right"
24-
v-model="isPreviewDrawerEnabled"
24+
v-bind:breakpoint="1440"
25+
v-bind:overlay="isPreviewDrawer"
26+
v-model="isPreviewDrawerOpen"
2527
v-bind:width="600"
2628
>
27-
<div id="preview-button-close">
29+
<div
30+
v-if="isPreviewDrawer"
31+
id="preview-button-close"
32+
>
2833
<q-btn
2934
icon="close"
30-
v-on:click="onTogglePreview"
35+
v-on:click="togglePreview"
3136
>
3237
Close preview
3338
</q-btn>
@@ -44,7 +49,7 @@
4449

4550
<q-page-container>
4651
<q-page
47-
class="row"
52+
class="row bg-secondary"
4853
id="main"
4954
role="main"
5055
tabindex="0"
@@ -64,18 +69,6 @@
6469
<StepperActions />
6570
</div>
6671
</div>
67-
<div
68-
id="preview-static"
69-
class="col-12 col-lg-5 gt-md"
70-
>
71-
<div id="preview-content">
72-
<Preview />
73-
</div>
74-
75-
<div id="preview-button-bar">
76-
<DownloadButton v-if="isNotFinish" />
77-
</div>
78-
</div>
7972
</q-page>
8073
</q-page-container>
8174

@@ -93,6 +86,7 @@ import Header from 'components/Header.vue'
9386
import Preview from 'components/Preview.vue'
9487
import Stepper from 'components/Stepper.vue'
9588
import StepperActions from 'components/StepperActions.vue'
89+
import { useQuasar } from 'quasar'
9690
import { useRoute } from 'vue-router'
9791
9892
export default defineComponent({
@@ -106,7 +100,10 @@ export default defineComponent({
106100
StepperActions
107101
},
108102
setup () {
109-
const isPreviewDrawerEnabled = ref(false)
103+
const q = useQuasar()
104+
const screenIsBigEnough = computed(() => q.screen.lg || q.screen.xl)
105+
const isPreviewDrawerOpen = ref(screenIsBigEnough.value)
106+
const onResize = () => { isPreviewDrawerOpen.value = false }
110107
return {
111108
focusMain: () => {
112109
const element = window.document.getElementById('main')
@@ -117,8 +114,10 @@ export default defineComponent({
117114
const currentPath = useRoute().path
118115
return currentPath !== '/finish'
119116
}),
120-
isPreviewDrawerEnabled,
121-
onTogglePreview: () => { isPreviewDrawerEnabled.value = !isPreviewDrawerEnabled.value },
117+
isPreviewDrawerOpen,
118+
onResize,
119+
togglePreview: () => { isPreviewDrawerOpen.value = !isPreviewDrawerOpen.value },
120+
isPreviewDrawer: computed(() => q.screen.sm || q.screen.md),
122121
skipToMainFocused: ref(false)
123122
}
124123
}
@@ -131,15 +130,15 @@ export default defineComponent({
131130
.skip-to-main-content-link {
132131
position: absolute;
133132
left: -9999px;
134-
z-index: 999;
135-
padding: 1em;
136-
background-color: black;
137-
color: white;
138-
opacity: 0;
133+
z-index: 999;
134+
padding: 1em;
135+
background-color: black;
136+
color: white;
137+
opacity: 0;
139138
}
140139
.skip-to-main-content-link:focus {
141-
left: 50%;
142-
transform: translateX(-50%);
143-
opacity: 1;
140+
left: 50%;
141+
transform: translateX(-50%);
142+
opacity: 1;
144143
}
145144
</style>

0 commit comments

Comments
 (0)