[BUG] Refactor actor composite type (#10232)
fixes #10200 The FieldActor Zod schema was updated to correctly handle null context. --------- Co-authored-by: prastoin <paul@twenty.com>
This commit is contained in:
committed by
GitHub
parent
927b8c717e
commit
94c0d0f8d2
@ -1,13 +1,12 @@
|
||||
import { ConnectedAccountProvider } from 'twenty-shared';
|
||||
import { ThemeColor } from 'twenty-ui';
|
||||
|
||||
import { RATING_VALUES } from '@/object-record/record-field/meta-types/constants/RatingValues';
|
||||
import { ZodHelperLiteral } from '@/object-record/record-field/types/ZodHelperLiteral';
|
||||
import { RecordForSelect } from '@/object-record/relation-picker/types/RecordForSelect';
|
||||
|
||||
import { ConnectedAccountProvider } from 'twenty-shared';
|
||||
import * as z from 'zod';
|
||||
import { RelationDefinitionType } from '~/generated-metadata/graphql';
|
||||
import { CurrencyCode } from './CurrencyCode';
|
||||
|
||||
export type FieldUuidMetadata = {
|
||||
objectMetadataNameSingular?: string;
|
||||
fieldName: string;
|
||||
@ -279,23 +278,25 @@ export type FieldRichTextV2Value = {
|
||||
|
||||
export type FieldRichTextValue = null | string;
|
||||
|
||||
type FieldActorSource =
|
||||
| 'API'
|
||||
| 'IMPORT'
|
||||
| 'EMAIL'
|
||||
| 'CALENDAR'
|
||||
| 'MANUAL'
|
||||
| 'SYSTEM'
|
||||
| 'WORKFLOW';
|
||||
const FieldActorSourceSchema = z.union([
|
||||
z.literal('API'),
|
||||
z.literal('IMPORT'),
|
||||
z.literal('EMAIL'),
|
||||
z.literal('CALENDAR'),
|
||||
z.literal('MANUAL'),
|
||||
z.literal('SYSTEM'),
|
||||
z.literal('WORKFLOW'),
|
||||
]);
|
||||
|
||||
export type FieldActorValue = {
|
||||
source: FieldActorSource;
|
||||
workspaceMemberId: string | null;
|
||||
name: string;
|
||||
context: {
|
||||
provider?: ConnectedAccountProvider;
|
||||
} | null;
|
||||
};
|
||||
export const FieldActorValueSchema = z.object({
|
||||
source: FieldActorSourceSchema,
|
||||
workspaceMemberId: z.string().nullable(),
|
||||
name: z.string(),
|
||||
context: z.object({
|
||||
provider: z.nativeEnum(ConnectedAccountProvider).optional(),
|
||||
}),
|
||||
});
|
||||
export type FieldActorValue = z.infer<typeof FieldActorValueSchema>;
|
||||
|
||||
export type FieldActorForInputValue = Pick<
|
||||
FieldActorValue,
|
||||
|
||||
@ -1,20 +1,9 @@
|
||||
import { ConnectedAccountProvider } from 'twenty-shared';
|
||||
|
||||
import { z } from 'zod';
|
||||
|
||||
import { FieldActorValue } from '../FieldMetadata';
|
||||
|
||||
const actorSchema = z.object({
|
||||
source: z.string(),
|
||||
workspaceMemberId: z.optional(z.string().nullable()),
|
||||
name: z.string(),
|
||||
context: z.optional(
|
||||
z.object({
|
||||
provider: z.optional(z.nativeEnum(ConnectedAccountProvider)),
|
||||
}),
|
||||
),
|
||||
});
|
||||
import {
|
||||
FieldActorValue,
|
||||
FieldActorValueSchema,
|
||||
} from '@/object-record/record-field/types/FieldMetadata';
|
||||
|
||||
export const isFieldActorValue = (
|
||||
fieldValue: unknown,
|
||||
): fieldValue is FieldActorValue => actorSchema.safeParse(fieldValue).success;
|
||||
): fieldValue is FieldActorValue =>
|
||||
FieldActorValueSchema.safeParse(fieldValue).success;
|
||||
|
||||
Reference in New Issue
Block a user