ビュー
関数
useCheckActionAvailability

useCheckActionAvailability

useCheckActionAvailabilityは、指定したアクションの「通常のアクション実行(execution)」「ジョブとして実行(job)」「レビュー依頼の作成(reviewRequest)」が可能かを判定するフックです。

各操作が可能かを示すisAvailableを返します。isAvailablefalseの場合は、reasonmessageに操作を行なえない理由を返します。読み込み中は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;

詳細なインターフェース

引数

引数名必須 ・ 任意説明
actionIdstring必須アクションの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)

reasonmessage
notFound存在しないアクションのIDまたは識別子です。
noPermission実行権限がありません。
dataSourceDeletedデータソースが削除されています。
noCurrentEnvironmentDataSourceこの環境のデータソース設定がありません。
environmentInvisibleこの環境ではアクションが非表示になっています。
reviewSettingDeletedレビュー設定が削除されています。

操作別の理由

操作reasonmessage
executionreviewRequiredこの環境では実行前レビューが必要です。
executionjobQueueSetジョブキューが設定されているため、ジョブでのみ実行可能です。
jobreviewRequiredこの環境では実行前レビューが必要です。
reviewRequestnoReviewSettingレビュー設定が使用されていません。
reviewRequestenvironmentNotRequiringReviewこの環境で実行前レビューが有効化されていません。