Skip to content

Commit

Permalink
refactor: type of it
Browse files Browse the repository at this point in the history
  • Loading branch information
zombieJ committed Dec 8, 2023
1 parent 44cb6c2 commit 4ccfdf5
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 17 deletions.
7 changes: 6 additions & 1 deletion docs/examples/debug.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,12 @@ export default () => {
</button>

<div style={{ display: 'flex', flexWrap: 'wrap', gap: 16 }}>
<PickerPanel generateConfig={dayjsGenerateConfig} locale={zhCN} value={dayjs()} />
<PickerPanel
generateConfig={dayjsGenerateConfig}
locale={zhCN}
defaultValue={[dayjs()]}
multiple
/>
{/* <CellPicker
picker="time"
locale={{
Expand Down
4 changes: 2 additions & 2 deletions src/NewPicker/PickerPanel/PanelBody.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export default function PanelBody<DateType = any>(props: PanelBodyProps<DateType
now,
disabledDate,
cellRender,
onChange,
onValuesChange,
onHover,
hoverValue,
generateConfig,
Expand Down Expand Up @@ -121,7 +121,7 @@ export default function PanelBody<DateType = any>(props: PanelBodyProps<DateType
})}
onClick={() => {
if (!disabled) {
onChange(currentDate);
onValuesChange([currentDate]);
}
}}
onDoubleClick={() => {
Expand Down
35 changes: 21 additions & 14 deletions src/NewPicker/PickerPanel/context.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
import React from 'react';
import type { GenerateConfig } from '../../generate';
import type { CellRender, DisabledDate, Locale, PanelMode, SharedPanelProps } from '../interface';
import type { PanelMode, SharedPanelProps } from '../interface';

export interface PanelContextProps<DateType = any> {
export interface PanelContextProps<DateType = any>
extends Pick<
SharedPanelProps,
| 'prefixCls'
| 'disabledDate'
| 'cellRender'
| 'generateConfig'
| 'locale'
| 'onChange'
| 'onValuesChange'
| 'hoverValue'
| 'onHover'
| 'value'
| 'values'
| 'pickerValue'
> {
type: PanelMode;

// Shared
prefixCls: string;
now: DateType;
disabledDate?: DisabledDate<DateType>;
cellRender?: CellRender<DateType>;
onChange: (date: DateType) => void;
locale: Locale;
hoverValue: [DateType, DateType] | null;
onHover?: (date: DateType | null) => void;
value?: DateType;
/** `pickerValue` is always exist */
pickerValue: DateType;
generateConfig: GenerateConfig<DateType>;
}

/** Used for each single Panel. e.g. DatePanel */
Expand All @@ -36,21 +39,25 @@ export function useInfo<DateType = any>(
disabledDate,
cellRender,
onChange,
onValuesChange,
hoverValue,
onHover,
value,
values,
pickerValue,
} = props;

const now = generateConfig.getNow();
const info = {
now,
value,
values,
pickerValue,
prefixCls,
disabledDate,
cellRender,
onChange,
onValuesChange,
hoverValue,
onHover,
locale,
Expand Down
1 change: 1 addition & 0 deletions src/NewPicker/PickerPanel/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ function PickerPanel<DateType extends object = any>(
};

const onPanelValueChange = (nextValue: DateType) => {
console.error('change!!!');
onPanelValuesChange([nextValue]);
};

Expand Down
3 changes: 3 additions & 0 deletions src/NewPicker/interface.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,9 @@ export interface SharedPanelProps<DateType = any> {
* When not `multiple`, it will be `[value]`.
*/
values?: DateType[];
/**
* For multiple value usage.
*/
onValuesChange: (values: DateType[]) => void;

// Mode
Expand Down

0 comments on commit 4ccfdf5

Please sign in to comment.