dialog.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. var defaultPathInput = document.getElementById("dialog-default-path");
  2. var filterInput = document.getElementById("dialog-filter");
  3. var multipleInput = document.getElementById("dialog-multiple");
  4. var directoryInput = document.getElementById("dialog-directory");
  5. document.getElementById("open-dialog").addEventListener("click", function () {
  6. window.__TAURI__.dialog
  7. .open({
  8. defaultPath: defaultPathInput.value || null,
  9. filters: filterInput.value ? [{
  10. name: 'Tauri Example',
  11. extensions: filterInput.value.split(',').map(f => f.trim())
  12. }] : [],
  13. multiple: multipleInput.checked,
  14. directory: directoryInput.checked,
  15. })
  16. .then(function (res) {
  17. if (Array.isArray(res)) {
  18. registerResponse(res);
  19. } else {
  20. var pathToRead = res;
  21. var isFile = pathToRead.match(/\S+\.\S+$/g);
  22. window.__TAURI__.fs
  23. .readBinaryFile(pathToRead)
  24. .then(function (response) {
  25. if (isFile) {
  26. if (pathToRead.includes(".png") || pathToRead.includes(".jpg")) {
  27. arrayBufferToBase64(new Uint8Array(response), function (base64) {
  28. var src = "data:image/png;base64," + base64;
  29. registerResponse('<img src="' + src + '"></img>');
  30. });
  31. } else {
  32. registerResponse(res);
  33. }
  34. } else {
  35. registerResponse(res);
  36. }
  37. })
  38. .catch(registerResponse(res));
  39. }
  40. })
  41. .catch(registerResponse);
  42. });
  43. document.getElementById("save-dialog").addEventListener("click", function () {
  44. window.__TAURI__.dialog
  45. .save({
  46. defaultPath: defaultPathInput.value || null,
  47. filters: filterInput.value ? [{
  48. name: 'Tauri Example',
  49. extensions: filterInput.value.split(',').map(f => f.trim())
  50. }] : [],
  51. })
  52. .then(registerResponse)
  53. .catch(registerResponse);
  54. });