Webアプリケーションの操作完了時には、flash(一時的なメッセージ変数)を通じて通知をフィードバックするケースが多くあります。
Material Components Webでは画面下から一時的にポップアップするSnackbarを活用できます。
Snackbarの実装方法は、 公式ドキュメントに解説があります。
Railsのflashと組み合わせた場合のコード例は以下のとおりです。(MaterialComponentsの初期化は含んでいますが、ライブラリ(JS/CSS)インクルードは別途必要)
<section class="mdc-snackbar" aria-live="assertive" aria-atomic="true" aria-hidden="true" data-mdc-auto-init="MDCSnackbar">
<div class="mdc-snackbar__text"></div>
<div class="mdc-snackbar__action-wrapper">
<button type="button" class="mdc-button mdc-snackbar__action-button"></button>
</div>
</section>
<script>
window.mdc.autoInit();
var snackbar = new mdc.snackbar.MDCSnackbar(document.querySelector('.mdc-snackbar'));
<% if flash[:notice].present? %>
var dataObj = { message: "<%= notice %>" };
snackbar.show(dataObj);
<% end %>
</script>
各画面の通知インターフェースをSnackbarに集約する場合は、共通テンプレートに実装しておけばflashの処理以外の再実装を避けられます。
⁋ 2017/09/11↻ 2024/11/07
中馬崇尋
Chuma Takahiro
Chuma Takahiro