Files
windmill/frontend/src/lib/components/common/button/RefreshButton.svelte
T
Guilhem 94e5c21e25 glm/fix-prop-picker-position (#6991)
* fix button fill container

* fix popover overflow

* Update script picker to new guidelines

* fix expand sublow button

* fix scroll

* fix popover dark mode

* fix refresh button

* nit

* fix popover oferflow

* nit
2025-10-29 21:03:12 +00:00

41 lines
835 B
Svelte

<script lang="ts">
import { Button, ButtonType } from '$lib/components/common'
import { RefreshCw } from 'lucide-svelte'
import Popover from '$lib/components/Popover.svelte'
interface Props {
loading: boolean
size?: ButtonType.UnifiedSize
light?: boolean
onClick?: () => void
}
let { loading, size = 'md', onClick }: Props = $props()
let buttonHover = $state(false)
</script>
<Popover>
<Button
on:mouseenter={() => (buttonHover = true)}
on:mouseleave={() => (buttonHover = false)}
color="light"
unifiedSize={size}
variant="subtle"
{onClick}
startIcon={{ icon: RefreshCw, props: { class: loading ? 'animate-spin' : '' } }}
></Button>
{#snippet text()}
{#if loading}
{#if buttonHover}
Stop Refreshing
{:else}
Refreshing...
{/if}
{:else}
Refresh
{/if}
{/snippet}
</Popover>