Skip to content

Commit

Permalink
feat Drawer Component & fix Form field bug
Browse files Browse the repository at this point in the history
  • Loading branch information
fengxinhhh committed Jul 31, 2022
1 parent 02d07b9 commit e31364c
Show file tree
Hide file tree
Showing 20 changed files with 1,012 additions and 54 deletions.
14 changes: 6 additions & 8 deletions packages/concis-react/src/DatePicker/DatePicker/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,8 @@ const DatePicker: FC<DatePickerProps> = (props) => {
setNowDayList(
chunk(
daysArr.map((_, i) => {
const day = `${
i - firstWeekDay <= -1 || i - firstWeekDay + 1 > lastDay ? '' : i - firstWeekDay + 1
}`;
const day = `${i - firstWeekDay <= -1 || i - firstWeekDay + 1 > lastDay ? '' : i - firstWeekDay + 1
}`;
const date = new Date(year, month - 1, Number(day));
return {
date,
Expand All @@ -122,7 +121,7 @@ const DatePicker: FC<DatePickerProps> = (props) => {
}, [formCtx.reset]);
useEffect(() => {
if (formCtx.submitStatus) {
formCtx.getChildVal(`${dayjs(nowDate).format(format)}`);
formCtx.getChildVal(dateValue);
}
}, [formCtx.submitStatus]);

Expand All @@ -134,7 +133,6 @@ const DatePicker: FC<DatePickerProps> = (props) => {
if (data.disable) {
return;
}
console.log(nowDayList);
setClickDate(data.date);
setDateValue(dayjs(data.date).format(format));
setNowDate({
Expand Down Expand Up @@ -218,9 +216,8 @@ const DatePicker: FC<DatePickerProps> = (props) => {
<td
key={idx}
onClick={() => setInputVal(day)}
className={`${day.value === '' ? 'day-empty' : ''} ${
day.disable ? 'disable' : ''
} ${isSameDate(day.date) ? 'active' : ''}`}
className={`${day.value === '' ? 'day-empty' : ''} ${day.disable ? 'disable' : ''
} ${isSameDate(day.date) ? 'active' : ''}`}
>
{day.value}
</td>
Expand All @@ -239,6 +236,7 @@ const DatePicker: FC<DatePickerProps> = (props) => {
type="primary"
showClear={showClear}
clearCallback={clearCallback}
isFather
/>
</Popover>
);
Expand Down
11 changes: 4 additions & 7 deletions packages/concis-react/src/DatePicker/MonthPicker/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ const MonthPicker: FC<MonthPickerProps> = (props) => {
}, [formCtx.reset]);
useEffect(() => {
if (formCtx.submitStatus) {
formCtx.getChildVal(`${dayjs(dateValue).format(format)}`);
formCtx.getChildVal(dateValue);
}
}, [formCtx.submitStatus]);
const clearCallback = () => {
Expand All @@ -104,9 +104,6 @@ const MonthPicker: FC<MonthPickerProps> = (props) => {
date.getMonth() + 1 === clickDate.getMonth() + 1
);
};
useEffect(() => {
console.log(108, dateValue);
}, [dateValue]);

return (
<Popover
Expand Down Expand Up @@ -145,9 +142,8 @@ const MonthPicker: FC<MonthPickerProps> = (props) => {
<td
key={i}
onClick={() => setInputVal(new Date(startYear, idx * 3 + i))}
className={`${
disableCheck(new Date(startYear, idx * 3 + i)) ? 'disable' : ''
} ${isSameDate(new Date(startYear, idx * 3 + i)) ? 'active' : ''}`}
className={`${disableCheck(new Date(startYear, idx * 3 + i)) ? 'disable' : ''
} ${isSameDate(new Date(startYear, idx * 3 + i)) ? 'active' : ''}`}
>
<span>{month}</span>
</td>
Expand All @@ -165,6 +161,7 @@ const MonthPicker: FC<MonthPickerProps> = (props) => {
type="primary"
showClear={showClear}
clearCallback={clearCallback}
isFather
/>
</Popover>
);
Expand Down
29 changes: 14 additions & 15 deletions packages/concis-react/src/DatePicker/YearPicker/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -96,18 +96,17 @@ const YearPicker: FC<YearPickerProps> = (props) => {
),
);
}, [year]);
// useEffect(() => {
// //用于监听Form组件的重置任务
// if (formCtx.reset) {
// setNowDate(today);
// setDateValue('');
// }
// }, [formCtx.reset]);
// useEffect(() => {
// if (formCtx.submitStatus) {
// formCtx.getChildVal(`${dayjs(nowDate).format(format)}`);
// }
// }, [formCtx.submitStatus]);
useEffect(() => {
//用于监听Form组件的重置任务
if (formCtx.reset) {
setDateValue('');
}
}, [formCtx.reset]);
useEffect(() => {
if (formCtx.submitStatus) {
formCtx.getChildVal(dateValue);
}
}, [formCtx.submitStatus]);
const clearCallback = () => {
setDateValue('');
handleChange && handleChange(null);
Expand Down Expand Up @@ -162,9 +161,8 @@ const YearPicker: FC<YearPickerProps> = (props) => {
<td
key={i}
onClick={() => setInputVal(date)}
className={`${date.disable ? 'disable' : ''} ${
isSameDate(date.date) ? 'active' : ''
}`}
className={`${date.disable ? 'disable' : ''} ${isSameDate(date.date) ? 'active' : ''
}`}
>
<span>{date.value}</span>
</td>
Expand All @@ -182,6 +180,7 @@ const YearPicker: FC<YearPickerProps> = (props) => {
type="primary"
showClear={showClear}
clearCallback={clearCallback}
isFather
/>
</Popover>
);
Expand Down
29 changes: 29 additions & 0 deletions packages/concis-react/src/Drawer/demos/index1.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import React, { useState } from 'react';
import Drawer from '..';
import Button from '../../Button';

export default function index1() {
const [visible, setVisible] = useState(false);

return (
<div>
<Button
handleClick={() => {
setVisible(true);
}}
>
Open Drawer
</Button>
<Drawer
title="Drawer Title"
visible={visible}
onOk={() => setVisible(false)}
onCancel={() => setVisible(false)}
>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
</Drawer>
</div>
);
}
40 changes: 40 additions & 0 deletions packages/concis-react/src/Drawer/demos/index2.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import React, { useState, useEffect } from 'react';
import Drawer from '..';
import Button from '../../Button';
import RadioGroup from '../../Radio/RadioGroup';
import Radio from '../../Radio';

export default function index1() {
const [visible, setVisible] = useState(false);
const [align, setAlign] = useState('right');

return (
<div>
<RadioGroup value={0} onChange={(val: { children?: string }) => setAlign(val.children)}>
<Radio>right</Radio>
<Radio>left</Radio>
<Radio>top</Radio>
<Radio>bottom</Radio>
</RadioGroup>
<Button
style={{ marginTop: '30px' }}
handleClick={() => {
setVisible(true);
}}
>
Open Drawer
</Button>
<Drawer
title="Drawer Title"
visible={visible}
align={align as 'left' | 'right' | 'top' | 'bottom'}
onOk={() => setVisible(false)}
onCancel={() => setVisible(false)}
>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
</Drawer>
</div>
);
}
36 changes: 36 additions & 0 deletions packages/concis-react/src/Drawer/demos/index3.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import React, { useState } from 'react';
import Drawer from '..';
import Button from '../../Button';

export default function index1() {
const [visible, setVisible] = useState(false);

return (
<div>
<Button
handleClick={() => {
setVisible(true);
}}
>
Open Drawer
</Button>
<Drawer
title="Drawer Title"
visible={visible}
onOk={() => {
return new Promise((resolve) => {
setTimeout(() => {
setVisible(false);
resolve('');
}, 2000)
})
}}
onCancel={() => setVisible(false)}
>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
</Drawer>
</div>
);
}
76 changes: 76 additions & 0 deletions packages/concis-react/src/Drawer/demos/index4.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import React, { useState } from 'react';
import Drawer from '..';
import Button from '../../Button';
import Space from '../../Space';

export default function index1() {
const [visible1, setVisible1] = useState(false);
const [visible2, setVisible2] = useState(false);
const [visible3, setVisible3] = useState(false);
const [loading, setLoading] = useState(false);

const closeAsync = () => {
setLoading(true);
setTimeout(() => {
setVisible2(false);
setLoading(false);
}, 2000);
};

return (
<div>
<Space>
<Button handleClick={() => setVisible1(true)}>打开禁用按钮Drawer</Button>
<Button handleClick={() => setVisible2(true)}>打开自定义页脚Drawer</Button>
<Button handleClick={() => setVisible3(true)}>打开无页脚Drawer</Button>
</Space>
<Drawer
title="Drawer Title"
visible={visible1}
width="400px"
onCancel={() => setVisible1(false)}
onOk={() => setVisible1(false)}
okButtonProps={{ disabled: true }}
cancelButtonProps={{ disabled: true }}
>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
</Drawer>
<Drawer
title="Drawer Title"
visible={visible2}
width="400px"
onCancel={() => setVisible2(false)}
footer={
<Space>
<Button type="text" handleClick={() => setVisible2(false)}>
Return
</Button>
<Button type="text" handleClick={closeAsync} loading={loading}>
Async Return
</Button>
<Button type="primary" handleClick={() => setVisible2(false)}>
Enter
</Button>
</Space>
}
>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
</Drawer>
<Drawer
title="Drawer Title"
visible={visible3}
onCancel={() => setVisible3(false)}
onOk={() => setVisible3(false)}
footer={<></>}
>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
</Drawer>
</div>
);
}
30 changes: 30 additions & 0 deletions packages/concis-react/src/Drawer/demos/index5.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import React, { useState } from 'react';
import Drawer from '..';
import Button from '../../Button';

export default function index1() {
const [visible, setVisible] = useState(false);

return (
<div>
<Button
handleClick={() => {
setVisible(true);
}}
>
Open Drawer
</Button>
<Drawer
title="Drawer Title"
visible={visible}
width="600px"
onOk={() => setVisible(false)}
onCancel={() => setVisible(false)}
>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
<p>This is a Drawer view text.</p>
</Drawer>
</div>
);
}
Loading

0 comments on commit e31364c

Please sign in to comment.