状態管理
ドメイン状態は、求人マッチングプラットフォーム用の集中型で型安全なデータ層を提供します。ユーザー、組織、求人投稿、応募、リアルタイムメッセージングを含むすべての必須ビジネスエンティティを包含します。
この状態構造は、すべてのアプリケーションワークフローにわたって認証、求人カタログ管理、応募処理、検索とフィルタリング、ページネーション、エラーハンドリングの唯一の真実の情報源として機能します。
📋 目次
- 🔐 認証とユーザー管理
- 🏢 組織管理
- 💼 求人投稿とカタログ管理
- 📝 応募と注文管理
- 💬 リアルタイムコミュニケーション
- 🔍 検索とフィルタリング
- 📄 ページネーション
- 🧭 ナビゲーションとUI制御
- ⚙️ 設定
- 🚨 エラーハンドリング
- 🔧 技術的状態
- 💡 使用例
🔐 認証とユーザー管理
求職者と雇用主のユーザー認証、プロファイルデータ、セッション情報を管理します。
プロパティ | 説明 | 使用例 |
---|---|---|
loggedInUser | 現在認証されているユーザー | ユーザー情報表示、権限チェック |
user | 表示/編集中の個別ユーザー | プロファイルページ、ユーザー詳細 |
users | 管理者管理用のユーザーリスト | ユーザー管理、ディレクトリリスト |
sessionState | 現在のセッション情報とトークンデータ | セッション検証、トークン管理 |
sessionType | セッション保存方法(cookieまたはlocal_storage) | セッション設定 |
hasVerificationEmailBeenSent | メール認証ステータス | メール認証のUIフィードバック |
isCreateUserSuccess | ユーザー作成成功フラグ | 登録ワークフローフィードバック |
invitations | チームメンバー招待(送信/受信) | 招待管理、通知 |
acceptInvitationData | チーム招待処理用データ | 招待受諾フロー |
resetPasswordToken | パスワードリセットトークン | パスワードリセットワークフロー |
🏢 組織管理
雇用主組織データ、チームメンバーシップ、組織求人投稿を処理します。
プロパティ | 説明 | 使用例 |
---|---|---|
organization | 現在選択/表示中の雇用主組織 | 組織プロファイルページ |
organizations | 雇用主組織のリスト | 組織ディレクトリ、検索結果 |
organizationMembers | 現在の組織のチームメンバー | チーム管理、メンバーリスト |
organizationProducts | 組織に属する求人投稿 | 組織求人カタログ |
organizationProductsCount | 組織求人投稿の総数 | ページネーション、分析 |
paymentDashboardUrl | 組織請求用支払いダッシュボードURL | 支払い統合 |
💼 求人投稿とカタログ管理
求人投稿情報、カテゴリ、スキル属性、ファイル添付を管理します。
プロパティ | 説明 | 使用例 |
---|---|---|
product | 現在選択/表示中の求人投稿 | 求人詳細ページ |
products | 求人投稿のリスト | 求人リスト、検索結果 |
homeProducts | ホームページ用注目求人投稿 | ホームページ求人ショーケース |
categories | 求人カテゴリ(例:エンジニアリング、デザイン) | カテゴリナビゲーション、フィルタリング |
homeCategories | ホームページ用注目求人カテゴリ | ホームページカテゴリ表示 |
attributes | 求人スキル属性と要件 | 求人フィルタリング、スキルタグ |
attributesPage | 現在の属性ページ/セクション | 属性ナビゲーション |
productAttachment | 求人投稿ファイル添付 | ファイルダウンロード、求人説明 |
productAttachmentUploadUrl | 求人添付アップロード用事前署名URL | ファイルアップロード機能 |
productUploadFileResponse | ファイルアップロードレスポンスデータ | アップロード後処理 |
📝 応募と注文管理
求人応募管理と処理ワークフローを処理します。
プロパティ | 説明 | 使用例 |
---|---|---|
order | 現在選択中の求人応募 | 応募詳細ページ |
ordersList | 求人応募のリスト | 応募履歴、管理 |
💬 リアルタイムコミュニケーション
雇用主と求職者間のリアルタイムメッセージングを管理します。
プロパティ | 説明 | 使用例 |
---|---|---|
topics | 雇用主と候補者間のチャットトピック/会話 | チャットインターフェース、会話リスト |
topicId | 現在アクティブな会話トピックID | メッセージルーティング、アクティブチャット |
messages | 現在の会話のメッセージ | チャットメッセージ表示 |
chatSearchText | メッセージ/トピック用チャット検索クエリ | メッセージ/トピック検索機能 |
🔍 検索とフィルタリング
求人リストと応募の高度な検索とフィルタリング機能を提供します。
プロパティ | 説明 | 使用例 |
---|---|---|
searchFilter | 複雑な求人検索設定 | 高度な求人検索機能 |
searchFilter.keyword | 求人検索キーワード | 検索入力値 |
searchFilter.keywordQuery | バックエンド用処理済みキーワードクエリ | バックエンド検索パラメータ |
searchFilter.filterQuery | 結合フィルタクエリ文字列 | APIクエリ文字列 |
searchFilter.selectedFilters | アクティブフィルタ選択(スキル、場所など) | フィルタUI、検索絞り込み |
📄 ページネーション
アプリケーション全体のすべてのリストベースデータのページネーションを管理します。
プロパティ | 説明 | 使用例 |
---|---|---|
pagination | すべてのリスト用ページネーション情報オブジェクト | さらに読み込み機能、ページナビゲーション |
pagination.products | 求人投稿リストページネーション | 求人リストページネーション |
pagination.orders | 応募リストページネーション | 応募履歴ページネーション |
pagination.organizations | 組織リストページネーション | 組織ディレクトリページネーション |
pagination.users | ユーザーリストページネーション | ユーザー管理ページネーション |
pagination.topics | 会話トピックページネーション | チャットトピックページネーション |
pagination.messages | メッセージ履歴ページネーション | チャットメッセージ履歴 |
pagination.invitations | チーム招待ページネーション | 招待管理 |
pagination.organizationMembers | 組織メンバーページネーション | チームメンバーリスト |
pagination.organizationProducts | 組織求人投稿ページネーション | 組織求人カタログ |
🧭 ナビゲーションとUI制御
アプリケーションナビゲーション、ルーティング、ユーザーインターフェース状態を制御します。
プロパティ | 説明 | 使用例 |
---|---|---|
currentPage | 現在のページ/ルート識別子 | ページ固有ロジック |
isMenuOpen | モバイル/サイドバーメニュー状態 | メニュー切り替え機能 |
intendedUrl | ログイン後のリダイレクト先URL | ログイン後ナビゲーション |
signUpWizardPage | サインアップウィザードの現在ステップ | マルチステップ登録 |
defaultWizardPage | デフォルトウィザード開始ページ | ウィザード初期化 |
loggedInRedirectUrl | 認証済みユーザーのデフォルトリダイレクト | ログイン後ルーティング |
logoutRedirectUrl | ログアウト後のリダイレクトURL | ログアウト後ルーティング |
needsPaymentSetupRedirect | 支払い設定リダイレクトURL | 支払いフロールーティング |
notLoggedInRedirect | 未認証ユーザーのリダイレクト | 認証強制 |
organizationRegistrationNotCompleteRoute | 不完全な組織設定リダイレクト | 組織オンボーディング |
successDeactivateAccountUrl | アカウント非アクティブ化成功ページ | アカウント管理フロー |
verifyChangeEmailUrl | メール変更認証リダイレクト | メール更新フロー |
verifiedEmailUrl | メール認証後リダイレクト | メール認証フロー |
⚙️ 設定
アプリケーション全体の設定とプリファレンス。
プロパティ | 説明 | 使用例 |
---|---|---|
attributesName | スキル属性のカスタム名(デフォルト:"skills") | UI全体の動的ラベリング |
pageSize | すべてのデータリストのデフォルトページサイズ | ページネーション設定 |
🚨 エラーハンドリング
グローバルエラーハンドリングと表示管理。
プロパティ | 説明 | 使用例 |
---|---|---|
errors | アプリケーションエラー配列 | エラー表示、ログ |
hasError | グローバルエラーフラグ | エラー状態表示 |
🔧 技術的状態
ローディングインジケーターと技術的操作のシステムレベル状態。
プロパティ | 説明 | 使用例 |
---|---|---|
isLoading | グローバルローディング状態 | アプリケーション全体のローディングインジケーター |
💡 使用例
基本コンポーネント使用法
function JobListings({ state, middleware, updateState }) {
// 現在のユーザーデータにアクセス
const currentUser = state.loggedInUser;
// ローディング状態をチェック
if (state.isLoading) {
return <LoadingSpinner />;
}
// 求人投稿を表示
const jobPostings = state.products || [];
return (
<div>
<h2>利用可能なポジション</h2>
{jobPostings.map(job => (
<JobCard key={job.id} job={job} currentUser={currentUser} />
))}
</div>
);
}
状態の更新
// 直接状態更新
updateState('isLoading', true);
// 求人リストを更新
updateState('products', newJobPostings);
updateState('isLoading', false);
// 求人検索フィルターを更新
updateState('searchFilter', {
...state.searchFilter,
keyword: 'ソフトウェアエンジニア',
selectedFilters: [...state.searchFilter.selectedFilters, { type: 'location', value: 'リモート' }]
});
状態に基づく条件付きレンダリング
function JobPlatformApp({ state }) {
// 未認証ユーザーにログインを表示
if (!state.loggedInUser) {
return <LoginForm />;
}
// エラー状態を表示
if (state.hasError) {
return <ErrorDisplay errors={state.errors} />;
}
// 現在のページに基づくルーティング
switch (state.currentPage) {
case 'home':
return <HomePage />;
case 'positions_list':
return <JobListings />;
case 'position_show':
return <JobDetails />;
case 'my_page':
return <UserDashboard />;
case 'orders':
return <ApplicationsList />;
case 'organization_show':
return <OrganizationProfile />;
case 'topics_list':
return <ChatTopics />;
case 'launch_screen':
return <LoadingScreen />;
default:
return <NotFoundPage />;
}
}