Dialog Svelte Component
There is no specific Dialog Svelte component, you need to use core Dialog component.
Examples
dialog.svelte
<script>
import { f7, Navbar, Page, BlockTitle, Block, Button } from 'framework7-svelte';
function openAlert() {
f7.dialog.alert('Hello!');
}
function openConfirm() {
f7.dialog.confirm('Are you feel good today?', () => {
f7.dialog.alert('Great!');
});
}
function openPrompt() {
f7.dialog.prompt('What is your name?', (name) => {
f7.dialog.confirm(`Are you sure that your name is ${name}?`, () => {
f7.dialog.alert(`Ok, your name is ${name}`);
});
});
}
function openLogin() {
f7.dialog.login('Enter your username and password', (username, password) => {
f7.dialog.alert(`Thank you!<br>Username:${username}<br>Password:${password}`);
});
}
function openPassword() {
f7.dialog.password('Enter your password', (password) => {
f7.dialog.alert(`Thank you!<br>Password:${password}`);
});
}
function openAlerts() {
f7.dialog.alert('Alert 1');
f7.dialog.alert('Alert 2');
f7.dialog.alert('Alert 3');
f7.dialog.alert('Alert 4');
f7.dialog.alert('Alert 5');
}
function openVerticalButtons() {
f7.dialog
.create({
title: 'Vertical Buttons',
buttons: [
{
text: 'Button 1',
},
{
text: 'Button 2',
},
{
text: 'Button 3',
},
],
verticalButtons: true,
})
.open();
}
function openPreloader() {
f7.dialog.preloader();
setTimeout(() => {
f7.dialog.close();
}, 3000);
}
function openCustomPreloader() {
f7.dialog.preloader('My text...');
setTimeout(() => {
f7.dialog.close();
}, 3000);
}
function openInfiniteProgress() {
f7.dialog.progress();
setTimeout(() => {
f7.dialog.close();
}, 3000);
}
function openDeterminedProgress() {
let progress = 0;
const dialog = f7.dialog.progress('Loading assets', progress);
dialog.setText('Image 1 of 10');
const interval = setInterval(() => {
progress += 10;
dialog.setProgress(progress);
dialog.setText(`Image ${progress / 10} of 10`);
if (progress === 100) {
clearInterval(interval);
dialog.close();
}
}, 300);
}
</script>
<Page>
<Navbar title="Dialog" backLink />
<Block strong inset>
<p>
There are 1:1 replacements of native Alert, Prompt and Confirm modals. They support callbacks,
have very easy api and can be combined with each other. Check these examples:
</p>
<p class="grid grid-cols-3 grid-gap">
<Button fill round onClick={openAlert}>Alert</Button>
<Button fill round onClick={openConfirm}>Confirm</Button>
<Button fill round onClick={openPrompt}>Prompt</Button>
</p>
<p class="grid grid-cols-2 grid-gap">
<Button fill round onClick={openLogin}>Login</Button>
<Button fill round onClick={openPassword}>Password</Button>
</p>
</Block>
<BlockTitle>Vertical Buttons</BlockTitle>
<Block strong inset>
<p>
<Button fill round onClick={openVerticalButtons}>Vertical Buttons</Button>
</p>
</Block>
<BlockTitle>Preloader Dialog</BlockTitle>
<Block strong inset>
<p class="grid grid-cols-2 grid-gap">
<Button fill round onClick={openPreloader}>Preloader</Button>
<Button fill round onClick={openCustomPreloader}>Custom Text</Button>
</p>
</Block>
<BlockTitle>Progress Dialog</BlockTitle>
<Block strong inset>
<p class="grid grid-cols-2 grid-gap">
<Button fill round onClick={openInfiniteProgress}>Infinite</Button>
<Button fill round onClick={openDeterminedProgress}>Determined</Button>
</p>
</Block>
<BlockTitle>Dialogs Stack</BlockTitle>
<Block strong inset>
<p>
This feature doesn't allow to open multiple dialogs at the same time, and will automatically
open next dialog when you close the current one. Such behavior is similar to browser native
dialogs:
</p>
<p>
<Button fill round onClick={openAlerts}>Open Multiple Alerts</Button>
</p>
</Block>
</Page>
On this page






