diff --git a/client/src/pages/Project.tsx b/client/src/pages/Project.tsx
index 86331ce..722ccf2 100644
--- a/client/src/pages/Project.tsx
+++ b/client/src/pages/Project.tsx
@@ -242,7 +242,7 @@ export default function ProjectPage() {
useEffect(() => {
if (!loading && project && !isHost) {
if (eventId) {
- navigate(`/${eventId}`);
+ navigate(`/e/${eventId}`);
} else {
navigate("/");
}
@@ -613,7 +613,7 @@ export default function ProjectPage() {
)}
{eventId ? (
-
+
日程調整に戻る
) : (
@@ -639,12 +639,12 @@ export default function ProjectPage() {
type="text"
disabled
className="input input-info w-full"
- value={`${FRONTEND_ORIGIN}/${dialogStatus.projectId}`}
+ value={`${FRONTEND_ORIGIN}/e/${dialogStatus.projectId}`}
/>
-
+
イベントへ
diff --git a/client/src/pages/eventId/Submission.tsx b/client/src/pages/eventId/Submission.tsx
index a422e60..e199edf 100644
--- a/client/src/pages/eventId/Submission.tsx
+++ b/client/src/pages/eventId/Submission.tsx
@@ -210,7 +210,7 @@ export default function SubmissionPage() {
<>
- {loading || !selectedParticipationOptionId ? (
+ {loading ? (
@@ -221,12 +221,16 @@ export default function SubmissionPage() {
ホームに戻る
+ ) : !selectedParticipationOptionId ? (
+
+
+
) : (
{project.name} の日程調整
{isHost && (
-
+
イベント設定
diff --git a/server/src/routes/projects.ts b/server/src/routes/projects.ts
index 89de447..948ce5d 100644
--- a/server/src/routes/projects.ts
+++ b/server/src/routes/projects.ts
@@ -1,13 +1,18 @@
import { zValidator } from "@hono/zod-validator";
import dotenv from "dotenv";
import { Hono } from "hono";
-import { nanoid } from "nanoid";
+import { customAlphabet } from "nanoid";
import { z } from "zod";
import { editReqSchema, projectReqSchema, submitReqSchema } from "../../../common/validators.js";
import { prisma } from "../main.js";
dotenv.config();
+/**
+ * ハイフン・アンダースコアを含まない Nano ID 形式。
+ */
+const nanoid = customAlphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 21);
+
const projectIdParamsSchema = z.object({ projectId: z.string().length(21) });
type AppVariables = {