Skip to content

Commit cd4775e

Browse files
committed
feat: add default option feature
1 parent 747f77b commit cd4775e

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

packages/tushan/client/components/fields/datetime.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,9 @@ DateTimeFieldEdit.displayName = 'DateTimeFieldEdit';
4545
export const createDateTimeField = createFieldFactory<DateTimeFieldOptions>({
4646
detail: DateTimeFieldDetail,
4747
edit: DateTimeFieldEdit,
48+
defaultOptions: {
49+
list: {
50+
width: 180,
51+
},
52+
},
4853
});

packages/tushan/client/components/fields/factory.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { FieldTitle } from '../FieldTitle';
1111
export interface CreateFieldFactoryConfig<CustomOptions = {}> {
1212
detail: FieldDetailComponent<any, CustomOptions>;
1313
edit: FieldEditComponent<any, CustomOptions>;
14+
defaultOptions?: BasicFieldOptions & CustomOptions;
1415
}
1516

1617
export type ListFieldItem = {
@@ -49,9 +50,14 @@ export function createFieldFactory<CustomOptions extends {} = {}>(
4950
) {
5051
return (
5152
source: string,
52-
options?: BasicFieldOptions & CustomOptions
53+
_options?: BasicFieldOptions & CustomOptions
5354
): FieldHandler =>
5455
(viewType) => {
56+
const options = {
57+
...config.defaultOptions,
58+
..._options,
59+
} as BasicFieldOptions & CustomOptions;
60+
5561
if (viewType === 'list') {
5662
return {
5763
hidden: options?.list?.hidden ?? false,

0 commit comments

Comments
 (0)