Skip to content

Commit 8e0c10f

Browse files
authored
ボタン類の UI 修正 (#30)
* ui: トップページのボタン類を修正 * ui: 管理ページのボタン類 * ui: トップのボタンにアイコン * ui: 作成ページの修正 * ui: ローディングを考えるまで一旦戻す
1 parent 15029bb commit 8e0c10f

File tree

3 files changed

+209
-186
lines changed

3 files changed

+209
-186
lines changed

web/src/routes/+page.svelte

+52-51
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
import { onMount } from "svelte";
33
import { type Client, createClient } from "~/api/client.ts";
44
import Header from "~/components/header.svelte";
5+
import MdiWrench from "virtual:icons/mdi/wrench";
6+
import MdiVote from "virtual:icons/mdi/vote";
7+
import MdiCog from "virtual:icons/mdi/cog";
8+
import MdiGraph from "virtual:icons/mdi/graph";
59
610
const client: Client = createClient({ fetch });
711
async function getMyProjects(options?: { signal: AbortSignal }) {
@@ -37,58 +41,55 @@
3741
<Header title="" />
3842
<div class="p-2 hm-blocks-container">
3943
<div class="hm-block">
40-
<section>
41-
<h2 class="text-xl">プロジェクトを新規作成する</h2>
42-
<div class="flex justify-center p-6">
43-
<a href="/new" class="btn btn-lg btn-primary">新規作成</a>
44-
</div>
45-
</section>
46-
<section>
47-
{#if !projects}
48-
<span>Welcome! this is being prerendered.</span>
49-
{:else}
50-
<ul class="list w-full bg-base-200 rounded-box shadow-md">
51-
<li class="p-4 pb-2 text-xl opacity-60 tracking-wide">
52-
作成・提出したプロジェクト
44+
<h2 class="text-xl">プロジェクトを作る</h2>
45+
<div class="flex justify-center p-2">
46+
<a href="/new" class="btn btn-xl btn-primary"
47+
><MdiWrench class="mr-1" />新規作成</a
48+
>
49+
</div>
50+
</div>
51+
{#if !projects}
52+
<div class="flex justify-center p-4">
53+
<!-- TODO: 何もないときも常に loading になってしまう -->
54+
<span>Welcome! this is being prerendered.</span>
55+
</div>
56+
{:else}
57+
<div class="hm-block">
58+
<h2 class="text-xl">作成・提出したプロジェクト</h2>
59+
<ul class="list w-full bg-base-200 my-1 rounded-lg">
60+
{#if projects.length === 0}
61+
<li class="list-row flex">
62+
作成・提出したプロジェクトはありません。
5363
</li>
54-
{#if projects.length === 0}
55-
<li class="list-row flex">
56-
作成・提出したプロジェクトはありません。
64+
{:else}
65+
{#each projects as project}
66+
<li class="list-row flex items-center">
67+
<span class="h-full flex-1">{project.name}</span>
68+
{#if project.is_admin}
69+
<a
70+
class="btn btn-primary btn-sm btn-outline"
71+
href="/{project.id}/config"
72+
>
73+
<MdiCog />
74+
管理
75+
</a>
76+
{:else if project.closed_at !== null && new Date(project.closed_at).getTime() < new Date().getTime()}
77+
<!-- 締切済み -->
78+
<a class="btn btn-primary btn-sm" href="/{project.id}/result">
79+
<MdiGraph />
80+
結果
81+
</a>
82+
{:else}
83+
<a class="btn btn-primary btn-sm" href="/{project.id}/submit">
84+
<MdiVote />
85+
提出
86+
</a>
87+
{/if}
5788
</li>
58-
{:else}
59-
{#each projects as project}
60-
<li class="list-row flex">
61-
<span class="h-full flex-1">{project.name}</span>
62-
{#if project.is_admin}
63-
<a
64-
class="btn btn-primary btn-sm btn-outline"
65-
href="/{project.id}/config"
66-
>
67-
管理
68-
</a>
69-
{/if}
70-
{#if project.closed_at !== null && new Date(project.closed_at).getTime() < new Date().getTime()}
71-
<!-- 締切済み -->
72-
<a
73-
class="btn btn-success btn-sm"
74-
href="/{project.id}/result"
75-
>
76-
結果
77-
</a>
78-
{:else}
79-
<a
80-
class="btn btn-primary btn-sm"
81-
href="/{project.id}/submit"
82-
>
83-
提出
84-
</a>
85-
{/if}
86-
</li>
87-
{/each}
88-
{/if}
89-
</ul>
90-
{/if}
91-
</section>
92-
</div>
89+
{/each}
90+
{/if}
91+
</ul>
92+
</div>
93+
{/if}
9394
</div>
9495
</div>

0 commit comments

Comments
 (0)