React provider と context
SnaProvider、SnaSession、useSnaContext の props と返り値。
React provider と context
<SnaProvider>
<SnaProvider connection?: SnaConnection snaUrl?: string authToken?: string sessionId?: string hydrate?: boolean>
{children}
</SnaProvider>| Prop | Type | Default | Description |
|---|---|---|---|
children | React.ReactNode | required | SNA context を受け取る subtree です。 |
connection | { baseUrl: string; authToken?: string } | none | SDK launcher が返す connection object です。保護された embedded SNA では token と URL を一緒に保つため、これを優先します。 |
snaUrl | string | auto-discovery | SNA internal API server URL です。省略すると host app の /api/sna-port を先に読み、失敗した場合は http://localhost:3099 を使います。 |
authToken | string | none | Custom deployment 用の token override です。SDK が server を起動していない保護サーバーでは snaUrl と一緒に使います。 |
sessionId | string | default | descendants の default session ID です。 |
hydrate | boolean | true | mount 時に chat store が保存済み sessions と messages を取得するかを制御します。chat store を使わない app では false にできます。 |
SnaProvider は UI を render しません。React context に { apiUrl, authToken, sessionId } を提供し、必要に応じて useChatStore を hydrate します。Discovery route は { baseUrl, authToken } または { port, authToken } を返せます。この route は信頼済み host app route としてだけ公開するのが安全です。
<SnaSession>
<SnaSession id="review-panel">
{children}
</SnaSession>| Prop | Type | Required | Description |
|---|---|---|---|
id | string | yes | descendant hooks が使う session ID です。 |
children | React.ReactNode | yes | この session scope が適用される subtree です。 |
SnaSession は parent の API URL を再利用し、subtree の session ID だけを変更します。
useSnaContext()
const context = useSnaContext(): { apiUrl: string; authToken?: string; sessionId: string }| Field | Description |
|---|---|
apiUrl | 現在の SNA server base URL です。 |
authToken | hooks と chat store が使う token です。 |
sessionId | 現在の subtree の active session ID です。 |