github.com/secoba/wails/v2@v2.6.4/pkg/templates/generate/assets/vanilla-ts/frontend/src/main.ts (about)

     1  import './style.css';
     2  import './app.css';
     3  
     4  import logo from './assets/images/logo-universal.png';
     5  import {Greet} from '../wailsjs/go/main/App';
     6  
     7  // Setup the greet function
     8  window.greet = function () {
     9      // Get name
    10      let name = nameElement!.value;
    11  
    12      // Check if the input is empty
    13      if (name === "") return;
    14  
    15      // Call App.Greet(name)
    16      try {
    17          Greet(name)
    18              .then((result) => {
    19                  // Update result with data back from App.Greet()
    20                  resultElement!.innerText = result;
    21              })
    22              .catch((err) => {
    23                  console.error(err);
    24              });
    25      } catch (err) {
    26          console.error(err);
    27      }
    28  };
    29  
    30  document.querySelector('#app')!.innerHTML = `
    31      <img id="logo" class="logo">
    32        <div class="result" id="result">Please enter your name below 👇</div>
    33        <div class="input-box" id="input">
    34          <input class="input" id="name" type="text" autocomplete="off" />
    35          <button class="btn" onclick="greet()">Greet</button>
    36        </div>
    37      </div>
    38  `;
    39  (document.getElementById('logo') as HTMLImageElement).src = logo;
    40  
    41  let nameElement = (document.getElementById("name") as HTMLInputElement);
    42  nameElement.focus();
    43  let resultElement = document.getElementById("result");
    44  
    45  declare global {
    46      interface Window {
    47          greet: () => void;
    48      }
    49  }