mirror of https://github.com/sveltejs/svelte
Merge pull request #2425 from sveltejs/gh-2423
update svelte:options tutorial chapter, remove examplepull/2427/head
commit
d6d9a5ee01
@ -1,14 +0,0 @@
|
||||
<script>
|
||||
import Square from './Square.svelte';
|
||||
</script>
|
||||
|
||||
<style>
|
||||
svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
<svg viewBox="0 0 100 100">
|
||||
<Square cx={50} cy={50} size={40} style="fill: #ff3e00"/>
|
||||
</svg>
|
@ -1,15 +0,0 @@
|
||||
<svelte:options namespace="svg"/>
|
||||
|
||||
<script>
|
||||
export let cx;
|
||||
export let cy;
|
||||
export let size;
|
||||
export let style;
|
||||
|
||||
$: x1 = cx - size / 2;
|
||||
$: y1 = cy - size / 2;
|
||||
$: x2 = x1 + size;
|
||||
$: y2 = y1 + size;
|
||||
</script>
|
||||
|
||||
<polygon points="{x1},{y1} {x2},{y1} {x2},{y2} {x1},{y2}" {style}/>
|
@ -1,3 +0,0 @@
|
||||
{
|
||||
"title": "<svelte:options>"
|
||||
}
|
@ -1,13 +1,11 @@
|
||||
import { afterUpdate } from 'svelte';
|
||||
export default function flash(element) {
|
||||
element.style.transition = 'none';
|
||||
element.style.color = 'rgba(255,62,0,1)';
|
||||
element.style.backgroundColor = 'rgba(255,62,0,0.2)';
|
||||
|
||||
export default function flash(fn) {
|
||||
afterUpdate(() => {
|
||||
const span = fn();
|
||||
|
||||
span.style.color = 'red';
|
||||
|
||||
setTimeout(() => {
|
||||
span.style.color = 'black';
|
||||
}, 400);
|
||||
setTimeout(() => {
|
||||
element.style.transition = 'color 1s, background 1s';
|
||||
element.style.color = '';
|
||||
element.style.backgroundColor = '';
|
||||
});
|
||||
}
|
@ -1,14 +1,30 @@
|
||||
<script>
|
||||
import Square from './Square.svelte';
|
||||
</script>
|
||||
import Todo from './Todo.svelte';
|
||||
|
||||
let todos = [
|
||||
{ id: 1, done: true, text: 'wash the car' },
|
||||
{ id: 2, done: false, text: 'take the dog for a walk' },
|
||||
{ id: 3, done: false, text: 'mow the lawn' }
|
||||
];
|
||||
|
||||
<style>
|
||||
svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
function toggle(toggled) {
|
||||
todos = todos.map(todo => {
|
||||
if (todo === toggled) {
|
||||
// return a new object
|
||||
return {
|
||||
id: todo.id,
|
||||
text: todo.text,
|
||||
done: !todo.done
|
||||
};
|
||||
}
|
||||
|
||||
// return the same object
|
||||
return todo;
|
||||
});
|
||||
}
|
||||
</style>
|
||||
</script>
|
||||
|
||||
<svg viewBox="0 0 100 100">
|
||||
<Square cx={50} cy={50} size={40} style="fill: #ff3e00"/>
|
||||
</svg>
|
||||
<h2>Todos</h2>
|
||||
{#each todos as todo}
|
||||
<Todo {todo} on:click={() => toggle(todo)}/>
|
||||
{/each}
|
@ -1,13 +0,0 @@
|
||||
<script>
|
||||
export let cx;
|
||||
export let cy;
|
||||
export let size;
|
||||
export let style;
|
||||
|
||||
$: x1 = cx - size / 2;
|
||||
$: y1 = cy - size / 2;
|
||||
$: x2 = x1 + size;
|
||||
$: y2 = y1 + size;
|
||||
</script>
|
||||
|
||||
<polygon points="{x1},{y1} {x2},{y1} {x2},{y2} {x1},{y2}" {style}/>
|
@ -0,0 +1,26 @@
|
||||
<script>
|
||||
import { afterUpdate } from 'svelte';
|
||||
import flash from './flash.js';
|
||||
|
||||
export let todo;
|
||||
export let toggle;
|
||||
|
||||
let div;
|
||||
|
||||
afterUpdate(() => {
|
||||
flash(div);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
div {
|
||||
cursor: pointer;
|
||||
line-height: 1.5;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- the text will flash red whenever
|
||||
the `todo` object changes -->
|
||||
<div bind:this={div} on:click>
|
||||
{todo.done ? '👍': ''} {todo.text}
|
||||
</div>
|
@ -0,0 +1,11 @@
|
||||
export default function flash(element) {
|
||||
element.style.transition = 'none';
|
||||
element.style.color = 'rgba(255,62,0,1)';
|
||||
element.style.backgroundColor = 'rgba(255,62,0,0.2)';
|
||||
|
||||
setTimeout(() => {
|
||||
element.style.transition = 'color 1s, background 1s';
|
||||
element.style.color = '';
|
||||
element.style.backgroundColor = '';
|
||||
});
|
||||
}
|
@ -1,14 +1,30 @@
|
||||
<script>
|
||||
import Square from './Square.svelte';
|
||||
</script>
|
||||
import Todo from './Todo.svelte';
|
||||
|
||||
let todos = [
|
||||
{ id: 1, done: true, text: 'wash the car' },
|
||||
{ id: 2, done: false, text: 'take the dog for a walk' },
|
||||
{ id: 3, done: false, text: 'mow the lawn' }
|
||||
];
|
||||
|
||||
<style>
|
||||
svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
function toggle(toggled) {
|
||||
todos = todos.map(todo => {
|
||||
if (todo === toggled) {
|
||||
// return a new object
|
||||
return {
|
||||
id: todo.id,
|
||||
text: todo.text,
|
||||
done: !todo.done
|
||||
};
|
||||
}
|
||||
|
||||
// return the same object
|
||||
return todo;
|
||||
});
|
||||
}
|
||||
</style>
|
||||
</script>
|
||||
|
||||
<svg viewBox="0 0 100 100">
|
||||
<Square cx={50} cy={50} size={40} style="fill: #ff3e00"/>
|
||||
</svg>
|
||||
<h2>Todos</h2>
|
||||
{#each todos as todo}
|
||||
<Todo {todo} on:click={() => toggle(todo)}/>
|
||||
{/each}
|
@ -1,15 +0,0 @@
|
||||
<svelte:options namespace="svg"/>
|
||||
|
||||
<script>
|
||||
export let cx;
|
||||
export let cy;
|
||||
export let size;
|
||||
export let style;
|
||||
|
||||
$: x1 = cx - size / 2;
|
||||
$: y1 = cy - size / 2;
|
||||
$: x2 = x1 + size;
|
||||
$: y2 = y1 + size;
|
||||
</script>
|
||||
|
||||
<polygon points="{x1},{y1} {x2},{y1} {x2},{y2} {x1},{y2}" {style}/>
|
@ -0,0 +1,28 @@
|
||||
<svelte:options immutable={true}/>
|
||||
|
||||
<script>
|
||||
import { afterUpdate } from 'svelte';
|
||||
import flash from './flash.js';
|
||||
|
||||
export let todo;
|
||||
export let toggle;
|
||||
|
||||
let div;
|
||||
|
||||
afterUpdate(() => {
|
||||
flash(div);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
div {
|
||||
cursor: pointer;
|
||||
line-height: 1.5;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- the text will flash red whenever
|
||||
the `todo` object changes -->
|
||||
<div bind:this={div} on:click>
|
||||
{todo.done ? '👍': ''} {todo.text}
|
||||
</div>
|
@ -0,0 +1,11 @@
|
||||
export default function flash(element) {
|
||||
element.style.transition = 'none';
|
||||
element.style.color = 'rgba(255,62,0,1)';
|
||||
element.style.backgroundColor = 'rgba(255,62,0,0.2)';
|
||||
|
||||
setTimeout(() => {
|
||||
element.style.transition = 'color 1s, background 1s';
|
||||
element.style.color = '';
|
||||
element.style.backgroundColor = '';
|
||||
});
|
||||
}
|
Loading…
Reference in new issue