The toast can be expired based on the timeOut property. The toast can live till the time out reaches without user interaction, a time out value is considered as a millisecond.
timeOut
delay can be visually represented using Progress Bar.You can terminate the process by using the showCloseButton property for destroying the toast at any time.
import {Toast} from '@syncfusion/ej2-notifications';
import { enableRipple, closest} from '@syncfusion/ej2-base';
enableRipple(true);
let toast: Toast = new Toast({
title: 'Anjolie Stokes',
content: '<p><img src="https://ej2.syncfusion.com/vue/demos/src/toast/resource/laura.png"></p>',
position: { X: "Right", Y: "Bottom" },
width: 230,
height: 250,
buttons : [{
model: { content: "Ignore" }
}, {
model: { content: "reply" }
}]
});
toast.appendTo('#elementToastTime');
toast.show();
document.getElementById('show_toast').onclick = () => {
let value = parseInt(document.getElementById('toast_input_index').value)
toast.show({timeOut: value});
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 Toast</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Typescript Toolbar Controls" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.1.35/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<div class="e-float-input"><input class="e-input" id="toast_input_index" required="" value="0"><span class="e-float-line"></span><label class="e-float-text">Enter timeOut</label></div>
<div class='row'> <button style="margin-top: 20px;" class="e-btn" id="show_toast"> Show Toast</button> </div>
<div id='element'></div>
<div id="elementToastTime"></div>
<br/><br/>
<div id='result'></div>
</div>
</body>
</html>
You can prevent auto hiding in a toast as visible like static by setting zero (0
) value in the timeOut Property.
import {Toast} from '@syncfusion/ej2-notifications';
import { enableRipple, closest} from '@syncfusion/ej2-base';
enableRipple(true);
let toast: Toast = new Toast({
title: 'Matt sent you a friend request',
content: 'You have a new friend request yet to accept',
showCloseButton: true,
position: { X: "Right" },
timeOut: 0
});
toast.appendTo('#element');
toast.show();
document.getElementById('show_toast').onclick = () => {
toast.show();
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 Toast</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Typescript Toolbar Controls" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.1.35/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>LOADING....</div>
<div id='container'>
<div class='row'> <button class="e-btn" id="show_toast"> Show Toast</button> </div>
<div id='element'></div>
<br/><br/>
<div id='result'></div>
<div id='templateToast' style="display: none;color:red"> System affected by virus !!! </div>
</div>
</body>
</html>