Skip to content

Commit b30f9a8

Browse files
committed
feat(pdf): preview
1 parent 85724d8 commit b30f9a8

File tree

15 files changed

+189
-19
lines changed

15 files changed

+189
-19
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<template>
2+
<AsideText
3+
class="wb-aside-button"
4+
:text="t('editor.aside.pdf.preview')"
5+
:shortcuts="store.state.shortcuts.previewPDF[0]"
6+
@click.prevent="onPreviewPDF"
7+
>
8+
</AsideText>
9+
</template>
10+
11+
<script setup lang="ts">
12+
import { useI18n } from 'vue-i18n'
13+
import { useStore } from 'vuex'
14+
15+
const store = useStore()
16+
const { t } = useI18n()
17+
18+
const onPreviewPDF = async () => {
19+
store.commit('absolute/switchPdfPreview', true)
20+
}
21+
</script>

src/components/editor/aside/project/AsideBarProject.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<AsideSaveProject v-if="name !== useEnv().projectEmpty()" />
2525
<AsideLine v-if="name !== useEnv().projectEmpty()" />
2626
<AsideConfigurationPDF v-if="name !== useEnv().projectEmpty()" />
27+
<AsidePreviewPDF v-if="name !== useEnv().projectEmpty()" />
2728
<AsideGeneratePDF v-if="name !== useEnv().projectEmpty()" />
2829
<AsideLine v-if="name !== useEnv().projectEmpty()" />
2930
<AsideAddonLogger v-if="name !== useEnv().projectEmpty()" />
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<template>
2+
<HeroIcon class="wb-text" @click.prevent="onClick">
3+
<svg
4+
xmlns="http://www.w3.org/2000/svg"
5+
class="h-6 w-6"
6+
viewBox="0 0 20 20"
7+
fill="currentColor"
8+
>
9+
<path
10+
fill-rule="evenodd"
11+
d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
12+
clip-rule="evenodd"
13+
/>
14+
</svg>
15+
</HeroIcon>
16+
<div ref="preview" class="w-1/2 h-1/2 p-2"></div>
17+
</template>
18+
19+
<script setup lang="ts">
20+
import { usePDF } from '@/use/pdf'
21+
import { ref, onMounted } from 'vue'
22+
import { useStore } from 'vuex'
23+
24+
const preview = ref<HTMLElement | null>(null)
25+
const store = useStore()
26+
27+
onMounted(() => {
28+
usePDF().external(store).onPreviewPDF(preview.value)
29+
})
30+
31+
const onClick = () => {
32+
store.commit('absolute/switchPdfPreview', false)
33+
}
34+
</script>
Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
<template>
2-
<EditorCommands v-if="store.state.absolute.commands" />
3-
<EditorShortcutsSwitcher v-if="store.state.absolute.shortcuts.switcher" />
4-
<ProviderLoad v-if="store.state.absolute.load" />
5-
<ProviderLogger v-if="store.state.absolute.logger" />
6-
<ProviderPDF v-if="store.state.absolute.pdf.configuration" />
2+
<EditorCommands v-if="absolute.commands" />
3+
<EditorShortcutsSwitcher v-if="absolute.shortcuts.switcher" />
4+
<ProviderLoad v-if="absolute.load" />
5+
<ProviderLogger v-if="absolute.logger" />
6+
<ProviderPDFConfiguration v-if="absolute.pdf.configuration" />
7+
<ProviderPDFPreview v-if="absolute.pdf.preview" />
78
</template>
89

910
<script setup lang="ts">
11+
import { computed } from 'vue'
1012
import { useStore } from 'vuex'
1113
1214
const store = useStore()
15+
16+
const absolute = computed(() => store.state.absolute)
1317
</script>

src/components/provider/ProviderPDF.vue renamed to src/components/provider/pdf/ProviderPDFConfiguration.vue

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<div
3-
id="logger-absolute"
3+
id="pdf-absolute"
44
class="
55
absolute
66
top-1/2
@@ -21,12 +21,3 @@
2121
<PDFConfiguration />
2222
</div>
2323
</template>
24-
25-
<script setup lang="ts">
26-
import { useStore } from 'vuex'
27-
import { computed } from 'vue'
28-
29-
const store = useStore()
30-
31-
const logger = computed(() => store.state.logger.content)
32-
</script>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<template>
2+
<div
3+
id="pdf-absolute"
4+
class="
5+
absolute
6+
top-1/2
7+
left-1/2
8+
transform
9+
-translate-x-1/2 -translate-y-1/2
10+
overflow-y-auto
11+
duration-700
12+
bg-white
13+
dark:bg-gray-800
14+
transition
15+
flex flex-col
16+
z-preview
17+
"
18+
>
19+
<PDFPreview />
20+
</div>
21+
</template>

src/lang/br/editor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ export default {
9898
},
9999
pdf: {
100100
title: 'Gerar PDF',
101+
preview: 'Simular PDF',
101102
configuration: 'Configurar PDF',
102103
},
103104
commands: {

src/lang/en/editor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ export default {
9898
},
9999
pdf: {
100100
title: 'Generate PDF',
101+
preview: 'Preview PDF',
101102
configuration: 'Configure PDF',
102103
},
103104
commands: {

src/store/module/absolute.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default {
1616
logger: false,
1717
pdf: {
1818
configuration: false,
19+
preview: false,
1920
},
2021
} as AbsoluteState),
2122
mutations: {
@@ -40,6 +41,9 @@ export default {
4041
switchPdfConfiguration(state: any, b: boolean) {
4142
state.pdf.configuration = b
4243
},
44+
switchPdfPreview(state: any, b: boolean) {
45+
state.pdf.preview = b
46+
},
4347
},
4448
actions: {},
4549
getters: {},

src/store/module/shortcuts.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export default {
1313
generatePDF: useDefines().shortcuts('generatePDF'),
1414
switcherRawText: useDefines().shortcuts('switcherRawText'),
1515
logger: useDefines().shortcuts('logger'),
16+
previewPDF: useDefines().shortcuts('previewPDF'),
1617
configurationPDF: useDefines().shortcuts('configurationPDF'),
1718
} as ShortcutsState),
1819
mutations: {},

0 commit comments

Comments
 (0)