From 32815c4e784e51cb4d54ecda20b99f7146843ba4 Mon Sep 17 00:00:00 2001 From: Last2014 Date: Wed, 23 Jul 2025 19:57:37 +0900 Subject: [PATCH] =?UTF-8?q?Peas=E5=85=88=E8=A1=8C=E5=85=AC=E9=96=8B?= =?UTF-8?q?=E7=94=B3=E8=AB=8B=E3=83=95=E3=82=A9=E3=83=BC=E3=83=A0=E3=81=AB?= =?UTF-8?q?=E5=88=B6=E9=99=90=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/peas/alpha-open/client.tsx | 130 +++++++++++++++++++++++++++ src/app/peas/alpha-open/page.tsx | 136 +++-------------------------- 2 files changed, 140 insertions(+), 126 deletions(-) create mode 100644 src/app/peas/alpha-open/client.tsx diff --git a/src/app/peas/alpha-open/client.tsx b/src/app/peas/alpha-open/client.tsx new file mode 100644 index 0000000..35a4cd8 --- /dev/null +++ b/src/app/peas/alpha-open/client.tsx @@ -0,0 +1,130 @@ +"use client"; + +import { Icon } from "@iconify/react"; +import Link from "next/link"; +import { useState } from "react"; + +export default function PeasAlphaOpenClient() { + const [Load, setLoad] = useState(false); + + const FormSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + setLoad(true); + + try { + const req = await fetch("/api/peasForm", { + method: "POST", + body: JSON.stringify({ + uwuzunetUser: e.currentTarget.uwuzunetUser.value, + email: e.currentTarget.email.value, + }) + }); + + const res = await req.json(); + + if (res.status === "error") { + alert(`エラー: ${res.error}`); + } else { + alert("送信完了"); + } + } catch (err) { + alert(`通信エラー: ${err}`); + } finally { + setLoad(false); + } + }; + + return ( +
+ {Load && ( +
+ +
+ )} + +

Peas公式サーバー先行公開申請

+ +

募集期間:2025/07/16 19:00 - 2025/07/23 23:59:59

+ +

条件

+
    +
  • GIGAスクール端末での参加は不可
  • +
  • 13歳未満の場合は保護者の同意が必要
  • +
  • 利用規約・プライバシーポリシー・NDAへの同意が必要(これらは先行公開時に参加者へ送信)
  • +
  • 有効なメールアドレスが必要
  • +
  • サービスの開発・運営に害を与えない行動範囲での使用
  • +
  • 参加申請後での申請取り消しは不可(例外はよくありそうな質問2,3)
  • +
+ +

注意事項

+
    +
  • Last2014が必要な情報をメールで尋ねる可能性があります
  • +
  • この先行公開のやり取りはすべてメール上で行われ、Last2014はlast2014yh@yahoo.co.jpのメールアドレスを使用します
  • +
+ +

よくありそうな質問

+
+ Q1. フィルターがかかります。 +
+ A. GIGAスクール端末は先行公開への参加は拒否させていただきます。 +
+ その他のフィルターの場合は管理者に解除を申請してください。 +
+ +
+ Q2. 利用規約とプライバシーポリシー、NDAを教えてください。 +
+ A. 条件に記載されている通り先行公開時に電子メールで参加者へ送信させていただきます。 +
+ 確認後に同意いただけない場合は申請の取り消しが可能です。 +
+ Last2014まで折り返しメールをお願い致します。 +
+ (全員へ返信ではなくLast2014のみに返信してください) +
+ +
+ Q3. 申請取り消しの例外を教えてください。 +
+ A. Q2に記載されている通り、 +
+ 利用規約・プライバシーポリシー・NDAのいずれかに同意いただけない場合は +
+ 申請取り消しが可能です。 +
+ また、理由をLast2014に送信し承認された場合も申請取り消しが可能です。 +
+ +

フォーム

+ +
+ + + + + + + + + +
+
+ ); +} diff --git a/src/app/peas/alpha-open/page.tsx b/src/app/peas/alpha-open/page.tsx index c56a5d1..5baa6af 100644 --- a/src/app/peas/alpha-open/page.tsx +++ b/src/app/peas/alpha-open/page.tsx @@ -1,130 +1,14 @@ -"use client"; +import { isAfter } from "date-fns/fp"; +import { redirect } from "next/navigation"; -import { Icon } from "@iconify/react"; -import Link from "next/link"; -import { useState } from "react"; +import PeasAlphaOpenClient from "./client"; export default function PeasAlphaOpen() { - const [Load, setLoad] = useState(false); - - const FormSubmit = async (e: React.FormEvent) => { - e.preventDefault(); - setLoad(true); - - try { - const req = await fetch("/api/peasForm", { - method: "POST", - body: JSON.stringify({ - uwuzunetUser: e.currentTarget.uwuzunetUser.value, - email: e.currentTarget.email.value, - }) - }); - - const res = await req.json(); - - if (res.status === "error") { - alert(`エラー: ${res.error}`); - } else { - alert("送信完了"); - } - } catch (err) { - alert(`通信エラー: ${err}`); - } finally { - setLoad(false); - } - }; - - return ( -
- {Load && ( -
- -
- )} - -

Peas公式サーバー先行公開申請

- -

募集期間:2025/07/16 19:00 - 2025/07/23 23:59:59

- -

条件

-
    -
  • GIGAスクール端末での参加は不可
  • -
  • 13歳未満の場合は保護者の同意が必要
  • -
  • 利用規約・プライバシーポリシー・NDAへの同意が必要(これらは先行公開時に参加者へ送信)
  • -
  • 有効なメールアドレスが必要
  • -
  • サービスの開発・運営に害を与えない行動範囲での使用
  • -
  • 参加申請後での申請取り消しは不可(例外はよくありそうな質問2,3)
  • -
- -

注意事項

-
    -
  • Last2014が必要な情報をメールで尋ねる可能性があります
  • -
  • この先行公開のやり取りはすべてメール上で行われ、Last2014はlast2014yh@yahoo.co.jpのメールアドレスを使用します
  • -
- -

よくありそうな質問

-
- Q1. フィルターがかかります。 -
- A. GIGAスクール端末は先行公開への参加は拒否させていただきます。 -
- その他のフィルターの場合は管理者に解除を申請してください。 -
- -
- Q2. 利用規約とプライバシーポリシー、NDAを教えてください。 -
- A. 条件に記載されている通り先行公開時に電子メールで参加者へ送信させていただきます。 -
- 確認後に同意いただけない場合は申請の取り消しが可能です。 -
- Last2014まで折り返しメールをお願い致します。 -
- (全員へ返信ではなくLast2014のみに返信してください) -
- -
- Q3. 申請取り消しの例外を教えてください。 -
- A. Q2に記載されている通り、 -
- 利用規約・プライバシーポリシー・NDAのいずれかに同意いただけない場合は -
- 申請取り消しが可能です。 -
- また、理由をLast2014に送信し承認された場合も申請取り消しが可能です。 -
- -

フォーム

- -
- - - - - - - - - -
-
- ); + if (isAfter(new Date(), new Date("2025-07-23T23:59:59"))) { + return ( + + ); + } else { + redirect("/"); + } }