New example

This commit is contained in:
Wout De Puysseleir 2023-02-23 16:42:05 -08:00
parent 05363eea29
commit 0e67cff1c6
No known key found for this signature in database
GPG key ID: 3DE9371B50FEC46A
2 changed files with 55 additions and 0 deletions

View 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}

View 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