/* eslint-disable */
import React, { useState, useLayoutEffect, Component } from 'react';
import { storiesOf } from '@storybook/react';
import { Button, Modal, TreeSelect, Row, Col, Avatar, Select as BasicSelect,
Form,
useFormState,
useFormApi,
useFieldApi,
useFieldState,
withFormState,
withFormApi,
withField,
ArrayField,
AutoComplete,
Collapse,
Space,
Icon } from '../../../index';
import { ComponentUsingFormState } from '../Hook/hookDemo';
const { Input, Select, DatePicker, Switch, Slider, CheckboxGroup, Checkbox, RadioGroup, Radio, TimePicker, InputNumber, InputGroup } = Form;
class ArrayFieldCollapseDemo extends React.Component {
constructor() {
super();
this.state = {
actions: [],
};
}
renderItems(arrayFields, values) {
console.log(values);
return (
{JSON.stringify(values)}
{arrayFields.map(({ field, key, remove }, i) => (
))}
{/* {arrayFields.length && values.actions[0].name ? '2' : '1'} */}
);
}
render() {
let { actions } = this.state;
return (
);
}
}
// 使用Form Props设置 ArrayField的initValues
class ArrayFieldWithFormInitValues extends React.Component {
constructor() {
super();
this.state = {
data: {
c: 'c',
effects: [
{ name: 'form-level-init-sugar', time: 'form-level-init-3min', otherKey: 1 },
{ name: 'form-level-init-bacon', time: 'form-level-init-6min', otherKey: 2, key: 343 },
],
},
flag: true
};
this.getFormApi = this.getFormApi.bind(this);
this.change = this.change.bind(this);
}
change = () => {
let number = this.formApi.getValue('number');
let newData = Array.from({ length: 2 }, (v, i) => ({
name: `${i}-name`,
time: `${i}-time`
}));
console.log(newData);
this.formApi.setValue('effects', newData);
}
getFormApi(formApi) {
this.formApi = formApi;
}
render() {
return (
);
}
}
// 使用 ArrayField props initValue来设置初始值
class ArrayFieldWithInitValue extends React.Component {
constructor() {
super();
this.state = {
data: {
effects: [
{ name: 'arrayField-props.initValue-0-name', time: 'arrayField-props.initValue-0-time', otherKey: 1 },
{ name: 'arrayField-props.initValue-1-name', time: 'arrayField-props.initValue-1-time', otherKey: 453 },
],
},
flag: true
};
this.getFormApi = this.getFormApi.bind(this);
this.change = this.change.bind(this);
}
change = () => {
let number = this.formApi.getValue('number');
let newData = Array.from({ length: 2 }, (v, i) => ({
name: `${i}-name`,
time: `${i}-time`
}));
console.log(newData);
this.formApi.setValue('effects', newData);
}
getFormApi(formApi) {
this.formApi = formApi;
}
render() {
const { effects } = this.state.data;
return (
);
}
}
/* basic usage */
class ArrayFieldDemo extends React.Component {
constructor() {
super();
this.state = {
data: {
c: 'c',
test: [
// {},
// {},
{ name: 'sugar', time: '3min' },
// { name: 'bacon', time: '6min', key: 'c2' },
{ name: 'bacon', time: '6min' },
],
},
flag: true
};
this.getFormApi = this.getFormApi.bind(this);
}
change = () => {
let number = this.formApi.getValue('number');
let newData = Array.from({ length: number }, (v, i) => ({
name: `${i}-name`,
time: `${i}-time`
}));
this.formApi.setValue('effects', newData);
}
clear = () => {
// this.formApi.setValues({ number: 3 });
// this.formApi.setValues({}, { isOverride: true });
this.formApi.setValues({ number: 3 }, { isOverride: true });
}
getFormApi(formApi) {
this.formApi = formApi;
}
render() {
return (
);
}
}
export { ArrayFieldCollapseDemo, ArrayFieldDemo, ArrayFieldWithFormInitValues, ArrayFieldWithInitValue };