Communication.svelte 936 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <script>
  2. import { listen, emit } from "@tauri-apps/api/event";
  3. import { invoke } from "@tauri-apps/api/tauri";
  4. export let onMessage;
  5. listen("rust-event", onMessage);
  6. function log() {
  7. invoke("log_operation", {
  8. event: "tauri-click",
  9. payload: "this payload is optional because we used Option in Rust",
  10. });
  11. }
  12. function performRequest() {
  13. invoke("perform_request", {
  14. endpoint: "dummy endpoint arg",
  15. body: {
  16. id: 5,
  17. name: "test",
  18. },
  19. })
  20. .then(onMessage)
  21. .catch(onMessage);
  22. }
  23. function emitEvent() {
  24. emit("js-event", "this is the payload string");
  25. }
  26. </script>
  27. <div>
  28. <button class="button" id="log" on:click={log}>Call Log API</button>
  29. <button class="button" id="request" on:click={performRequest}>
  30. Call Request (async) API
  31. </button>
  32. <button class="button" id="event" on:click={emitEvent}>
  33. Send event to Rust
  34. </button>
  35. </div>