diff --git a/assets/js/src/form_editor/blocks/segment_select/edit.jsx b/assets/js/src/form_editor/blocks/segment_select/edit.jsx
index 508256355d..b78fc31e17 100644
--- a/assets/js/src/form_editor/blocks/segment_select/edit.jsx
+++ b/assets/js/src/form_editor/blocks/segment_select/edit.jsx
@@ -7,7 +7,6 @@ import PropTypes from 'prop-types';
import MailPoet from 'mailpoet';
import Settings from './settings.jsx';
-
const SegmentSelectEdit = ({ attributes, setAttributes }) => {
const renderValues = () => {
if (attributes.values.length === 0) {
diff --git a/assets/js/src/form_editor/blocks/segment_select/settings.jsx b/assets/js/src/form_editor/blocks/segment_select/settings.jsx
index 2043602286..1f897f823d 100644
--- a/assets/js/src/form_editor/blocks/segment_select/settings.jsx
+++ b/assets/js/src/form_editor/blocks/segment_select/settings.jsx
@@ -1,10 +1,8 @@
import React from 'react';
import MailPoet from 'mailpoet';
import PropTypes from 'prop-types';
-import { partial } from 'lodash';
import { InspectorControls } from '@wordpress/block-editor';
import {
- CheckboxControl,
Panel,
PanelBody,
PanelRow,
@@ -13,57 +11,10 @@ import {
} from '@wordpress/components';
import { useSelect } from '@wordpress/data';
+import Preview from './settings_preview.jsx';
+
const findSegment = (segments, segmentId) => segments.find((s) => s.id === segmentId);
-const Preview = ({ segments, updateSegment, removeSegment }) => {
- if (segments.length === 0) {
- return null;
- }
-
- const onCheck = (segmentId, isChecked) => {
- const segment = findSegment(segments, segmentId);
- segment.isChecked = isChecked;
- updateSegment(segment);
- };
-
- return segments.map((segment) => (
-
-
- {
- if ((['keydown', 'keypress'].includes(event.type) && ['Enter', ' '].includes(event.key))
- ) {
- event.preventDefault();
- partial(removeSegment, segment.id);
- }
- }}
- >
- ✗
-
-
- ));
-};
-
-Preview.propTypes = {
- segments: PropTypes.arrayOf(PropTypes.shape({
- name: PropTypes.string.isRequired,
- isChecked: PropTypes.boolean,
- id: PropTypes.string.isRequired,
- }).isRequired).isRequired,
- updateSegment: PropTypes.func.isRequired,
- removeSegment: PropTypes.func.isRequired,
-};
-
const SegmentSelectSettings = ({
label,
onLabelChanged,
diff --git a/assets/js/src/form_editor/blocks/segment_select/settings_preview.jsx b/assets/js/src/form_editor/blocks/segment_select/settings_preview.jsx
new file mode 100644
index 0000000000..b3ad50b08d
--- /dev/null
+++ b/assets/js/src/form_editor/blocks/segment_select/settings_preview.jsx
@@ -0,0 +1,55 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { CheckboxControl } from '@wordpress/components';
+import { partial } from 'lodash';
+
+const Preview = ({ segments, updateSegment, removeSegment }) => {
+ if (segments.length === 0) {
+ return null;
+ }
+
+ const onCheck = (segmentId, isChecked) => {
+ const segment = segments.find((s) => s.id === segmentId);
+ segment.isChecked = isChecked;
+ updateSegment(segment);
+ };
+
+ return segments.map((segment) => (
+
+
+ {
+ if ((['keydown', 'keypress'].includes(event.type) && ['Enter', ' '].includes(event.key))
+ ) {
+ event.preventDefault();
+ partial(removeSegment, segment.id);
+ }
+ }}
+ >
+ ✗
+
+
+ ));
+};
+
+Preview.propTypes = {
+ segments: PropTypes.arrayOf(PropTypes.shape({
+ name: PropTypes.string.isRequired,
+ isChecked: PropTypes.boolean,
+ id: PropTypes.string.isRequired,
+ }).isRequired).isRequired,
+ updateSegment: PropTypes.func.isRequired,
+ removeSegment: PropTypes.func.isRequired,
+};
+
+export default Preview;