@@ -169,7 +169,40 @@ const RepeaterItemContent = ({
169169 />
170170 );
171171 case 'switcher':
172- return <Switcher fieldId={key} currentField={currentField} />;
172+ const selectedOption =
173+ value[index][key] || Object.keys(currentField.options)[0];
174+
175+ return (
176+ <>
177+ <ButtonGroup className="neve-background-type-control">
178+ {Object.entries(currentField.options).map(
179+ ([optionKey, option]) => {
180+ return (
181+ <Button
182+ key={optionKey}
183+ isPrimary={
184+ optionKey === selectedOption
185+ }
186+ isSecondary={
187+ optionKey !== selectedOption
188+ }
189+ onClick={() => {
190+ changeContent(key, optionKey);
191+ }}
192+ >
193+ {option.label}
194+ </Button>
195+ );
196+ }
197+ )}
198+ </ButtonGroup>
199+ {currentField.options?.[selectedOption]?.fields.map(
200+ (componentId) => {
201+ return toComponent(componentId, value[index]);
202+ }
203+ )}
204+ </>
205+ );
173206 case 'media':
174207 return (
175208 <Placeholder
@@ -217,39 +250,6 @@ const RepeaterItemContent = ({
217250 }
218251 };
219252
220- const Switcher = ({ fieldId, currentField }) => {
221- const selectedOption =
222- value[index][fieldId] || Object.keys(currentField.options)[0];
223-
224- return (
225- <>
226- <ButtonGroup className="neve-background-type-control">
227- {Object.entries(currentField.options).map(
228- ([optionKey, option]) => {
229- return (
230- <Button
231- key={optionKey}
232- isPrimary={optionKey === selectedOption}
233- isSecondary={optionKey !== selectedOption}
234- onClick={() => {
235- changeContent(fieldId, optionKey);
236- }}
237- >
238- {option.label}
239- </Button>
240- );
241- }
242- )}
243- </ButtonGroup>
244- {currentField.options?.[selectedOption]?.fields.map(
245- (componentId) => {
246- return toComponent(componentId, value[index]);
247- }
248- )}
249- </>
250- );
251- };
252-
253253 return (
254254 <div
255255 className={classNames('sortable-subcontrols', {
0 commit comments