mirror of
https://github.com/woutdp/live_svelte
synced 2026-05-24 09:28:21 +00:00
New example
This commit is contained in:
parent
05363eea29
commit
0e67cff1c6
2 changed files with 55 additions and 0 deletions
33
examples/animated number/Numbers.svelte
Normal file
33
examples/animated number/Numbers.svelte
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<script>
|
||||
import {fly} from 'svelte/transition'
|
||||
|
||||
export let number = 1
|
||||
export let pushEvent
|
||||
|
||||
function increase() {
|
||||
pushEvent('set_number', { number: number + 1 })
|
||||
}
|
||||
|
||||
function decrease() {
|
||||
pushEvent('set_number', { number: number - 1 })
|
||||
}
|
||||
</script>
|
||||
|
||||
<h1 class="text-lg mb-6">Component is working, and the number should be animated</h1>
|
||||
|
||||
<button on:click={increase} class="bg-black text-white px-4 py-2 rounded-lg font-bold">+</button>
|
||||
<button on:click={decrease} class="bg-black text-white px-4 py-2 rounded-lg font-bold">-</button>
|
||||
|
||||
{#key number}
|
||||
<p class="mt-1">
|
||||
The number is:
|
||||
<br/>
|
||||
<span
|
||||
in:fly={{y: -40}}
|
||||
class="absolute px-2 mt-2"
|
||||
style="font-size: {number/2}rem;"
|
||||
>
|
||||
{number}
|
||||
</span>
|
||||
</p>
|
||||
{/key}
|
||||
22
examples/animated number/live_svelte.ex
Normal file
22
examples/animated number/live_svelte.ex
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
defmodule Examples.NumbersLive do
|
||||
use ExamplesWeb, :live_view
|
||||
|
||||
def render(assigns) do
|
||||
~H"""
|
||||
<.live_component
|
||||
module={LiveSvelte}
|
||||
id="Numbers"
|
||||
name="Numbers"
|
||||
props={%{number: @number}}
|
||||
/>
|
||||
"""
|
||||
end
|
||||
|
||||
def handle_event("set_number", %{"number" => number}, socket) do
|
||||
{:noreply, assign(socket, :number, number)}
|
||||
end
|
||||
|
||||
def mount(_params, _session, socket) do
|
||||
{:ok, assign(socket, :number, 5)}
|
||||
end
|
||||
end
|
||||
Loading…
Reference in a new issue