Skip to content

Promise-based Alert, Confirm and Prompt replacement

License

Notifications You must be signed in to change notification settings

koyuspace/smalltalk

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0e0345f · Dec 3, 2023
Jul 12, 2022
Sep 19, 2015
Jul 12, 2022
Apr 1, 2019
Jul 12, 2022
Sep 19, 2015
Jul 12, 2022
Jul 12, 2022
Jul 12, 2022
Jul 12, 2022
Jan 8, 2021
Dec 15, 2020
Dec 15, 2020
Jul 13, 2022
Feb 6, 2018
Jul 12, 2022
Dec 3, 2023
Oct 18, 2020

Repository files navigation

Smalltalk License NPM version Build Status Coverage

Simple Promise-based replacement of native Alert, Confirm and Prompt.

Install

npm i smalltalk

API

First things first, require smalltalk with:

const smalltalk = require('smalltalk');

You can also use native version with:

const smalltalk = require('smalltalk/native');

When you need a bundled verseion use

import smalltalk from 'smalltalk/bundle';

In every method of smalltalk last parameter options is optional and could be used to prevent handling of cancel event and to specify custom button label.

({
    cancel: true, /* default */
});

smalltalk.alert(title, message [, options])

Alert

smalltalk
    .alert('Error', 'There was an error!')
    .then(() => {
        console.log('ok');
    });

smalltalk.confirm(title, message [, options])

Confirm

smalltalk
    .confirm('Question', 'Are you sure?')
    .then(() => {
        console.log('yes');
    })
    .catch(() => {
        console.log('no');
    });

smalltalk.prompt(title, message, value [, options])

Prompt

smalltalk
    .prompt('Question', 'How old are you?', '10')
    .then((value) => {
        console.log(value);
    })
    .catch(() => {
        console.log('cancel');
    });

Use type='password' for password fields:

smalltalk
    .prompt('Question', 'How old are you?', '10', {
        type: 'password',
    })
    .then((value) => {
        console.log(value);
    })
    .catch(() => {
        console.log('cancel');
    });

smalltalk.progress(title, message)

Progress

const progress = smalltalk.progress('Cloud Commander', 'Copy /home/coderaiser -> /home/coderaiser/2');

progress.setProgress(41)
    .catch(() => {
        console.log('abort');
    });

Custom label

You can use custom label passing into options param the buttons specification. For example :

const tryToCatch = require('try-to-catch');
const OK = 2;
const result = await tryToCatch(smalltalk.confirm, 'Question', 'Are you sure?', {
    buttons: {
        ok: 'Ok Label',
        cancel: 'Cancel Label',
    },
});

if (result.length === OK)
    console.log('yes');
else
    console.log('no');

License

MIT

About

Promise-based Alert, Confirm and Prompt replacement

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 84.6%
  • HTML 9.3%
  • CSS 6.1%