diff --git a/modules/ui/components/controls/FileControl.tsx b/modules/ui/components/controls/FileControl.tsx index fad079fd..6669187c 100644 --- a/modules/ui/components/controls/FileControl.tsx +++ b/modules/ui/components/controls/FileControl.tsx @@ -1,6 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; -import InputControl from './InputControl'; export interface LocalFile { diff --git a/web/app/cad/mdf/ui/FileWidget.tsx b/web/app/cad/mdf/ui/FileWidget.tsx new file mode 100644 index 00000000..353bf406 --- /dev/null +++ b/web/app/cad/mdf/ui/FileWidget.tsx @@ -0,0 +1,31 @@ +import {FileField} from "cad/craft/wizard/components/form/Fields"; +import React from "react"; +import {FieldBasicProps, fieldToSchemaGeneric} from "cad/mdf/ui/field"; +import {Types} from "cad/craft/schema/types"; + +export interface FileWidgetProps extends FieldBasicProps { + + type: 'file'; + +} + +export function FileWidget(props: FileWidgetProps) { + return +} + +FileWidget.propsToSchema = (props: FileWidgetProps) => { + return { + type: Types.object, + schema: { + fileName: { + type: 'string' + }, + content: { + type: 'string' + } + }, + ...fieldToSchemaGeneric(props), + } +}; + + diff --git a/web/app/cad/mdf/ui/componentRegistry.ts b/web/app/cad/mdf/ui/componentRegistry.ts index 3bccf7a8..60169914 100644 --- a/web/app/cad/mdf/ui/componentRegistry.ts +++ b/web/app/cad/mdf/ui/componentRegistry.ts @@ -9,6 +9,7 @@ import {ChoiceWidget} from "cad/mdf/ui/ChoiceWidget"; import {SubFormWidget} from "cad/mdf/ui/SubFormWidget"; import {BooleanWidgetDefinition} from "cad/mdf/ui/BooleanWidget"; import {DirectionWidgetDefinition} from "cad/mdf/ui/DirectionWidget"; +import {FileWidget} from "cad/mdf/ui/FileWidget"; export const DynamicComponents = { @@ -27,6 +28,8 @@ export const DynamicComponents = { 'checkbox': CheckboxWidget, 'choice': ChoiceWidget, + + 'file': FileWidget } export const ComponentLibrary = { diff --git a/web/app/cad/mdf/ui/uiDefinition.ts b/web/app/cad/mdf/ui/uiDefinition.ts index a5aadf23..720b43bf 100644 --- a/web/app/cad/mdf/ui/uiDefinition.ts +++ b/web/app/cad/mdf/ui/uiDefinition.ts @@ -10,9 +10,10 @@ import {BooleanWidgetProps} from "cad/mdf/ui/BooleanWidget"; import {ChoiceWidgetProps} from "cad/mdf/ui/ChoiceWidget"; import {SubFormWidgetProps} from "cad/mdf/ui/SubFormWidget"; import {DirectionWidgetProps} from "cad/mdf/ui/DirectionWidget"; +import {FileWidgetProps} from "cad/mdf/ui/FileWidget"; export type FieldWidgetProps = NumberWidgetProps | CheckboxWidgetProps | ChoiceWidgetProps | SelectionWidgetProps - | AxisWidgetProps | DirectionWidgetProps | BooleanWidgetProps; + | AxisWidgetProps | DirectionWidgetProps | BooleanWidgetProps | FileWidgetProps; export type BasicWidgetProps = ContainerWidgetProps | SectionWidgetProps | GroupWidgetProps | SubFormWidgetProps;