body method

  1. @override
String body(
  1. String baseName,
  2. String className
)
override

Defines the actual body code. path is passed relative to lib, baseName is the filename, and className is the filename converted to Pascal case.

実際の本体コードを定義します。pathlibからの相対パス、baseNameにファイル名が渡され、classNameにファイル名をパスカルケースに変換した値が渡されます。

Implementation

@override
String body(String baseName, String className) {
  return r"""
`Modal`には下記の3種類存在する。それぞれ目的に応じて実装する。

## AlertModal

- ユーザーに情報を伝えるためのモーダル。
  - 下記の要素が利用可能
      - `タイトル`
      - `メッセージ`
      - `確定ボタン`
  - エラーメッセージやお知らせダイアログなどユーザーにメッセージを表示し知らせるために利用する。
  - 例:
      ```dart
      Modal.alert(
          context,
          title: "タイトル",
          text: "メッセージ(Optional)",
          submitText: "確定ボタンのテキスト",
          onSubmit: () {
              // 確定ボタンが押された時の処理
          },
      );
      ```

## ConfirmModal

- ユーザーの同意を得るためのモーダル。
  - 下記の要素が利用可能
      - `タイトル`
      - `メッセージ`
      - `確定ボタン`
      - `キャンセルボタン`
  - ユーザーに選択肢を選ばせるためのダイアログやユーザーの同意を得るためのダイアログに利用する。
  - 例:
      ```dart
      Modal.confirm(
          context,
          title: "タイトル",
          text: "メッセージ(Optional)",
          submitText: "確定ボタンのテキスト",
          cancelText: "キャンセルボタンのテキスト",
          onSubmit: () {
              // 確定ボタンが押された時の処理
          },
          onCancel: () {
              // キャンセルボタンが押された時の処理(Optional)
          },
      );
      ```

## CustomModal

- 自由にカスタマイズ可能なモーダル。
  - 自由にウィジェットを作成し表示することが可能。
  - `Modal`クラスを拡張して作成する。
  - 作成手順
      1. 下記のコマンドを実行して`lib/modals`フォルダにカスタム`Modal`クラスを作成する。

          ```bash
          katana code modal [ModalName(SnakeCase)]
          ```

      2. `lib/modals/[ModalName(SnakeCase)].dart`にカスタム`Modal`クラスが作成される。
          - 例:
              ```dart
              // lib/modals/test.dart

              /// Modal widget for Test.
              @immutable
              class TestModal extends Modal {
                const TestModal();

                @override
                Widget build(BuildContext context, ModalRef ref) {
                  // Describes the structure of the modal.
                  // TODO: Implement the view.
                  return const Empty();
                }
              }
              ```
      3. 作成した`Modal`クラスを表示するには下記のようにする。
          ```dart
          Modal.show(context, modal: TestModal());
          ```
""";
}