useCheckActionAvailability
useCheckActionAvailability
は、指定したアクションの「通常のアクション実行(execution
)」「ジョブとして実行(job
)」「レビュー依頼の作成(reviewRequest
)」が可能かを判定するフックです。
各操作が可能かを示すisAvailable
を返します。isAvailable
がfalse
の場合は、reason
とmessage
に操作を行なえない理由を返します。読み込み中はnull
を返します。
基本的な使い方
import { useEffect, useState } from "react";
import {
useCheckActionAvailability,
Alert,
Button,
HStack,
VStack,
LoadingIndicator,
} from "@basemachina/view";
const App = () => {
const actionId = "get-user"; // アクションのIDまたは識別子
const availability = useCheckActionAvailability(actionId);
if (!availability) {
return <LoadingIndicator />;
}
const { execution, job, reviewRequest } = availability;
return (
<VStack>
<HStack>
<Button
title="通常のアクション実行"
disabled={!execution.isAvailable}
onClick={() => {/* 実行処理 */}}
/>
<Button
title="ジョブとして実行"
disabled={!job.isAvailable}
onClick={() => {/* ジョブ作成処理 */}}
/>
<Button
title="レビュー依頼を作成"
disabled={!reviewRequest.isAvailable}
onClick={() => {/* レビュー依頼作成処理 */}}
/>
</HStack>
{!execution.isAvailable && (
<Alert color="gray" message={`通常のアクション実行不可: ${execution.reason} - ${execution.message}`} />
)}
{!job.isAvailable && (
<Alert color="gray" message={`ジョブとしての実行不可: ${job.reason} - ${job.message}`} />
)}
{!reviewRequest.isAvailable && (
<Alert color="gray" message={`レビュー依頼の作成不可: ${reviewRequest.reason} - ${reviewRequest.message}`} />
)}
</VStack>
);
};
export default App;
詳細なインターフェース
引数
引数名 | 型 | 必須 ・ 任意 | 説明 | 例 |
---|---|---|---|---|
actionId | string | 必須 | アクションのID、または識別子。 | 'c3hc2ii23akg0sokf9j0' , 'get-user' |
戻り値
以下の型の値を返します(読み込み中はnull
)。
type CommonReason =
| "notFound"
| "noPermission"
| "dataSourceDeleted"
| "noCurrentEnvironmentDataSource"
| "environmentInvisible"
| "reviewSettingDeleted";
type Returns = {
execution:
| { isAvailable: true }
| {
isAvailable: false;
reason: CommonReason | "reviewRequired" | "jobQueueSet";
message: string;
};
job:
| { isAvailable: true }
| {
isAvailable: false;
reason: CommonReason | "reviewRequired";
message: string;
};
reviewRequest:
| { isAvailable: true }
| {
isAvailable: false;
reason:
| CommonReason
| "noReviewSetting"
| "environmentNotRequiringReview";
message: string;
};
} | null;
共通の理由(CommonReason)
reason | message |
---|---|
notFound | 存在しないアクションのIDまたは識別子です。 |
noPermission | 実行権限がありません。 |
dataSourceDeleted | データソースが削除されています。 |
noCurrentEnvironmentDataSource | この環境のデータソース設定がありません。 |
environmentInvisible | この環境ではアクションが非表示になっています。 |
reviewSettingDeleted | レビュー設定が削除されています。 |
操作別の理由
操作 | reason | message |
---|---|---|
execution | reviewRequired | この環境では実行前レビューが必要です。 |
execution | jobQueueSet | ジョブキューが設定されているため、ジョブでのみ実行可能です。 |
job | reviewRequired | この環境では実行前レビューが必要です。 |
reviewRequest | noReviewSetting | レビュー設定が使用されていません。 |
reviewRequest | environmentNotRequiringReview | この環境で実行前レビューが有効化されていません。 |