diff --git a/assets/js/src/settings/components/index.ts b/assets/js/src/settings/components/index.ts index d96239b872..9535c9cc83 100644 --- a/assets/js/src/settings/components/index.ts +++ b/assets/js/src/settings/components/index.ts @@ -3,3 +3,4 @@ export { default as Label } from './label'; export { default as Inputs } from './inputs'; export { default as SaveButton } from './save_button'; export { default as SegmentsSelect } from './segments_select'; +export { default as PagesSelect } from './pages_select'; diff --git a/assets/js/src/settings/components/label.tsx b/assets/js/src/settings/components/label.tsx index e0e7d50db5..8b26398e68 100644 --- a/assets/js/src/settings/components/label.tsx +++ b/assets/js/src/settings/components/label.tsx @@ -1,8 +1,8 @@ -import React from 'react'; +import React, { ReactNode } from 'react'; type Props = { title: string - description: string + description: ReactNode htmlFor: string } diff --git a/assets/js/src/settings/components/pages_select.tsx b/assets/js/src/settings/components/pages_select.tsx new file mode 100644 index 0000000000..eee80169ab --- /dev/null +++ b/assets/js/src/settings/components/pages_select.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { onChange, t } from 'settings/utils'; +import { useSelector } from 'settings/store/hooks'; + +type Props = { + id?: string + value: string + linkAutomationId?: string + setValue: (x: string) => any + preview: 'manage' | 'unsubscribe' | 'confirm' +} + +export default (props: Props) => { + const pages = useSelector('getPages')(); + const selectedPage = props.value + ? pages.find((x) => x.id === parseInt(props.value, 10)) + : pages[0]; + return ( + <> + + {' '} + + {t`preview`} + + + ); +}; diff --git a/assets/js/src/settings/components/segments_select.tsx b/assets/js/src/settings/components/segments_select.tsx index 56136d2c48..12a98c3342 100644 --- a/assets/js/src/settings/components/segments_select.tsx +++ b/assets/js/src/settings/components/segments_select.tsx @@ -4,7 +4,7 @@ import 'select2'; import { useSelector } from 'settings/store/hooks'; type Props = { - id?: string + id: string value: string[] placeholder?: string setValue: (x: string[]) => any diff --git a/assets/js/src/settings/pages/basics/index.tsx b/assets/js/src/settings/pages/basics/index.tsx index f59c22d03e..c4bbdb7095 100644 --- a/assets/js/src/settings/pages/basics/index.tsx +++ b/assets/js/src/settings/pages/basics/index.tsx @@ -3,6 +3,7 @@ import { SaveButton } from 'settings/components'; import { t } from 'settings/utils'; import DefaultSender from './default_sender'; import SubscribeOn from './subscribe_on'; +import ManageSubscription from './manage_subscription'; export default function Basics() { return ( @@ -18,6 +19,7 @@ export default function Basics() { title={t`subscribeInRegistrationTitle`} description={t`subscribeInRegistrationDescription`} /> + ); diff --git a/assets/js/src/settings/pages/basics/manage_subscription.tsx b/assets/js/src/settings/pages/basics/manage_subscription.tsx new file mode 100644 index 0000000000..9a624b34a4 --- /dev/null +++ b/assets/js/src/settings/pages/basics/manage_subscription.tsx @@ -0,0 +1,44 @@ +import React from 'react'; +import { t } from 'settings/utils'; +import { useSetting } from 'settings/store/hooks'; +import { + Label, Inputs, SegmentsSelect, PagesSelect, +} from 'settings/components'; + +export default function ManageSubscription() { + const [page, setPage] = useSetting('subscription', 'pages', 'manage'); + const [segments, setSegments] = useSetting('subscription', 'segments'); + return ( + <> +