TaskDisplay shows text nodes correctly
This commit is contained in:
parent
431f0e4689
commit
b4717e93a9
3 changed files with 31 additions and 12 deletions
|
@ -306,7 +306,7 @@
|
|||
<li>{cat}</li>
|
||||
{/each}
|
||||
</ul>
|
||||
<TaskDisplay taskId={currentTask.id} />
|
||||
<TaskDisplay task={currentTask} />
|
||||
{:else}
|
||||
<h3>Nothing selected...</h3>
|
||||
{/if}
|
||||
|
|
|
@ -2,18 +2,28 @@
|
|||
import { grabAssignment, grabSolution } from "./ksp-task-grabber";
|
||||
import type { TaskStatus } from "./ksp-task-grabber";
|
||||
import { nonNull } from './helpers'
|
||||
import App from "./App.svelte";
|
||||
import { taskStatuses } from "./task-status-cache";
|
||||
export let taskId: string | null | undefined
|
||||
import App from "./App.svelte";
|
||||
import { taskStatuses } from "./task-status-cache";
|
||||
import type { TaskDescriptor } from "./task-loader";
|
||||
|
||||
export let task: TaskDescriptor | null | undefined
|
||||
|
||||
export let showSolution: boolean = false
|
||||
$: {
|
||||
taskId
|
||||
task
|
||||
showSolution = false
|
||||
}
|
||||
|
||||
let status: TaskStatus | undefined
|
||||
$: if (taskId) status = $taskStatuses.get(taskId)
|
||||
$: if (task) status = $taskStatuses.get(task.id)
|
||||
let referenceId: string | null
|
||||
$: {
|
||||
if (task != null) {
|
||||
const r = task.taskReference || task.id
|
||||
if (referenceId != r)
|
||||
referenceId = r
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
div {
|
||||
|
@ -34,8 +44,15 @@ import { taskStatuses } from "./task-status-cache";
|
|||
</style>
|
||||
|
||||
<div>
|
||||
{#if taskId != null}
|
||||
{#await grabAssignment(nonNull(taskId))}
|
||||
{#if task != null}
|
||||
{#if nonNull(task).type == "text"}
|
||||
<div class="header">
|
||||
<div class="title"><h3>{nonNull(task).title}</h3></div>
|
||||
</div>
|
||||
{@html nonNull(task).htmlContent || "Toto je prázdný textový node 😢"}
|
||||
{:else if nonNull(task).type == "open-data"}
|
||||
|
||||
{#await grabAssignment(nonNull(referenceId))}
|
||||
Načítám úlohu
|
||||
{:then task}
|
||||
<div class="header">
|
||||
|
@ -65,7 +82,7 @@ import { taskStatuses } from "./task-status-cache";
|
|||
</a>
|
||||
{:else}
|
||||
<h4>Řešení</h4>
|
||||
{#await grabSolution(nonNull(taskId))}
|
||||
{#await grabSolution(referenceId)}
|
||||
Načítám...
|
||||
{:then solution}
|
||||
{@html solution.description}
|
||||
|
@ -73,5 +90,7 @@ import { taskStatuses } from "./task-status-cache";
|
|||
{/if}
|
||||
</div>
|
||||
{/await}
|
||||
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
|
|
|
@ -86,12 +86,12 @@
|
|||
}
|
||||
/* Used when the user hovers over a node and we want to show that there is something - a small expandable preview */
|
||||
.panel.preview, .panel:not(.full):hover {
|
||||
height: 100px;
|
||||
height: 150px;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.panel.full {
|
||||
min-height: 100%;
|
||||
min-height: 420px;
|
||||
border-bottom: 2px solid #444444;
|
||||
}
|
||||
.closeButton {
|
||||
|
@ -114,6 +114,6 @@
|
|||
|
||||
<div class="panel {heightClass}"
|
||||
on:click={() => location.hash = `#task/${selectedTask?.id}`}>
|
||||
<TaskDisplay taskId={selectedTask?.id} />
|
||||
<TaskDisplay task={selectedTask} />
|
||||
<button type=button class="closeButton" on:click|stopPropagation={close}></button>
|
||||
</div>
|
||||
|
|
Reference in a new issue