mirror of
https://github.com/datahub-project/datahub.git
synced 2025-08-14 20:26:53 +00:00
56 lines
1.7 KiB
Handlebars
56 lines
1.7 KiB
Handlebars
{{#if this.handleAsyncStateOnly}}
|
|
{{#if @task.isRunning}}
|
|
<div class="concurrency-task-state-handler">
|
|
<NachoAnimation::PendulumEllipsis />
|
|
</div>
|
|
{{else}}
|
|
{{yield}}
|
|
{{/if}}
|
|
{{else}}
|
|
{{#if @task.last.isError}}
|
|
{{#let (or @errorHeading "An error occurred. Please try again shortly.") as |errorMessage|}}
|
|
{{! Show entity lockup if toggled on, otherwise yield error. This allows this component to be used in interfaces
|
|
where rendering the lockup is not suitable, for example in a button
|
|
<ConcurrencyTaskStateHandler @task=task @showLockup=false>
|
|
<button>
|
|
Click Me!
|
|
</button>
|
|
</ConcurrencyTaskStateHandler>
|
|
}}
|
|
{{#if this.showLockup}}
|
|
<EmptyState
|
|
@heading={{errorMessage}}
|
|
/>
|
|
|
|
<div class="concurrency-task-state-handler__button-container">
|
|
<button
|
|
type="button"
|
|
class="nacho-button nacho-button--large-inverse"
|
|
onclick={{action this.performTask this.taskArgs}}
|
|
>
|
|
Retry
|
|
</button>
|
|
</div>
|
|
{{else}}
|
|
{{! If the callee requires more flexibility, a custom component to handle rendering the error can be provided
|
|
and will take precedence over the basic message rendering
|
|
}}
|
|
{{#if @customErrorComponent}}
|
|
{{component @customErrorComponent error=@task.last.error message=@errorHeading}}
|
|
{{else}}
|
|
{{errorMessage}}
|
|
{{/if}}
|
|
{{/if}}
|
|
{{/let}}
|
|
|
|
{{else}}
|
|
{{#if @task.isRunning}}
|
|
<div class="concurrency-task-state-handler">
|
|
<NachoAnimation::PendulumEllipsis />
|
|
</div>
|
|
{{else}}
|
|
{{yield}}
|
|
{{/if}}
|
|
{{/if}}
|
|
{{/if}}
|