メインコンテンツまでスキップ

サインアップブロック

SignUp は MUI 上に構築された制御された登録フォームブロックです。

インストール​

npm install @nodeblocks/frontend-signup-block@0.7.0

必要なもの​

項目重要な理由
dataフォーム state の単一の信頼できる情報源
onDataChange検証や分析のために更新済み state とメタデータを受け取ります
errors (optional)フィールド単位のエラーフィードバックを表示します
termsOfUseUrl (optional)利用規約チェックボックスリンクの遷移先 URL(デフォルトは /terms-of-use)
privacyPolicyUrl (optional)プライバシーチェックボックスリンクの遷移先 URL(デフォルトは /privacy-policy)
loginUrl (optional)サインインリンクの遷移先 URL(デフォルトは /auth/login)
制御されたコンポーネント

SignUp はフォーム state を所有しません。state はアプリ側で保持し、data を通じて渡してください。デフォルトの形には email、password、agreesUserAgreement、agreesPrivacyPolicy が含まれます。

コード例​

ライブエディター
function Example() {
  const defaultData = {
    email: '',
    password: '',
    agreesUserAgreement: false,
    agreesPrivacyPolicy: false,
  };

  const [data, setData] = React.useState(defaultData);

  return (
    <SignUp
      data={data}
      onDataChange={(nextData) => {
        setData(nextData);
      }}
    />
  );
}
結果
Loading...

主要プロパティ​

コアプロパティ​

プロパティ型必須デフォルト説明
dataSignUpFormData ({ email, password, agreesUserAgreement, agreesPrivacyPolicy } or extended Record<string, unknown>)Yes-現在のフォーム data オブジェクト
onDataChange(data, meta) => voidYes-更新時に呼び出されます。meta には name、value、cause(input、change、blur、clear、reset、programmatic)、任意の event が含まれます
errors{ [fieldName: string]: string | string[] }No-data のフィールド名に紐づくフィールドエラー(例: email、password、agreesUserAgreement、agreesPrivacyPolicy)

コンテンツプロパティ​

プロパティ型必須デフォルト説明
labels{ signUpTitle?, emailField?, passwordField?, termsOfUse?, privacyPolicy?, signUpButton?, gotoSignIn?, backButton? }NosignUpTitle: 'Create Your Account', emailField: 'Email Address', passwordField: 'Password', termsOfUse: 'Accept the terms of use.', privacyPolicy: 'Accept the privacy policy.', signUpButton: 'Sign Up', gotoSignIn: 'Already have an account? Sign In.', backButton: 'Back to previous page'デフォルトのテキストラベルを上書きします
placeholders{ emailField?, passwordField? }NoemailField: 'Enter your email address', passwordField: 'Enter your password'メール / パスワードのプレースホルダーを上書きします
termsOfUseUrlstringNo/terms-of-use利用規約リンクの遷移先 URL
privacyPolicyUrlstringNo/privacy-policyプライバシーリンクの遷移先 URL
loginUrlstringNo/auth/login「サインインへ移動」リンクの遷移先 URL

レイアウトと構成プロパティ​

プロパティ型必須デフォルト説明
childrenBlocksOverride | ReactNodeNo-デフォルトのブロックを上書きするか、カスタムの JSX children を提供します
blockSpacingBeforePartial<Record<string, number | Partial<Record<'xs' | 'sm' | 'md' | 'lg' | 'xl', number>>>>No{ passwordField: 3, termsOfUse: 3, privacyPolicy: 0 }列挙されたブロックの前に置くテーマ間隔。デフォルトブロックまたはブロック上書きパターンにのみ適用されます
componentReact.ElementTypeNo'form'ルート要素の型
classNamestringNo-ルートコンテナのクラス名
sxSxPropsNo-ルートコンテナ向けの MUI システムスタイル

SignUp は StackProps<'form'>(children を除く)も継承するため、onSubmit、id、noValidate などの標準的な form / stack props がサポートされます。上書きなしのデフォルトのブロック順は signUpTitle、emailField、passwordField、termsOfUse、privacyPolicy、signUpButton、gotoSignIn、backButton (defaultBlockOrder) です。

デフォルト UI ブロック​

ブロック基盤補足
SignUp (root)Stack (component="form")制御されたフォームコンテナ。最大幅 496px、中央寄せのカードレイアウト
SignUp.SignUpTitleTypographyタイトルテキストブロック(variant="h4")。labels.signUpTitle または children で上書き可能
SignUp.EmailFieldTextFieldメール入力(name="email", autoComplete="username")。デフォルトラベルは Email Address、プレースホルダーは Enter your email address
SignUp.PasswordFieldTextField + IconButton表示切り替え付きのパスワード入力。autoComplete="new-password"。デフォルトラベルは Password、プレースホルダーは Enter your password
SignUp.TermsOfUseCheckbox + FormControlLabel + Linkチェックボックス(name="agreesUserAgreement")。ラベルは termsOfUseUrl へのリンク(target="_blank")です
SignUp.PrivacyPolicyCheckbox + FormControlLabel + Linkチェックボックス(name="agreesPrivacyPolicy")。ラベルは privacyPolicyUrl へのリンク(target="_blank")です
SignUp.SignUpButtonButton送信ボタン(variant="contained"、size="large"、type="submit"、fullWidth)
SignUp.GotoSignInBox + Linkサインインへのナビゲーション。loginUrl またはカスタム children を使用
SignUp.BackButtonButton補助アクション(variant="outlined"、size="large"、type="button"、fullWidth)。デフォルト順に含まれます。不要なら blockOrder から外してください

追加のフィールドプリミティブ​

プリミティブ基盤補足
SignUp.TextFieldTextField汎用テキスト入力
SignUp.TimeFieldTextField時刻入力(type="time")
SignUp.CheckboxFieldCheckbox + FormControlヘルパーテキスト / エラーテキスト付きのチェックボックス
SignUp.SelectFieldSelect + TextFieldMUI TextField 経由で表示されるセレクト入力

TypeScript​

import {SignUp, SignUpFormData} from '@nodeblocks/frontend-signup-block';

type MySignUpData = SignUpFormData & {
companyName?: string;
};