mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
49 lines
1.7 KiB
Svelte
49 lines
1.7 KiB
Svelte
<script lang="ts">
|
|
export let completed = false;
|
|
export let current = false;
|
|
export let currentSub = 0;
|
|
export let isSub = false;
|
|
export let step: { text: string; disabled?: boolean; substeps?: { text: string }[] };
|
|
</script>
|
|
|
|
<li
|
|
class:steps-item={!isSub}
|
|
class:steps-sub-item={isSub}
|
|
class:u-opacity-50={step.disabled}
|
|
style:cursor={completed ? 'pointer' : 'default'}
|
|
aria-label={`${completed ? 'done' : current ? 'current' : ''} step`}>
|
|
<button
|
|
type="button"
|
|
on:click|preventDefault
|
|
disabled={!completed}
|
|
style={`cursor: ${completed ? 'pointer' : 'default'};`}>
|
|
{#if isSub}
|
|
<span class="text">{step.text}</span>
|
|
{:else}
|
|
<div class="steps-item-wrapper">
|
|
{#if completed}
|
|
<div class="bullet is-done">
|
|
<span class="icon-check" aria-hidden="true" />
|
|
</div>
|
|
{:else}
|
|
<div class="bullet" class:is-current={current} />
|
|
{/if}
|
|
<div class="steps-item-content">
|
|
<span class="text">{step.text}</span>
|
|
{#if step?.substeps}
|
|
<ul class="steps-sub">
|
|
{#each step.substeps as subStep, index}
|
|
<svelte:self
|
|
isSub={true}
|
|
step={subStep}
|
|
current={currentSub === index}
|
|
completed={index < currentSub} />
|
|
{/each}
|
|
</ul>
|
|
{/if}
|
|
</div>
|
|
</div>
|
|
{/if}
|
|
</button>
|
|
</li>
|