* refactor: add ColumnDefinition type Closes #1193 * refactor: code review - rename things * fix: fix wrong import and lint
69 lines
4.1 KiB
TypeScript
69 lines
4.1 KiB
TypeScript
import { isViewFieldBoolean } from '@/ui/editable-field/types/guards/isViewFieldBoolean';
|
|
import { isViewFieldChip } from '@/ui/editable-field/types/guards/isViewFieldChip';
|
|
import { isViewFieldDate } from '@/ui/editable-field/types/guards/isViewFieldDate';
|
|
import { isViewFieldDoubleText } from '@/ui/editable-field/types/guards/isViewFieldDoubleText';
|
|
import { isViewFieldDoubleTextChip } from '@/ui/editable-field/types/guards/isViewFieldDoubleTextChip';
|
|
import { isViewFieldEmail } from '@/ui/editable-field/types/guards/isViewFieldEmail';
|
|
import { isViewFieldMoney } from '@/ui/editable-field/types/guards/isViewFieldMoney';
|
|
import { isViewFieldNumber } from '@/ui/editable-field/types/guards/isViewFieldNumber';
|
|
import { isViewFieldPhone } from '@/ui/editable-field/types/guards/isViewFieldPhone';
|
|
import { isViewFieldRelation } from '@/ui/editable-field/types/guards/isViewFieldRelation';
|
|
import { isViewFieldText } from '@/ui/editable-field/types/guards/isViewFieldText';
|
|
import { isViewFieldURL } from '@/ui/editable-field/types/guards/isViewFieldURL';
|
|
import type { ViewFieldMetadata } from '@/ui/editable-field/types/ViewField';
|
|
|
|
import type { ColumnDefinition } from '../../types/ColumnDefinition';
|
|
import { GenericEditableBooleanCell } from '../type/components/GenericEditableBooleanCell';
|
|
import { GenericEditableChipCell } from '../type/components/GenericEditableChipCell';
|
|
import { GenericEditableDateCell } from '../type/components/GenericEditableDateCell';
|
|
import { GenericEditableDoubleTextCell } from '../type/components/GenericEditableDoubleTextCell';
|
|
import { GenericEditableDoubleTextChipCell } from '../type/components/GenericEditableDoubleTextChipCell';
|
|
import { GenericEditableEmailCell } from '../type/components/GenericEditableEmailCell';
|
|
import { GenericEditableMoneyCell } from '../type/components/GenericEditableMoneyCell';
|
|
import { GenericEditableNumberCell } from '../type/components/GenericEditableNumberCell';
|
|
import { GenericEditablePhoneCell } from '../type/components/GenericEditablePhoneCell';
|
|
import { GenericEditableRelationCell } from '../type/components/GenericEditableRelationCell';
|
|
import { GenericEditableTextCell } from '../type/components/GenericEditableTextCell';
|
|
import { GenericEditableURLCell } from '../type/components/GenericEditableURLCell';
|
|
|
|
type OwnProps = {
|
|
columnDefinition: ColumnDefinition<ViewFieldMetadata>;
|
|
};
|
|
|
|
export function GenericEditableCell({ columnDefinition }: OwnProps) {
|
|
if (isViewFieldEmail(columnDefinition)) {
|
|
return <GenericEditableEmailCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldText(columnDefinition)) {
|
|
return <GenericEditableTextCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldRelation(columnDefinition)) {
|
|
return <GenericEditableRelationCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldDoubleTextChip(columnDefinition)) {
|
|
return (
|
|
<GenericEditableDoubleTextChipCell columnDefinition={columnDefinition} />
|
|
);
|
|
} else if (isViewFieldDoubleText(columnDefinition)) {
|
|
return (
|
|
<GenericEditableDoubleTextCell columnDefinition={columnDefinition} />
|
|
);
|
|
} else if (isViewFieldPhone(columnDefinition)) {
|
|
return <GenericEditablePhoneCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldURL(columnDefinition)) {
|
|
return <GenericEditableURLCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldDate(columnDefinition)) {
|
|
return <GenericEditableDateCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldNumber(columnDefinition)) {
|
|
return <GenericEditableNumberCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldBoolean(columnDefinition)) {
|
|
return <GenericEditableBooleanCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldChip(columnDefinition)) {
|
|
return <GenericEditableChipCell columnDefinition={columnDefinition} />;
|
|
} else if (isViewFieldMoney(columnDefinition)) {
|
|
return <GenericEditableMoneyCell columnDefinition={columnDefinition} />;
|
|
} else {
|
|
console.warn(
|
|
`Unknown field metadata type: ${columnDefinition.metadata.type} in GenericEditableCell`,
|
|
);
|
|
return <></>;
|
|
}
|
|
}
|