mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
file component support
This commit is contained in:
parent
d94ab88563
commit
b559cd7593
4 changed files with 36 additions and 3 deletions
|
|
@ -1,6 +1,4 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import InputControl from './InputControl';
|
|
||||||
|
|
||||||
export interface LocalFile {
|
export interface LocalFile {
|
||||||
|
|
||||||
|
|
|
||||||
31
web/app/cad/mdf/ui/FileWidget.tsx
Normal file
31
web/app/cad/mdf/ui/FileWidget.tsx
Normal 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),
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -9,6 +9,7 @@ import {ChoiceWidget} from "cad/mdf/ui/ChoiceWidget";
|
||||||
import {SubFormWidget} from "cad/mdf/ui/SubFormWidget";
|
import {SubFormWidget} from "cad/mdf/ui/SubFormWidget";
|
||||||
import {BooleanWidgetDefinition} from "cad/mdf/ui/BooleanWidget";
|
import {BooleanWidgetDefinition} from "cad/mdf/ui/BooleanWidget";
|
||||||
import {DirectionWidgetDefinition} from "cad/mdf/ui/DirectionWidget";
|
import {DirectionWidgetDefinition} from "cad/mdf/ui/DirectionWidget";
|
||||||
|
import {FileWidget} from "cad/mdf/ui/FileWidget";
|
||||||
|
|
||||||
export const DynamicComponents = {
|
export const DynamicComponents = {
|
||||||
|
|
||||||
|
|
@ -27,6 +28,8 @@ export const DynamicComponents = {
|
||||||
'checkbox': CheckboxWidget,
|
'checkbox': CheckboxWidget,
|
||||||
|
|
||||||
'choice': ChoiceWidget,
|
'choice': ChoiceWidget,
|
||||||
|
|
||||||
|
'file': FileWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ComponentLibrary = {
|
export const ComponentLibrary = {
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,10 @@ import {BooleanWidgetProps} from "cad/mdf/ui/BooleanWidget";
|
||||||
import {ChoiceWidgetProps} from "cad/mdf/ui/ChoiceWidget";
|
import {ChoiceWidgetProps} from "cad/mdf/ui/ChoiceWidget";
|
||||||
import {SubFormWidgetProps} from "cad/mdf/ui/SubFormWidget";
|
import {SubFormWidgetProps} from "cad/mdf/ui/SubFormWidget";
|
||||||
import {DirectionWidgetProps} from "cad/mdf/ui/DirectionWidget";
|
import {DirectionWidgetProps} from "cad/mdf/ui/DirectionWidget";
|
||||||
|
import {FileWidgetProps} from "cad/mdf/ui/FileWidget";
|
||||||
|
|
||||||
export type FieldWidgetProps = NumberWidgetProps | CheckboxWidgetProps | ChoiceWidgetProps | SelectionWidgetProps
|
export type FieldWidgetProps = NumberWidgetProps | CheckboxWidgetProps | ChoiceWidgetProps | SelectionWidgetProps
|
||||||
| AxisWidgetProps | DirectionWidgetProps | BooleanWidgetProps;
|
| AxisWidgetProps | DirectionWidgetProps | BooleanWidgetProps | FileWidgetProps;
|
||||||
|
|
||||||
export type BasicWidgetProps = ContainerWidgetProps | SectionWidgetProps | GroupWidgetProps | SubFormWidgetProps;
|
export type BasicWidgetProps = ContainerWidgetProps | SectionWidgetProps | GroupWidgetProps | SubFormWidgetProps;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue