Task - Input

Description

A task bit for creating single line response questions. The answer of a user can be automatically evaluated by providing a regular expression. You can also give feedback by using regular expression, as well.
View Repository
View on NPM

Example

This is an interactive example of the Input task. You can submit new answers, show a statistic based on thoses answers or modify the task by using the different forms.

Name the programming lanuage which is primarly used for implementing Bitflow.

Imports

This is a list of all exported components and functions. These are only relevant if you want to use this task in a standalone way.
import {
  Task, TaskSchema,
  ViewForm, EvaluationForm, FeedbackForm,
  evaluate, updateStatistic, Statistic
} from "@bitflow/task-input"

Usage

We recommand that you wrap this component with the TaskShell component like so, if you want to use the component on its own.
import { TaskShell } from "@bitflow/shell";
import { evaluate, Task } from "@bitflow/task-input";

const My = () => (
  <TaskShell
    onNext={async () => {}}
    evaluate={evaluate}
    TaskComponent={Task}
    mode="default"
    task={task}
  />
);
            
You can also use this task with the Do component.

Actions

Each task emits different actions, which can be used for capture and replay the solving process. These are defined by the IAction type.

JSON Schema

If you do not want to use the provided forms to create a task object, you can build something yourself which produces a object, which follows this JSON schema.
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "subtype": {
      "type": "string",
      "const": "input"
    },
    "view": {
      "type": "object",
      "properties": {
        "instruction": {
          "type": "string"
        }
      },
      "required": [
        "instruction"
      ],
      "additionalProperties": false
    },
    "evaluation": {
      "type": "object",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "auto",
            "skip",
            "manual"
          ]
        },
        "enableRetry": {
          "type": "boolean"
        },
        "showFeedback": {
          "type": "boolean"
        },
        "pattern": {
          "type": "string"
        }
      },
      "required": [
        "mode",
        "enableRetry",
        "showFeedback",
        "pattern"
      ],
      "additionalProperties": false
    },
    "feedback": {
      "type": "object",
      "properties": {
        "patterns": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "pattern": {
                "type": "string"
              },
              "feedback": {
                "type": "object",
                "properties": {
                  "message": {
                    "type": "string"
                  },
                  "severity": {
                    "type": "string",
                    "enum": [
                      "error",
                      "warning",
                      "info",
                      "success"
                    ]
                  }
                },
                "required": [
                  "message",
                  "severity"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "pattern",
              "feedback"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "patterns"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "name",
    "subtype",
    "view",
    "evaluation",
    "feedback"
  ],
  "additionalProperties": false
}