mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
73 lines
2.5 KiB
Plaintext
73 lines
2.5 KiB
Plaintext
---
|
|
layout: "layouts/DocLayout.astro"
|
|
title: Forms
|
|
description: Documentation for the Forms API for spotube plugins
|
|
order: 1
|
|
---
|
|
|
|
Spotube provides a Forms API that allows plugin developers to create and manage forms within the Spotube application.
|
|
|
|
## Usage
|
|
|
|
Following will show a form with 2 text fields and text in between them:
|
|
|
|
```hetu_script
|
|
import "module:spotube_plugin" as spotube
|
|
|
|
spotube.SpotubeForm.show(
|
|
"The form page title",
|
|
[
|
|
{
|
|
objectType: "input",
|
|
id: "name",
|
|
variant: "text",
|
|
placeholder: "Enter your name",
|
|
required: true,
|
|
}.toJson(),
|
|
{
|
|
objectType: "input",
|
|
id: "password",
|
|
variant: "password", // This will obfuscate the input
|
|
placeholder: "Enter your password",
|
|
required: true,
|
|
}.toJson(),
|
|
{
|
|
objectType: "text",
|
|
text: "This is some text after the two fields.",
|
|
}.toJson(),
|
|
]
|
|
).then((result) {
|
|
// Handle the result
|
|
print(result)
|
|
})
|
|
```
|
|
|
|
The method `spotube.SpotubeForm.show` takes a title and a list of form field declaration map. The map should be, well obviously a `Map`.
|
|
Following are field map properties:
|
|
|
|
| Property | Type | Description |
|
|
| -------------- | ----------------- | ---------------------------------------------------------------------------------- |
|
|
| `objectType` | `text` or `input` | Type of the object, should be `text` for text fields and `input` for input fields. |
|
|
| `id` | `String` | Unique identifier for the field. (`input` type only) |
|
|
| `variant` | `String` | Variant of the field, can be `text`, `password` or `number`. (`input` type only) |
|
|
| `placeholder` | `String` | Optional placeholder text for the field. (`input` type only) |
|
|
| `required` | `Boolean` | Whether the field is required or not. (`input` type only) |
|
|
| `defaultValue` | `String` | Optional default value for the field. (`input` type only) |
|
|
| `regex` | `String` | Optional regex pattern to validate the input. (`input` type only) |
|
|
| `text` | `String` | Optional text for `text` object type. (Only applicable for `text` type) |
|
|
|
|
The method `spotube.SpotubeForm.show` returns a following format:
|
|
|
|
```json
|
|
[
|
|
{
|
|
"id": "name",
|
|
"value": "John Doe"
|
|
},
|
|
{
|
|
"id": "password",
|
|
"value": "12345678"
|
|
}
|
|
]
|
|
```
|