feat: refactor schema builder and resolver builder (#2215)
* feat: wip refactor schema builder * feat: wip store types and first queries generation * feat: refactor schema-builder and resolver-builder * fix: clean & small type fix * fix: avoid breaking change * fix: remove util from pg-graphql classes * fix: required default fields * Refactor frontend accordingly --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -33,7 +33,7 @@ const DateFieldDisplayWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'date',
|
||||
label: 'Date',
|
||||
type: 'date',
|
||||
type: 'DATE',
|
||||
metadata: {
|
||||
fieldName: 'Date',
|
||||
},
|
||||
|
||||
@ -40,7 +40,7 @@ const DoubleTextFieldDisplayWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'double-text',
|
||||
label: 'Double-Text',
|
||||
type: 'double-text',
|
||||
type: 'DOUBLE_TEXT',
|
||||
metadata: {
|
||||
firstValueFieldName: 'First-text',
|
||||
firstValuePlaceholder: 'First-text',
|
||||
|
||||
@ -32,7 +32,7 @@ const EmailFieldDisplayWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'email',
|
||||
label: 'Email',
|
||||
type: 'email',
|
||||
type: 'EMAIL',
|
||||
metadata: {
|
||||
fieldName: 'Email',
|
||||
placeHolder: 'Email',
|
||||
|
||||
@ -34,7 +34,7 @@ const MoneyFieldDisplayWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'money',
|
||||
label: 'Money',
|
||||
type: 'moneyAmount',
|
||||
type: 'MONEY_AMOUNT',
|
||||
metadata: {
|
||||
fieldName: 'Amount',
|
||||
placeHolder: 'Amount',
|
||||
|
||||
@ -34,7 +34,7 @@ const NumberFieldDisplayWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'number',
|
||||
label: 'Number',
|
||||
type: 'number',
|
||||
type: 'NUMBER',
|
||||
metadata: {
|
||||
fieldName: 'Number',
|
||||
placeHolder: 'Number',
|
||||
|
||||
@ -32,7 +32,7 @@ const PhoneFieldDisplayWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'phone',
|
||||
label: 'Phone',
|
||||
type: 'phone',
|
||||
type: 'PHONE',
|
||||
metadata: {
|
||||
fieldName: 'Phone',
|
||||
placeHolder: 'Phone',
|
||||
|
||||
@ -34,7 +34,7 @@ const TextFieldDisplayWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'text',
|
||||
label: 'Text',
|
||||
type: 'text',
|
||||
type: 'TEXT',
|
||||
metadata: {
|
||||
fieldName: 'Text',
|
||||
placeHolder: 'Text',
|
||||
|
||||
@ -32,7 +32,7 @@ const URLFieldDisplayWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'URL',
|
||||
label: 'URL',
|
||||
type: 'url',
|
||||
type: 'URL',
|
||||
metadata: {
|
||||
fieldName: 'URL',
|
||||
placeHolder: 'URL',
|
||||
|
||||
@ -9,7 +9,7 @@ import { isFieldBoolean } from '../../types/guards/isFieldBoolean';
|
||||
export const useBooleanField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('boolean', isFieldBoolean, fieldDefinition);
|
||||
assertFieldMetadata('BOOLEAN', isFieldBoolean, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ import { isFieldChip } from '../../types/guards/isFieldChip';
|
||||
export const useChipField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('chip', isFieldChip, fieldDefinition);
|
||||
assertFieldMetadata('CHIP', isFieldChip, fieldDefinition);
|
||||
|
||||
const contentFieldName = fieldDefinition.metadata.contentFieldName;
|
||||
const avatarUrlFieldName = fieldDefinition.metadata.urlFieldName;
|
||||
|
||||
@ -9,7 +9,7 @@ import { isFieldDate } from '../../types/guards/isFieldDate';
|
||||
export const useDateField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('date', isFieldDate, fieldDefinition);
|
||||
assertFieldMetadata('DATE', isFieldDate, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ export const useDoubleTextChipField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata(
|
||||
'double-text-chip',
|
||||
'DOUBLE_TEXT_CHIP',
|
||||
isFieldDoubleTextChip,
|
||||
fieldDefinition,
|
||||
);
|
||||
|
||||
@ -10,7 +10,7 @@ import { isFieldDoubleText } from '../../types/guards/isFieldDoubleText';
|
||||
export const useDoubleTextField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('double-text', isFieldDoubleText, fieldDefinition);
|
||||
assertFieldMetadata('DOUBLE_TEXT', isFieldDoubleText, fieldDefinition);
|
||||
|
||||
const [firstValue, setFirstValue] = useRecoilState<string>(
|
||||
entityFieldsFamilySelector({
|
||||
|
||||
@ -10,7 +10,7 @@ import { isFieldEmail } from '../../types/guards/isFieldEmail';
|
||||
export const useEmailField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('email', isFieldEmail, fieldDefinition);
|
||||
assertFieldMetadata('EMAIL', isFieldEmail, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import { isFieldMoneyAmountV2Value } from '../../types/guards/isFieldMoneyAmount
|
||||
export const useMoneyAmountV2Field = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('moneyAmountV2', isFieldMoneyAmountV2, fieldDefinition);
|
||||
assertFieldMetadata('MONEY_AMOUNT_V2', isFieldMoneyAmountV2, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ import { isFieldMoney } from '../../types/guards/isFieldMoney';
|
||||
export const useMoneyField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('moneyAmount', isFieldMoney, fieldDefinition);
|
||||
assertFieldMetadata('MONEY_AMOUNT', isFieldMoney, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ import { isFieldNumber } from '../../types/guards/isFieldNumber';
|
||||
export const useNumberField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('number', isFieldNumber, fieldDefinition);
|
||||
assertFieldMetadata('NUMBER', isFieldNumber, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ import { isFieldPhone } from '../../types/guards/isFieldPhone';
|
||||
export const usePhoneField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('phone', isFieldPhone, fieldDefinition);
|
||||
assertFieldMetadata('PHONE', isFieldPhone, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ import { isFieldProbability } from '../../types/guards/isFieldProbability';
|
||||
export const useProbabilityField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('probability', isFieldProbability, fieldDefinition);
|
||||
assertFieldMetadata('PROBABILITY', isFieldProbability, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ import { isFieldRelation } from '../../types/guards/isFieldRelation';
|
||||
export const useRelationField = () => {
|
||||
const { entityId, fieldDefinition } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('relation', isFieldRelation, fieldDefinition);
|
||||
assertFieldMetadata('RELATION', isFieldRelation, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ import { isFieldText } from '../../types/guards/isFieldText';
|
||||
export const useTextField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('text', isFieldText, fieldDefinition);
|
||||
assertFieldMetadata('TEXT', isFieldText, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import { isFieldURL } from '../../types/guards/isFieldURL';
|
||||
export const useURLField = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('url', isFieldURL, fieldDefinition);
|
||||
assertFieldMetadata('URL', isFieldURL, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import { isFieldURLV2Value } from '../../types/guards/isFieldURLV2Value';
|
||||
export const useURLV2Field = () => {
|
||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||
|
||||
assertFieldMetadata('urlV2', isFieldURLV2, fieldDefinition);
|
||||
assertFieldMetadata('URL_V2', isFieldURLV2, fieldDefinition);
|
||||
|
||||
const fieldName = fieldDefinition.metadata.fieldName;
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ const BooleanFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'boolean',
|
||||
label: 'Boolean',
|
||||
type: 'boolean',
|
||||
type: 'BOOLEAN',
|
||||
metadata: {
|
||||
fieldName: 'Boolean',
|
||||
},
|
||||
|
||||
@ -46,7 +46,7 @@ const ChipFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'chip',
|
||||
label: 'Chip',
|
||||
type: 'chip',
|
||||
type: 'CHIP',
|
||||
metadata: {
|
||||
contentFieldName: 'name',
|
||||
urlFieldName: 'xURL',
|
||||
|
||||
@ -46,7 +46,7 @@ const DateFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'date',
|
||||
label: 'Date',
|
||||
type: 'date',
|
||||
type: 'DATE',
|
||||
metadata: {
|
||||
fieldName: 'Date',
|
||||
},
|
||||
|
||||
@ -59,7 +59,7 @@ const DoubleTextChipFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'double-text-chip',
|
||||
label: 'Double-Text-Chip',
|
||||
type: 'double-text-chip',
|
||||
type: 'DOUBLE_TEXT_CHIP',
|
||||
metadata: {
|
||||
firstValueFieldName: 'First-text',
|
||||
firstValuePlaceholder: 'First-text',
|
||||
|
||||
@ -57,7 +57,7 @@ const DoubleTextFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'double-text',
|
||||
label: 'Double-Text',
|
||||
type: 'double-text',
|
||||
type: 'DOUBLE_TEXT',
|
||||
metadata: {
|
||||
firstValueFieldName: 'First-text',
|
||||
firstValuePlaceholder: 'First-text',
|
||||
|
||||
@ -45,7 +45,7 @@ const EmailFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'email',
|
||||
label: 'Email',
|
||||
type: 'email',
|
||||
type: 'EMAIL',
|
||||
metadata: {
|
||||
fieldName: 'email',
|
||||
placeHolder: 'username@email.com',
|
||||
|
||||
@ -45,7 +45,7 @@ const MoneyFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'moneyAmount',
|
||||
label: 'MoneyAmout',
|
||||
type: 'moneyAmount',
|
||||
type: 'MONEY_AMOUNT',
|
||||
metadata: {
|
||||
fieldName: 'moneyAmount',
|
||||
placeHolder: 'Enter Amount',
|
||||
|
||||
@ -45,7 +45,7 @@ const NumberFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'number',
|
||||
label: 'Number',
|
||||
type: 'number',
|
||||
type: 'NUMBER',
|
||||
metadata: {
|
||||
fieldName: 'number',
|
||||
placeHolder: 'Enter number',
|
||||
|
||||
@ -45,7 +45,7 @@ const PhoneFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'phone',
|
||||
label: 'Phone',
|
||||
type: 'phone',
|
||||
type: 'PHONE',
|
||||
metadata: {
|
||||
fieldName: 'Phone',
|
||||
placeHolder: 'Enter phone number',
|
||||
|
||||
@ -43,7 +43,7 @@ const ProbabilityFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'probability',
|
||||
label: 'Probability',
|
||||
type: 'probability',
|
||||
type: 'PROBABILITY',
|
||||
metadata: {
|
||||
fieldName: 'Probability',
|
||||
},
|
||||
|
||||
@ -48,7 +48,7 @@ const RelationFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'relation',
|
||||
label: 'Relation',
|
||||
type: 'relation',
|
||||
type: 'RELATION',
|
||||
metadata: {
|
||||
fieldName: 'Relation',
|
||||
relationType: Entity.Person,
|
||||
|
||||
@ -45,7 +45,7 @@ const TextFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'text',
|
||||
label: 'Text',
|
||||
type: 'text',
|
||||
type: 'TEXT',
|
||||
metadata: {
|
||||
fieldName: 'Text',
|
||||
placeHolder: 'Enter text',
|
||||
|
||||
@ -45,7 +45,7 @@ const URLFieldInputWithContext = ({
|
||||
fieldDefinition={{
|
||||
fieldId: 'url',
|
||||
label: 'URL',
|
||||
type: 'url',
|
||||
type: 'URL',
|
||||
metadata: {
|
||||
fieldName: 'URL',
|
||||
placeHolder: 'Enter URL',
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
export type FieldType =
|
||||
| 'text'
|
||||
| 'relation'
|
||||
| 'chip'
|
||||
| 'double-text-chip'
|
||||
| 'double-text'
|
||||
| 'number'
|
||||
| 'email'
|
||||
| 'boolean'
|
||||
| 'date'
|
||||
| 'phone'
|
||||
| 'url'
|
||||
| 'urlV2'
|
||||
| 'probability'
|
||||
| 'moneyAmountV2'
|
||||
| 'moneyAmount'
|
||||
| 'money';
|
||||
| 'TEXT'
|
||||
| 'RELATION'
|
||||
| 'CHIP'
|
||||
| 'DOUBLE_TEXT_CHIP'
|
||||
| 'DOUBLE_TEXT'
|
||||
| 'NUMBER'
|
||||
| 'EMAIL'
|
||||
| 'BOOLEAN'
|
||||
| 'DATE'
|
||||
| 'PHONE'
|
||||
| 'URL'
|
||||
| 'URL_V2'
|
||||
| 'PROBABILITY'
|
||||
| 'MONEY_AMOUNT_V2'
|
||||
| 'MONEY_AMOUNT'
|
||||
| 'MONEY';
|
||||
|
||||
@ -21,35 +21,35 @@ import { FieldType } from '../FieldType';
|
||||
|
||||
type AssertFieldMetadataFunction = <
|
||||
E extends FieldType,
|
||||
T extends E extends 'text'
|
||||
T extends E extends 'TEXT'
|
||||
? FieldTextMetadata
|
||||
: E extends 'relation'
|
||||
: E extends 'RELATION'
|
||||
? FieldRelationMetadata
|
||||
: E extends 'chip'
|
||||
: E extends 'CHIP'
|
||||
? FieldChipMetadata
|
||||
: E extends 'double-text-chip'
|
||||
: E extends 'DOUBLE_TEXT_CHIP'
|
||||
? FieldDoubleTextChipMetadata
|
||||
: E extends 'double-text'
|
||||
: E extends 'DOUBLE_TEXT'
|
||||
? FieldDoubleTextMetadata
|
||||
: E extends 'number'
|
||||
: E extends 'NUMBER'
|
||||
? FieldNumberMetadata
|
||||
: E extends 'email'
|
||||
: E extends 'EMAIL'
|
||||
? FieldEmailMetadata
|
||||
: E extends 'boolean'
|
||||
: E extends 'BOOLEAN'
|
||||
? FieldBooleanMetadata
|
||||
: E extends 'date'
|
||||
: E extends 'DATE'
|
||||
? FieldDateMetadata
|
||||
: E extends 'phone'
|
||||
: E extends 'PHONE'
|
||||
? FieldPhoneMetadata
|
||||
: E extends 'url'
|
||||
: E extends 'URL'
|
||||
? FieldURLMetadata
|
||||
: E extends 'urlV2'
|
||||
: E extends 'URL_V2'
|
||||
? FieldURLV2Metadata
|
||||
: E extends 'probability'
|
||||
: E extends 'PROBABILITY'
|
||||
? FieldProbabilityMetadata
|
||||
: E extends 'moneyAmount'
|
||||
: E extends 'MONEY_AMOUNT'
|
||||
? FieldMoneyMetadata
|
||||
: E extends 'moneyAmountV2'
|
||||
: E extends 'MONEY_AMOUNT_V2'
|
||||
? FieldMoneyAmountV2Metadata
|
||||
: never,
|
||||
>(
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldBooleanMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldBoolean = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldBooleanMetadata> => field.type === 'boolean';
|
||||
): field is FieldDefinition<FieldBooleanMetadata> => field.type === 'BOOLEAN';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldChipMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldChip = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldChipMetadata> => field.type === 'chip';
|
||||
): field is FieldDefinition<FieldChipMetadata> => field.type === 'CHIP';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldDateMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldDate = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldDateMetadata> => field.type === 'date';
|
||||
): field is FieldDefinition<FieldDateMetadata> => field.type === 'DATE';
|
||||
|
||||
@ -4,4 +4,4 @@ import { FieldDoubleTextMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldDoubleText = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldDoubleTextMetadata> =>
|
||||
field.type === 'double-text';
|
||||
field.type === 'DOUBLE_TEXT';
|
||||
|
||||
@ -4,4 +4,4 @@ import { FieldDoubleTextChipMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
export const isFieldDoubleTextChip = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldDoubleTextChipMetadata> =>
|
||||
field.type === 'double-text-chip';
|
||||
field.type === 'DOUBLE_TEXT_CHIP';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldEmailMetadata, FieldMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldEmail = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldEmailMetadata> => field.type === 'email';
|
||||
): field is FieldDefinition<FieldEmailMetadata> => field.type === 'EMAIL';
|
||||
|
||||
@ -3,4 +3,5 @@ import { FieldMetadata, FieldMoneyMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldMoney = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldMoneyMetadata> => field.type === 'moneyAmount';
|
||||
): field is FieldDefinition<FieldMoneyMetadata> =>
|
||||
field.type === 'MONEY_AMOUNT';
|
||||
|
||||
@ -4,4 +4,4 @@ import { FieldMetadata, FieldMoneyAmountV2Metadata } from '../FieldMetadata';
|
||||
export const isFieldMoneyAmountV2 = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldMoneyAmountV2Metadata> =>
|
||||
field.type === 'moneyAmountV2';
|
||||
field.type === 'MONEY_AMOUNT_V2';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldMetadata, FieldNumberMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldNumber = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldNumberMetadata> => field.type === 'number';
|
||||
): field is FieldDefinition<FieldNumberMetadata> => field.type === 'NUMBER';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldMetadata, FieldPhoneMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldPhone = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldPhoneMetadata> => field.type === 'phone';
|
||||
): field is FieldDefinition<FieldPhoneMetadata> => field.type === 'PHONE';
|
||||
|
||||
@ -4,4 +4,4 @@ import { FieldMetadata, FieldProbabilityMetadata } from '../FieldMetadata';
|
||||
export const isFieldProbability = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldProbabilityMetadata> =>
|
||||
field.type === 'probability';
|
||||
field.type === 'PROBABILITY';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldMetadata, FieldRelationMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldRelation = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldRelationMetadata> => field.type === 'relation';
|
||||
): field is FieldDefinition<FieldRelationMetadata> => field.type === 'RELATION';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldMetadata, FieldTextMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldText = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldTextMetadata> => field.type === 'text';
|
||||
): field is FieldDefinition<FieldTextMetadata> => field.type === 'TEXT';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldMetadata, FieldURLMetadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldURL = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldURLMetadata> => field.type === 'url';
|
||||
): field is FieldDefinition<FieldURLMetadata> => field.type === 'URL';
|
||||
|
||||
@ -3,4 +3,4 @@ import { FieldMetadata, FieldURLV2Metadata } from '../FieldMetadata';
|
||||
|
||||
export const isFieldURLV2 = (
|
||||
field: FieldDefinition<FieldMetadata>,
|
||||
): field is FieldDefinition<FieldURLV2Metadata> => field.type === 'urlV2';
|
||||
): field is FieldDefinition<FieldURLV2Metadata> => field.type === 'URL_V2';
|
||||
|
||||
@ -30,19 +30,19 @@ export const MultipleFiltersDropdownContent = () => {
|
||||
<>
|
||||
<ObjectFilterDropdownOperandButton />
|
||||
<DropdownMenuSeparator />
|
||||
{filterDefinitionUsedInDropdown.type === 'text' && (
|
||||
{filterDefinitionUsedInDropdown.type === 'TEXT' && (
|
||||
<ObjectFilterDropdownTextSearchInput />
|
||||
)}
|
||||
{filterDefinitionUsedInDropdown.type === 'number' && (
|
||||
{filterDefinitionUsedInDropdown.type === 'NUMBER' && (
|
||||
<ObjectFilterDropdownNumberSearchInput />
|
||||
)}
|
||||
{filterDefinitionUsedInDropdown.type === 'date' && (
|
||||
{filterDefinitionUsedInDropdown.type === 'DATE' && (
|
||||
<ObjectFilterDropdownDateSearchInput />
|
||||
)}
|
||||
{filterDefinitionUsedInDropdown.type === 'entity' && (
|
||||
{filterDefinitionUsedInDropdown.type === 'ENTITY' && (
|
||||
<ObjectFilterDropdownEntitySearchInput />
|
||||
)}
|
||||
{filterDefinitionUsedInDropdown.type === 'entity' && (
|
||||
{filterDefinitionUsedInDropdown.type === 'ENTITY' && (
|
||||
<ObjectFilterDropdownEntitySelect />
|
||||
)}
|
||||
</>
|
||||
|
||||
@ -16,7 +16,7 @@ export const ObjectFilterDropdownButton = ({
|
||||
|
||||
const hasOnlyOneEntityFilter =
|
||||
availableFilterDefinitions.length === 1 &&
|
||||
availableFilterDefinitions[0].type === 'entity';
|
||||
availableFilterDefinitions[0].type === 'ENTITY';
|
||||
|
||||
if (!availableFilterDefinitions.length) {
|
||||
return <></>;
|
||||
|
||||
@ -6,7 +6,7 @@ import { useFilter } from '../hooks/useFilter';
|
||||
export const ObjectFilterDropdownEntitySelect = () => {
|
||||
const { filterDefinitionUsedInDropdown } = useFilter();
|
||||
|
||||
if (filterDefinitionUsedInDropdown?.type !== 'entity') {
|
||||
if (filterDefinitionUsedInDropdown?.type !== 'ENTITY') {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@ -25,7 +25,7 @@ export const ObjectFilterDropdownFilterSelect = () => {
|
||||
onClick={() => {
|
||||
setFilterDefinitionUsedInDropdown(availableFilterDefinition);
|
||||
|
||||
if (availableFilterDefinition.type === 'entity') {
|
||||
if (availableFilterDefinition.type === 'ENTITY') {
|
||||
setHotkeyScope(RelationPickerHotkeyScope.RelationPicker);
|
||||
}
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
export type FilterType = 'text' | 'date' | 'entity' | 'number';
|
||||
export type FilterType = 'TEXT' | 'DATE' | 'ENTITY' | 'NUMBER';
|
||||
|
||||
@ -6,12 +6,12 @@ export const getOperandsForFilterType = (
|
||||
filterType: FilterType | null | undefined,
|
||||
): ViewFilterOperand[] => {
|
||||
switch (filterType) {
|
||||
case 'text':
|
||||
case 'TEXT':
|
||||
return [ViewFilterOperand.Contains, ViewFilterOperand.DoesNotContain];
|
||||
case 'number':
|
||||
case 'date':
|
||||
case 'NUMBER':
|
||||
case 'DATE':
|
||||
return [ViewFilterOperand.GreaterThan, ViewFilterOperand.LessThan];
|
||||
case 'entity':
|
||||
case 'ENTITY':
|
||||
return [ViewFilterOperand.Is, ViewFilterOperand.IsNot];
|
||||
default:
|
||||
return [];
|
||||
|
||||
@ -24,7 +24,7 @@ export const turnFilterIntoWhereClause = (
|
||||
};
|
||||
default:
|
||||
switch (filter.definition.type) {
|
||||
case 'text':
|
||||
case 'TEXT':
|
||||
switch (filter.operand) {
|
||||
case ViewFilterOperand.Contains:
|
||||
return {
|
||||
@ -47,7 +47,7 @@ export const turnFilterIntoWhereClause = (
|
||||
`Unknown operand ${filter.operand} for ${filter.definition.type} filter`,
|
||||
);
|
||||
}
|
||||
case 'number':
|
||||
case 'NUMBER':
|
||||
switch (filter.operand) {
|
||||
case ViewFilterOperand.GreaterThan:
|
||||
return {
|
||||
@ -66,7 +66,7 @@ export const turnFilterIntoWhereClause = (
|
||||
`Unknown operand ${filter.operand} for ${filter.definition.type} filter`,
|
||||
);
|
||||
}
|
||||
case 'date':
|
||||
case 'DATE':
|
||||
switch (filter.operand) {
|
||||
case ViewFilterOperand.GreaterThan:
|
||||
return {
|
||||
@ -85,7 +85,7 @@ export const turnFilterIntoWhereClause = (
|
||||
`Unknown operand ${filter.operand} for ${filter.definition.type} filter`,
|
||||
);
|
||||
}
|
||||
case 'entity':
|
||||
case 'ENTITY':
|
||||
switch (filter.operand) {
|
||||
case ViewFilterOperand.Is:
|
||||
return {
|
||||
|
||||
@ -26,7 +26,7 @@ export const turnFiltersIntoWhereClauseV2 = (
|
||||
}
|
||||
|
||||
switch (filter.definition.type) {
|
||||
case 'text':
|
||||
case 'TEXT':
|
||||
switch (filter.operand) {
|
||||
case ViewFilterOperand.Contains:
|
||||
whereClause[correspondingField.name] = {
|
||||
|
||||
Reference in New Issue
Block a user