マスター用フロントパッケージ
MBC CQRS Serverlessアプリケーションでマスターデータと設定を管理するためのフロントエンドコンポーネントライブラリです。
インストール
npm install @mbc-cqrs-serverless/master-web
概要
Master Webパッケージ(@mbc-cqrs-serverless/master-web)は、マスターデータと設定を管理するための完全なReactコンポーネントセットを提供します。バックエンドのMaster Serviceとシームレスに統合され、構築済みのページ、フォーム、データテーブルが含まれています。
機能
- マスター設定管理: マスター設定の表示、作成、編集、削除
- マスターデータ管理: マスターデータレコードのCRUD操作
- リッチテキストエディタ: コンテンツフィールド用の組み込みリッチテキストエディタ
- JSONエディタ: 構造化データフィールド用のJSONエディタ
- データテーブル: TanStack Tableによるソート・ページネーション対応テーブル
- リアルタイム更新: AWS AppSync統合によるリアルタイムデータ同期
- コピー機能: マスター設定とデータのクローン
主要コンポーネント
コンポーネントはメインパッケージまたはサブパスインポートからインポートできます:
// Main package import (メインパッケージインポート)
import { MasterSetting } from "@mbc-cqrs-serverless/master-web";
// Sub-path import (サブパスインポート)
import MasterSetting from "@mbc-cqrs-serverless/master-web/MasterSetting";
MasterSetting
検索、フィルター、ページネーション機能を備えたマスター設定一覧を表示します。
import { MasterSetting } from "@mbc-cqrs-serverless/master-web";
import "@mbc-cqrs-serverless/master-web/styles.css";
export default function MasterSettingsPage() {
return <MasterSetting />;
}
EditMasterSettings
マスター設定の作成・ 編集用フォームコンポーネント。
import { EditMasterSettings } from "@mbc-cqrs-serverless/master-web";
export default function EditMasterSettingsPage({ params }: { params: { id: string } }) {
return <EditMasterSettings id={params.id} />;
}
CopyMasterSettings
既存の設定に基づいて新しい設定を作成するためのマスター設定コピーコンポーネント。
import { CopyMasterSettings } from "@mbc-cqrs-serverless/master-web";
export default function CopyMasterSettingsPage({ params }: { params: { id: string } }) {
return <CopyMasterSettings id={params.id} />;
}
NewCopyMasterSettings
新しい識別子でマスター設定の新しいコピーを作成するためのコンポーネント。
import { NewCopyMasterSettings } from "@mbc-cqrs-serverless/master-web";
export default function NewCopyMasterSettingsPage({ params }: { params: { id: string } }) {
return <NewCopyMasterSettings id={params.id} />;
}
DetailCopy
マスター設定のコピー詳細情報を表示するためのコンポーネント。
import { DetailCopy } from "@mbc-cqrs-serverless/master-web";
export default function DetailCopyPage({ params }: { params: { id: string } }) {
return <DetailCopy id={params.id} />;
}
MasterData
CRUD操作機能付きでマスターデータレコードをテーブル形式で表示します。
import { MasterData } from "@mbc-cqrs-serverless/master-web";
export default function MasterDataPage() {
return <MasterData />;
}
EditMasterData
マスターデータレコードの作成・編集用フォームコンポーネント。
import { EditMasterData } from "@mbc-cqrs-serverless/master-web";
export default function EditMasterDataPage({ params }: { params: { id: string } }) {
return <EditMasterData id={params.id} />;
}
プロバイダーのセットアップ
認証とAPIアクセスに必要なプロバイダーでアプリケーションをラップします。
AppProviders
AppProvidersコンポーネントは、テナント情報を含むUserContext型のuserプロパティが必要です。
import { AppProviders } from "@mbc-cqrs-serverless/master-web";
import type { UserContext } from "@mbc-cqrs-serverless/master-web";
export default function RootLayout({ children }: { children: React.ReactNode }) {
// UserContext contains tenant information (UserContextはテナント情報を含む)
const user: UserContext = {
tenantCode: "your-tenant-code",
tenantRole: "admin",
};
return (
<AppProviders user={user}>
{children}
</AppProviders>
);
}
AppProviders プロパティ
| プロパティ | 型 | 必須 | 説明 |
|---|---|---|---|
user | UserContext | はい | テナント情報を含むユーザーコンテキスト |
httpClient | AxiosInstance | いいえ | HTTPリクエスト用のカスタムAxiosインスタンス |
apolloClient | ApolloClient | いいえ | カスタムApollo Clientインスタンス |
urlProvider | IUrlProvider | いいえ | カスタムURLプロバイダーインスタンス |
UserContext 型
UserContext型はユーザーオブジェクトの形状を定義します。useUserContextフックの戻り値の型を使用するか、互換性のある型を定義できます:
type UserContext = {
tenantCode: string; // Tenant identifier (テナント識別子)
tenantRole: string; // User role within the tenant (テナント内のユーザーロール)
};
UserContextは内部的に使用されますが、userプロパティ用に互換性のあるオブジェクト型を作成できます。
URLプロバイダー
このパッケージは、アプリケーションURLを管理するためのURLプロバイダーシステムを提供します。