-
-

+
+
+
+
+
+
+ 「いつヒマ?」で
+ 日程調整しよう
+
+
+ とりあえずみんなの空いている時間を訊いてから、何を何時間やるか決めたい。そんな仲間うちでの調整に最適な、シンプルで直感的なツールです。
+
+
+ イベントを作成
+
+
+
+
+
+

+
+
@@ -42,90 +36,63 @@ function HeroSection() {
function FeaturesSection() {
const features = [
{
- icon: "🚫",
- title: "候補日程の設定なし",
- description: "みんなが空いている時間を選ぶだけなので、主催者が候補日程を設定する必要がありません。",
+ icon:
,
+ title: "候補日程は不要",
+ description:
+ "参加者が各々の空いている日程を入力することで日程調整を行います。幹事が候補日程を大量に作成する必要はありません。",
+ color: "bg-emerald-50",
},
{
- icon: "🔗",
- title: "URLで簡単共有",
- description: "作成したイベントのURLをコピーして友達に送れば、すぐに日程調整が可能です。",
+ icon:
,
+ title: "複数の参加形態に対応",
+ description: "「対面」「オンライン」など、複数の参加形態を自由に設定可能です。",
+ color: "bg-primary/10",
},
{
- icon: "📱",
- title: "直感的な操作",
- description: "複数日程も一気にドラッグで選択可能。スマホでも簡単に操作できます。",
+ icon:
,
+ title: "スマホでも簡単に入力可能",
+ description: "スマホでも、複数の日程をドラッグで一気に選択可能です。",
+ color: "bg-blue-50",
},
- ];
+ ] as const;
return (
-
-
-
-
イツヒマの特長
-
仲間うちでのスムーズな日程調整に特化
-
-
-
- {features.map((feature) => (
-
-
{feature.icon}
-
{feature.title}
-
{feature.description}
-
- ))}
+
+
+
+
+
イツヒマの特徴
+
イツヒマは仲間うちでのスムーズな日程調整に特化しています。
+
+
+ {features.map((feature) => (
+
+
+ {feature.icon}
+
+
{feature.title}
+
{feature.description}
+
+ ))}
+
);
}
-function Footer() {
+export default function LandingPage() {
return (
-
+
+
+
+
+
+
+
+
);
}
diff --git a/client/src/pages/NotFound.tsx b/client/src/pages/NotFound.tsx
index b52bc62..ca8e081 100644
--- a/client/src/pages/NotFound.tsx
+++ b/client/src/pages/NotFound.tsx
@@ -1,16 +1,27 @@
+import { LuCircleAlert, LuHouse } from "react-icons/lu";
import { NavLink } from "react-router";
import Header from "../components/Header";
export default function NotFoundPage() {
return (
-
+
-
-
このページは見つかりませんでした。
-
- ホームに戻る
-
-
+
+
+
+
+
+
404
+
ページが見つかりません
+
+ お探しのページは存在しないか、移動または削除された可能性があります。
+
+
+
+ ホームに戻る
+
+
+
);
}
diff --git a/client/src/pages/Project.tsx b/client/src/pages/Project.tsx
index b7230a4..bc1e21a 100644
--- a/client/src/pages/Project.tsx
+++ b/client/src/pages/Project.tsx
@@ -4,19 +4,24 @@ import { hc } from "hono/client";
import { useCallback, useEffect, useState } from "react";
import { useFieldArray, useForm } from "react-hook-form";
import {
- HiClipboardCheck,
- HiClipboardCopy,
- HiInformationCircle,
- HiOutlineCheckCircle,
- HiOutlineExclamationCircle,
- HiOutlineTrash,
-} from "react-icons/hi";
+ LuChevronLeft,
+ LuChevronRight,
+ LuCircleAlert,
+ LuCircleCheck,
+ LuClipboard,
+ LuClipboardCheck,
+ LuInfo,
+ LuPlus,
+ LuTrash2,
+ LuX,
+} from "react-icons/lu";
import { NavLink, useNavigate, useParams } from "react-router";
import type { z } from "zod";
import { DEFAULT_PARTICIPATION_OPTION, generateDistinctColor } from "../../../common/colors";
import { editReqSchema, projectReqSchema } from "../../../common/validators";
import type { AppType } from "../../../server/src/main";
import Header from "../components/Header";
+import { EXTERNAL_LINKS } from "../constants/links";
import { projectReviver } from "../revivers";
import type { Project } from "../types";
import { API_ENDPOINT, FRONTEND_ORIGIN } from "../utils";
@@ -271,122 +276,113 @@ export default function ProjectPage() {
return (
<>
-
+
{loading ? (
-
-
+
+
) : eventId !== undefined && !project ? (
-
-
イベントが見つかりませんでした。
-
- ホームに戻る
-
+
+
+
イベントが見つかりませんでした。
+
+ ホームに戻る
+
+
) : (
-
-
- {project ? `${project.name} の編集` : "イベントの作成"}
-
-