templates/mdl/page_sections/snackbar.html.twig line 1

Open in your IDE?
  1. {# templates/mdl/page_sections/snackbar.html.twig #}
  2. {% with { flashes: app.flashes } %}
  3.     {% set snakbarArgs = [] %}
  4.     {% for label, messages in flashes %}
  5.         {% for message in messages %}
  6.             {% set snakbarArgs = snakbarArgs|merge(['{ label: `' ~ label ~ '`, message: `' ~ message ~ '` }']) %}
  7.         {% endfor %}
  8.     {% endfor %}
  9.     {% set snakbarArgs = snakbarArgs|join(',') %}
  10.     <div id="app-snackbar" class="mdl-js-snackbar mdl-snackbar">
  11.       <div class="mdl-snackbar__text"></div>
  12.       <button class="mdl-snackbar__action" type="button"></button>
  13.     </div>
  14.     <script>
  15.         (function() {
  16.             const snackbarContainer = document.getElementById(`app-snackbar`);
  17.             const showAppSnackbar = (args = {}) => {
  18.                 const data = {
  19.                   label: args.label || `!info`,
  20.                   message: args.message || `!message`,
  21.                   timeout: args.timeout || 2000,
  22.                   actionHandler: args.actionHandler || ( () => {alert(`!actionHandler`)} ),
  23.                   actionText: args.actionText || `!actionText`
  24.                 };
  25.                 snackbarContainer.MaterialSnackbar.showSnackbar(data);
  26.             };
  27.             setTimeout(() => {
  28.                 [ {{ snakbarArgs }} ].forEach( args => showAppSnackbar(args));
  29.             }, 2000);
  30.         }());
  31.     </script>
  32. {% endwith %}