Skip to content

Commit 4ceb80f

Browse files
author
Miriad
committed
Merge feat/scene-type-schema into dev — scene type fields for automatedVideo schema
2 parents e271c98 + 90fd9bf commit 4ceb80f

File tree

1 file changed

+128
-0
lines changed

1 file changed

+128
-0
lines changed

sanity/schemas/documents/automatedVideo.ts

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,134 @@ export default defineType({
7474
title: 'Duration Estimate',
7575
type: 'number',
7676
}),
77+
defineField({
78+
name: 'sceneType',
79+
title: 'Scene Type',
80+
type: 'string',
81+
options: {
82+
list: [
83+
{title: 'Narration', value: 'narration'},
84+
{title: 'Code', value: 'code'},
85+
{title: 'List', value: 'list'},
86+
{title: 'Comparison', value: 'comparison'},
87+
{title: 'Mockup', value: 'mockup'},
88+
],
89+
},
90+
initialValue: 'narration',
91+
}),
92+
defineField({
93+
name: 'code',
94+
title: 'Code',
95+
type: 'object',
96+
hidden: ({parent}) => parent?.sceneType !== 'code',
97+
fields: [
98+
defineField({
99+
name: 'snippet',
100+
title: 'Code Snippet',
101+
type: 'text',
102+
}),
103+
defineField({
104+
name: 'language',
105+
title: 'Language',
106+
type: 'string',
107+
options: {
108+
list: [
109+
{title: 'TypeScript', value: 'typescript'},
110+
{title: 'JavaScript', value: 'javascript'},
111+
{title: 'JSX', value: 'jsx'},
112+
{title: 'TSX', value: 'tsx'},
113+
{title: 'CSS', value: 'css'},
114+
{title: 'HTML', value: 'html'},
115+
{title: 'JSON', value: 'json'},
116+
{title: 'Bash', value: 'bash'},
117+
],
118+
},
119+
}),
120+
defineField({
121+
name: 'highlightLines',
122+
title: 'Highlight Lines',
123+
type: 'array',
124+
of: [{type: 'number'}],
125+
}),
126+
],
127+
}),
128+
defineField({
129+
name: 'list',
130+
title: 'List',
131+
type: 'object',
132+
hidden: ({parent}) => parent?.sceneType !== 'list',
133+
fields: [
134+
defineField({
135+
name: 'items',
136+
title: 'Items',
137+
type: 'array',
138+
of: [{type: 'string'}],
139+
validation: (Rule) => Rule.min(1),
140+
}),
141+
defineField({
142+
name: 'icon',
143+
title: 'Icon',
144+
type: 'string',
145+
description: 'Optional emoji icon, e.g. 🚀',
146+
}),
147+
],
148+
}),
149+
defineField({
150+
name: 'comparison',
151+
title: 'Comparison',
152+
type: 'object',
153+
hidden: ({parent}) => parent?.sceneType !== 'comparison',
154+
fields: [
155+
defineField({
156+
name: 'leftLabel',
157+
title: 'Left Label',
158+
type: 'string',
159+
}),
160+
defineField({
161+
name: 'rightLabel',
162+
title: 'Right Label',
163+
type: 'string',
164+
}),
165+
defineField({
166+
name: 'rows',
167+
title: 'Rows',
168+
type: 'array',
169+
of: [{
170+
type: 'object',
171+
fields: [
172+
defineField({name: 'left', title: 'Left', type: 'string'}),
173+
defineField({name: 'right', title: 'Right', type: 'string'}),
174+
],
175+
}],
176+
}),
177+
],
178+
}),
179+
defineField({
180+
name: 'mockup',
181+
title: 'Mockup',
182+
type: 'object',
183+
hidden: ({parent}) => parent?.sceneType !== 'mockup',
184+
fields: [
185+
defineField({
186+
name: 'deviceType',
187+
title: 'Device Type',
188+
type: 'string',
189+
options: {
190+
list: [
191+
{title: 'Browser', value: 'browser'},
192+
{title: 'Phone', value: 'phone'},
193+
{title: 'Terminal', value: 'terminal'},
194+
],
195+
},
196+
}),
197+
defineField({
198+
name: 'screenContent',
199+
title: 'Screen Content',
200+
type: 'text',
201+
description: 'Description of what appears on screen',
202+
}),
203+
],
204+
}),
77205
],
78206
},
79207
],

0 commit comments

Comments
 (0)