Print.svelte 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <script>
  2. import { schueler, medien, titel, print, configData } from "./../stores.js";
  3. import { ipcRenderer } from 'electron'
  4. import PrintKurs from './Print/Kurs.svelte'
  5. import PrintSchueler from './Print/Schueler.svelte'
  6. import PrintMedien from './Print/Medien.svelte'
  7. let c
  8. ipcRenderer.on('pdf-reply', (event, arg) => {
  9. console.log('PDF: ', arg)
  10. })
  11. ipcRenderer.on('print-reply', (event, arg) => {
  12. console.log('Print: ', arg)
  13. })
  14. function handle_keydown(event) {
  15. if (event.key === "Escape") $print = false;
  16. if (event.key === 'p') ipcRenderer.send('print', 'print')
  17. if (event.key === 's') ipcRenderer.send('pdf', "test_case.pdf")
  18. }
  19. async function loader (file) {
  20. const component = import(`./Print/${file}.svelte`)
  21. return component
  22. }
  23. $: if ($print.name === 'Schueler') c = PrintSchueler
  24. else if ($print.name === 'Kurs') c = PrintKurs;
  25. else if ($print.name === 'Medien') c = PrintMedien;
  26. </script>
  27. <svelte:window on:keydown={handle_keydown} />
  28. {#if c}
  29. <article class="message is-default no-print" style="position: absolute; top: 2rem; left: 65rem">
  30. <div class="message-header">
  31. <span class="icon">
  32. <i class="mdi">info</i>
  33. </span>
  34. &nbsp;Tastaturbefehle
  35. </div>
  36. <div class="message-body">
  37. Drucken: <b>p</b>
  38. <br>
  39. Abbrechen: <b>ESC</b>
  40. </div>
  41. </article>
  42. <svelte:component this={c} />
  43. {/if}