file component support

This commit is contained in:
Val Erastov 2022-07-02 15:45:37 -07:00
parent d94ab88563
commit b559cd7593
4 changed files with 36 additions and 3 deletions

View file

@ -1,6 +1,4 @@
import React from 'react';
import PropTypes from 'prop-types';
import InputControl from './InputControl';
export interface LocalFile {

View file

@ -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 <FileField name={props.name} label={props.label} />
}
FileWidget.propsToSchema = (props: FileWidgetProps) => {
return {
type: Types.object,
schema: {
fileName: {
type: 'string'
},
content: {
type: 'string'
}
},
...fieldToSchemaGeneric(props),
}
};

View file

@ -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 = {

View file

@ -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;