Show that a process is in progress. A process can have two possible outcomes. It could either pass or fail. The process indicator can be used within the page but looks cooler when used in a Modal component. There are three parts to using the process indicator component.
processingprocess passedprocess failedNow that we have seen all three parts that make up this component, let's build a flow that makes use of all three parts. This is heavily dependent on Javascript but nothing scary. Let's simulate deleting of a pending payment.
Let's break down what is happening by first looking at the buttons that triggered the modal.
<x-bladewind::button
onclick="deletePayment('pass')"
size="small">
Delete Payment and Pass
</x-bladewind::button>
<x-bladewind::button
onclick="deletePayment('fail')"
size="small">
Delete Payment and Fail
</x-bladewind::button>
Next, let's look at the modal element and the two possible process outcomes
<x-bladewind::modal
name="delete-paymentz"
show_action_buttons="false">
// this shows that process is in progress
<x-bladewind::processing
name="processing-delete"
message="Deleting pending payment"
hide="false" />
// this is shown when process completes with a pass
<x-bladewind::process-complete
name="delete-payment-yes"
process_completed_as="passed"
button_label="Done"
button_action="alert('i passed... closing modal now'); hideModal('delete-paymentz')"
message="Pending payment was deleted successfully" />
// this is shown when process completes with a failure
<x-bladewind::process-complete
name="delete-payment-no"
process_completed_as="failed"
button_label="Done"
button_action="alert('i failed... closing modal now'); hideModal('delete-paymentz')"
message="Pending payment could not be deleted" />
</x-bladewind::modal>
Now let's take a look at the Javascript function both buttons are calling.
<script>
deletePayment = (mode) => {
// it is preferred to hide all three elements
// and show only the element that needs to be shown
// hide the processing delete element
hideHideables();
// show the modal and the processing delete element
// showModal() and unhide() are helper functions
// available in BladewindUI
showModal('delete-paymentz');
unhide('.processing-delete');
// this example only shows a specific outcome
// after 3 seconds based on which button was clicked.
// In your apps you will typically display an outcome
// based on some API return value or something similar
setTimeout(function() {
hideHideables();
// determine which process outcome to show
(mode == 'pass') ?
unhide('.delete-payment-yes') :
unhide('.delete-payment-no');
}, 3000);
}
hideHideables = () => {
// hide() is a helper function available in BladewindUI
hide('.processing-delete');
hide('.delete-payment-yes');
hide('.delete-payment-no');
}
</script>
The table below shows a comprehensive list of all the attributes available for the Process Indicator component.
| Option | Default | Available Values |
|---|---|---|
| name | processing | Unique name for the processing component. Usually useful to prevent erratic behaviour if there are multiple Process Indicators on the same page. |
| hide | true | The processing component is hidden by default. true false |
| message | blank | Message to display below the spinning icon. |
| Option | Default | Available Values |
|---|---|---|
| name | process-complete | Unique name for the process complete component. Usually useful to prevent erratic behaviour if there are multiple Process Complete components on the same page. |
| process_completed_as | passed | There are two possible values. This attribute determines which icon to display based on the outcome. A pass will display a green thumbs up icon. A fail will display a red thumbs down icon. passed failed |
| message | blank | Message to display below the thumbs up or down icon. |
| button_label | blank | Label to display on the call to action button when process is complete. |
| button_action | blank | Javascript function to call when the call to action button is clicked. |
| hide | true | The process complete component is hidden by default. true false |
<x-bladewind::processing
name="processing-delete"
message="Deleting pending payment"
hide="false" />
// this is shown when process completes with a pass
<x-bladewind::process-complete
name="delete-payment-yes"
process_completed_as="passed"
hide="false"
button_label="Done"
button_action="hideModal('delete-paymentz')"
message="Pending payment was deleted successfully" />
// this is shown when process completes with a failure
<x-bladewind::process-complete
name="delete-payment-no"
process_completed_as="failed"
hide="false"
button_label="Done"
button_action="hideModal('delete-paymentz')"
message="Pending payment could not be deleted" />
resources > views > components > bladewind > processing.blade.php
and resources > views > components > bladewind > process-complete.blade.php