feat: Adjust forms to include Rich Parameters (#5856)

* XService: GetTemplateParameters

* Rich parameter input shows up

* Render option icons

* Icons

* WIP

* For testing purposes: template

* Fix: useState

* WIP: dynamic validation

* Yup validation

* Translations

* Remove temporary template

* make fmt

* WIP

* Fix: tests

* Fix: fmt

* URL param

* Refactor

* Test: rich param value

* Storybook

* Fix

* Refactor for testing purposes

* Typo

* test: string validation

* Button: build parameters

* Full screen page

* Fix: navigate

* XState done

* refactor: postWorkspaceBuild

* RichParameterInput rendered

* Fix: bad initial value

* Validation works

* Maybe

* Fix

* Go back button

* GoBack button

* Form

* Fix

* Storybook

* Fix: CreateWorkspacePage

* fmt

* Test

* ns

* fmt

* All tests

* feat: WorkspaceActions depend on template parameters

* Fix
This commit is contained in:
Marcin Tojek
2023-02-01 18:13:11 +01:00
committed by GitHub
parent d5e2454b1b
commit f9ae105a26
30 changed files with 1785 additions and 45 deletions
+76
View File
@@ -631,11 +631,77 @@ export const MockWorkspacesResponse: TypesGen.WorkspacesResponse = {
count: 26,
}
export const MockTemplateVersionParameter1: TypesGen.TemplateVersionParameter =
{
name: "first_parameter",
type: "string",
description: "This is first parameter",
default_value: "abc",
mutable: true,
icon: "/icon/folder.svg",
options: [],
validation_error: "",
validation_regex: "",
validation_min: 0,
validation_max: 0,
}
export const MockTemplateVersionParameter2: TypesGen.TemplateVersionParameter =
{
name: "second_parameter",
type: "number",
description: "This is second parameter",
default_value: "2",
mutable: true,
icon: "/icon/folder.svg",
options: [],
validation_error: "",
validation_regex: "",
validation_min: 1,
validation_max: 3,
}
export const MockTemplateVersionParameter3: TypesGen.TemplateVersionParameter =
{
name: "third_parameter",
type: "string",
description: "This is third parameter",
default_value: "aaa",
mutable: true,
icon: "/icon/database.svg",
options: [],
validation_error: "No way!",
validation_regex: "^[a-z]{3}$",
validation_min: 0,
validation_max: 0,
}
export const MockTemplateVersionParameter4: TypesGen.TemplateVersionParameter =
{
name: "fourth_parameter",
type: "string",
description: "This is fourth parameter",
default_value: "def",
mutable: false,
icon: "/icon/database.svg",
options: [],
validation_error: "",
validation_regex: "",
validation_min: 0,
validation_max: 0,
}
// requests the MockWorkspace
export const MockWorkspaceRequest: TypesGen.CreateWorkspaceRequest = {
name: "test",
parameter_values: [],
template_id: "test-template",
rich_parameter_values: [
{
name: MockTemplateVersionParameter1.name,
value: MockTemplateVersionParameter1.default_value,
},
],
}
export const MockUserAgent: Types.UserAgent = {
@@ -1185,6 +1251,16 @@ export const MockAppearance: TypesGen.AppearanceConfig = {
},
}
export const MockWorkspaceBuildParameter1: TypesGen.WorkspaceBuildParameter = {
name: MockTemplateVersionParameter1.name,
value: "mock-abc",
}
export const MockWorkspaceBuildParameter2: TypesGen.WorkspaceBuildParameter = {
name: MockTemplateVersionParameter2.name,
value: "3",
}
export const mockParameterSchema = (
partial: Partial<TypesGen.ParameterSchema>,
): TypesGen.ParameterSchema => {