This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
export let startTime: Date | string = new Date();
|
export let startTime: Date | string = new Date();
|
||||||
export let endTime: Date | string = new Date();
|
export let endTime: Date | string = new Date();
|
||||||
|
export let compact: boolean = false;
|
||||||
|
|
||||||
let started = false;
|
let started = false;
|
||||||
let overdue = false;
|
let overdue = false;
|
||||||
@@ -61,6 +62,10 @@
|
|||||||
amountStr = amount.toString()
|
amountStr = amount.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (compact) {
|
||||||
|
unit = unit.slice(0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
titleTimeStr = `${formatTime(new Date(startTime))} – ${formatTime(new Date(endTime))}`
|
titleTimeStr = `${formatTime(new Date(startTime))} – ${formatTime(new Date(endTime))}`
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -68,15 +73,19 @@
|
|||||||
<EveryMinute bind:now={now} />
|
<EveryMinute bind:now={now} />
|
||||||
<span title={titleTimeStr}>
|
<span title={titleTimeStr}>
|
||||||
{#if (overdue)}
|
{#if (overdue)}
|
||||||
<span class="overdue">{amountStr} {unit} ago</span>
|
<span class="overdue">{amountStr}{compact ? "" : " "}{unit} {!compact ? "ago" : ""}</span>
|
||||||
{:else if (started)}
|
{:else if (started)}
|
||||||
<span class:danger class="started">{amountStr} {unit} left</span>
|
<span class:danger class="started">{amountStr}{compact ? "" : " "}{unit} {!compact ? "left" : ""}</span>
|
||||||
{:else}
|
{:else}
|
||||||
<span class="pending">In {amountStr} {unit}</span>
|
<span class="pending">In {amountStr}{compact ? "" : " "}{unit}</span>
|
||||||
{/if}
|
{/if}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
span {
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
span.pending {
|
span.pending {
|
||||||
color: #2797e2;
|
color: #2797e2;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { ProjectResult } from "../models/project";
|
import type { ProjectResult } from "../models/project";
|
||||||
import selectionStore from "../stores/selection";
|
import selectionStore from "../stores/selection";
|
||||||
|
import DaysLeft from "./DaysLeft.svelte";
|
||||||
import Icon from "./Icon.svelte";
|
import Icon from "./Icon.svelte";
|
||||||
import ProjectProgress from "./ProjectProgress.svelte";
|
import ProjectProgress from "./ProjectProgress.svelte";
|
||||||
|
|
||||||
@@ -23,7 +24,14 @@
|
|||||||
<Icon block name={project.icon} />
|
<Icon block name={project.icon} />
|
||||||
</div>
|
</div>
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="name">{project.name}</div>
|
<div class="name">
|
||||||
|
<div class="content">{project.name}</div>
|
||||||
|
{#if project.endTime}
|
||||||
|
<div class="times">
|
||||||
|
<DaysLeft compact startTime={project.createdTime} endTime={project.endTime} />
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
<ProjectProgress project={project} />
|
<ProjectProgress project={project} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -74,4 +82,13 @@
|
|||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
padding-right: 0.5ch;
|
padding-right: 0.5ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.name {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.name > div.times {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
Reference in New Issue
Block a user