@stackbit/types
Version:
Types for Stackbit config and Content Source Interface
50 lines (42 loc) • 1.11 kB
text/typescript
import {
FieldBoolean,
FieldColor,
FieldDate,
FieldDatetime,
FieldEnum,
FieldNumber,
FieldSlug,
FieldString,
FieldText,
FieldUrl,
FieldPath
} from '.';
type PreviewControlInputStringLikeField =
| FieldString
| FieldUrl
| FieldSlug
| FieldText
| FieldDate
| FieldDatetime
| FieldColor
| FieldEnum;
export type PreviewControlInputField = PreviewControlInputStringLikeField | FieldNumber | FieldBoolean;
type PreviewControlValue<T> = {
value?: T;
onChange?: (value?: T) => void;
};
type PreviewControlBase =
| (PreviewControlInputStringLikeField & PreviewControlValue<string>)
| (FieldNumber & PreviewControlValue<number>)
| (FieldBoolean & PreviewControlValue<boolean>);
export type PreviewControlGlobal = PreviewControlBase & {
context: 'global';
};
export type PreviewControlField = PreviewControlBase & {
context: 'field';
srcType: string;
srcProjectId: string;
documentId: string;
fieldPath?: FieldPath;
};
export type PreviewControl = PreviewControlGlobal | PreviewControlField;