49 lines
988 B
Svelte
49 lines
988 B
Svelte
<script>
|
|
import { onDestroy } from 'svelte';
|
|
import { workRepository } from '../../store/repositories/entities/work-repository';
|
|
|
|
export let id = 0;
|
|
|
|
/** @type {WorkSerializedInterface | undefined} */
|
|
let work;
|
|
let unsubscribe = () => {};
|
|
|
|
$: unsubscribe = workRepository.subscribe(id, (serialized) => {
|
|
work = serialized;
|
|
});
|
|
|
|
onDestroy(() => {
|
|
unsubscribe();
|
|
});
|
|
</script>
|
|
|
|
<div class="work">
|
|
{#if work}
|
|
<dl>
|
|
<div>
|
|
<dt>id</dt>
|
|
<dd>{work?.id}</dd>
|
|
</div>
|
|
<div>
|
|
<dt>name</dt>
|
|
<dd>{work?.nameCanonical}</dd>
|
|
</div>
|
|
<div>
|
|
<input
|
|
type="text"
|
|
on:change="{(input) => {
|
|
workRepository.update(id, (w) => {
|
|
w.nameCanonical = input.target.value;
|
|
return w;
|
|
});
|
|
}}"
|
|
/>
|
|
</div>
|
|
<div>
|
|
<dt>languages</dt>
|
|
<dd>{work?.languages.join(', ')}</dd>
|
|
</div>
|
|
</dl>
|
|
{/if}
|
|
</div>
|