⌘I

StaticKitからFormspreeへの移行

Updated July 14, 2023

すでに StaticKit のフォームをお持ちの場合、Formspree への移行は素早く簡単に行えます!手順の概要は以下のとおりです:

  1. StaticKit の各サイトに対して、Formspreeダッシュボードでプロジェクトを作成します。
  2. Formspree CLI をインストールし、Formspree React ライブラリからインポートするようにコードを更新します。
  3. StaticKit のデプロイキーと site プロパティを、Formspree のデプロイキーとプロジェクトIDに置き換えます。
  4. 新しいデプロイでテストして、新しい統合が正しく機能することを確認します。

Formspreeでプロジェクトを作成する

まず、Formspree のアカウントを登録します。アカウントを作成したら、New Project を選択して CLI Project を選びます。Project ID と Deploy Key が発行されます。後ほど使用しますので、手元に置いておいてください。

Formspree CLI のインストール

Formspree CLI インターフェースをインストールし、statickit.json ファイルを Formspree で使用できるようにリネームします。先ほどのデプロイキーを使用してデプロイを実行し、Formspree にフォームの情報を伝えます。

npm i -g @formspree/cli

Formspree React ライブラリを使用するようにコードを更新する

Formspree React ライブラリをインストールする必要があります。

npm install @formspree/react

次に、<StaticKitProvider> を <FormspreeProvider> に置き換える必要があります。先ほど受け取ったプロジェクトキーを覚えていますか?site 属性を project に置き換え、プロジェクトIDを指定します。

サンプルの Next.js ファイルを例に見てみましょう。以下が移行前のファイルです:

import { StaticKitProvider } from '@statickit/react';

function App({ Component, pageProps }) {
  return (
    <StaticKitProvider site="{your-site-id}">
      <Component {...pageProps} />
    </StaticKitProvider>
  );
}

export default App;

すべての移行が完了した後の新しいファイルはこちらです:

import { FormspreeProvider } from '@formspree/react';

function App({ Component, pageProps }) {
  return (
    <FormspreeProvider project="{your-project-id}">
      <Component {...pageProps} />
    </FormspreeProvider>
  );
}

export default App;

フォームが含まれるすべてのファイルで、正しいライブラリを使用するだけです。コードベースを検索して、@statickit/react を @formspree/react に一括置換できます。フォームの例は次のようになります:

import { useForm } from '@formspree/react';

function MyForm() {
  const [state, handleSubmit] = useForm('{your-form-key}');
  if (state.succeeded) {
    return <div>Thank you for signing up!</div>;
  }

  return (
    <form onSubmit={handleSubmit}>
      <label htmlFor="email">Email</label>
      <input id="email" type="email" name="email" />
      <button type="submit" disabled={state.submitting}>Sign up</button>
    </form>
  )
}

state オブジェクトは StaticKit と同じ構造を保っているため、ValidationError コンポーネントを使用している場合はそのまま利用できます。

すべてをテストする

すべてが正しく動作することを確認しましょう。ダッシュボードにアクセスして、formspree.json に定義したすべてのフォームが作成されていることを確認します。

ウェブサイト上で、Formspree に移行されたフォームが期待どおりに動作することを確認してください。送信すると、フォームの送信テーブルに表示されるはずです。

以上です!これで Formspree がフォームを管理してくれるので、安心してご利用いただけます。