diff --git a/frontend/e2e/helpers.cafe.ts b/frontend/e2e/helpers.cafe.ts index 9e15b9c4c2e4..e10c5f0a7948 100644 --- a/frontend/e2e/helpers.cafe.ts +++ b/frontend/e2e/helpers.cafe.ts @@ -457,6 +457,7 @@ export const createSegment = async ( await click(byId('create-segment')) await waitForElementVisible(byId(`segment-${index}-name`)) await assertTextContent(byId(`segment-${index}-name`), id) + await closeModal() } export const waitAndRefresh = async (waitFor = 3000) => { diff --git a/frontend/web/components/SegmentOverrides.js b/frontend/web/components/SegmentOverrides.js index 886e0eb28fdf..9fa9ade54502 100644 --- a/frontend/web/components/SegmentOverrides.js +++ b/frontend/web/components/SegmentOverrides.js @@ -649,7 +649,6 @@ class TheComponent extends Component { { this.setState({ diff --git a/frontend/web/components/modals/CreateSegment.tsx b/frontend/web/components/modals/CreateSegment.tsx index eb66c1fc3a7b..8516bacf5b14 100644 --- a/frontend/web/components/modals/CreateSegment.tsx +++ b/frontend/web/components/modals/CreateSegment.tsx @@ -52,7 +52,7 @@ import AddMetadataToEntity, { CustomMetadataField, } from 'components/metadata/AddMetadataToEntity' import { useGetSupportedContentTypeQuery } from 'common/services/useSupportedContentType' -import { setInterceptClose } from './base/ModalDefault' +import { setInterceptClose, setModalTitle } from './base/ModalDefault' type PageType = { number: number @@ -90,7 +90,6 @@ const CreateSegment: FC = ({ identities, identitiesLoading, identity, - isEdit, onCancel, onComplete, page, @@ -125,7 +124,8 @@ const CreateSegment: FC = ({ }, ], } - const segment = _segment || defaultSegment + const [segment, setSegment] = useState(_segment || defaultSegment) + const isEdit = !!segment.id const [ createSegment, { @@ -273,6 +273,7 @@ const CreateSegment: FC = ({ }, []) useEffect(() => { if (createSuccess && createSegmentData) { + setSegment(createSegmentData) onComplete?.(createSegmentData) } //eslint-disable-next-line @@ -746,7 +747,8 @@ type LoadingCreateSegmentType = { environmentId: string isEdit?: boolean readOnly?: boolean - onComplete?: () => void + onSegmentRetrieved?: (segment: Segment) => void + onComplete?: (segment: Segment) => void projectId: string segment?: number } @@ -778,6 +780,11 @@ const LoadingCreateSegment: FC = (props) => { }, ) + useEffect(() => { + if (segmentData) { + props.onSegmentRetrieved?.(segmentData) + } + }, [segmentData]) const isEdge = Utils.getIsEdge() const { data: identities, isLoading: identitiesLoading } = diff --git a/frontend/web/components/pages/SegmentsPage.tsx b/frontend/web/components/pages/SegmentsPage.tsx index 9f13b46abe7b..3adf73344138 100644 --- a/frontend/web/components/pages/SegmentsPage.tsx +++ b/frontend/web/components/pages/SegmentsPage.tsx @@ -23,6 +23,7 @@ import Icon from 'components/Icon' import PageTitle from 'components/PageTitle' import Switch from 'components/Switch' import Panel from 'components/base/grid/Panel' +import { setModalTitle } from 'components/modals/base/ModalDefault' const CodeHelp = require('../../components/CodeHelp') type SegmentsPageType = { @@ -91,10 +92,10 @@ const SegmentsPage: FC = (props) => { openModal( 'New Segment', { + onComplete={(segment) => { //todo: remove when CreateSegment uses hooks - closeModal() - refetch() + setModalTitle(`Edit Segment: ${segment.name}`) + toast('Created segment') }} environmentId={environmentId} projectId={projectId} @@ -124,11 +125,13 @@ const SegmentsPage: FC = (props) => { `Edit Segment`, + setModalTitle(`Edit Segment: ${segment.name}`) + } readOnly={readOnly} onComplete={() => { refetch() - closeModal() + toast('Updated Segment') }} environmentId={environmentId} projectId={projectId} diff --git a/frontend/web/components/pages/UserPage.js b/frontend/web/components/pages/UserPage.js index 0c13325f8059..70532a761a21 100644 --- a/frontend/web/components/pages/UserPage.js +++ b/frontend/web/components/pages/UserPage.js @@ -143,7 +143,6 @@ const UserPage = class extends Component { ,