diff --git a/packages/ui/src/components/ConfirmModal/index.tsx b/packages/ui/src/components/ConfirmModal/index.tsx
index ba22acba5..9e3146a9e 100644
--- a/packages/ui/src/components/ConfirmModal/index.tsx
+++ b/packages/ui/src/components/ConfirmModal/index.tsx
@@ -1,15 +1,2 @@
-import React from 'react';
-
-import usePlatform from '@/hooks/use-platform';
-
-import AcModal from './AcModal';
-import MobileModal from './MobileModal';
-import { ModalProps } from './type';
-
-const ConfirmModal = (props: ModalProps) => {
- const { isMobile } = usePlatform();
-
- return isMobile ? : ;
-};
-
-export default ConfirmModal;
+export { default as WebModal } from './AcModal';
+export { default as MobileModal } from './MobileModal';
diff --git a/packages/ui/src/components/Input/index.tsx b/packages/ui/src/components/Input/index.tsx
index 31ec06d03..41e3f7f6b 100644
--- a/packages/ui/src/components/Input/index.tsx
+++ b/packages/ui/src/components/Input/index.tsx
@@ -6,6 +6,9 @@ import ErrorMessage, { ErrorType } from '@/components/ErrorMessage';
import * as styles from './index.module.scss';
+export { default as PasswordInput } from './PasswordInput';
+export { default as PhoneInput } from './PhoneInput';
+
export type Props = HTMLProps & {
className?: string;
error?: ErrorType;
diff --git a/packages/ui/src/containers/Passwordless/EmailPasswordless.tsx b/packages/ui/src/containers/Passwordless/EmailPasswordless.tsx
index 3183c36ce..3a6f66f95 100644
--- a/packages/ui/src/containers/Passwordless/EmailPasswordless.tsx
+++ b/packages/ui/src/containers/Passwordless/EmailPasswordless.tsx
@@ -6,7 +6,6 @@ import { useNavigate } from 'react-router-dom';
import { getSendPasscodeApi } from '@/apis/utils';
import Button from '@/components/Button';
import Input from '@/components/Input';
-import PasswordlessConfirmModal from '@/containers/PasswordlessConfirmModal';
import TermsOfUse from '@/containers/TermsOfUse';
import useApi, { ErrorHandlers } from '@/hooks/use-api';
import useForm from '@/hooks/use-form';
@@ -14,6 +13,7 @@ import useTerms from '@/hooks/use-terms';
import { UserFlow } from '@/types';
import { emailValidation } from '@/utils/field-validations';
+import PasswordlessConfirmModal from './PasswordlessConfirmModal';
import * as styles from './index.module.scss';
type Props = {
diff --git a/packages/ui/src/containers/PasswordlessConfirmModal/index.tsx b/packages/ui/src/containers/Passwordless/PasswordlessConfirmModal.tsx
similarity index 89%
rename from packages/ui/src/containers/PasswordlessConfirmModal/index.tsx
rename to packages/ui/src/containers/Passwordless/PasswordlessConfirmModal.tsx
index 4701c0e4c..126cf0255 100644
--- a/packages/ui/src/containers/PasswordlessConfirmModal/index.tsx
+++ b/packages/ui/src/containers/Passwordless/PasswordlessConfirmModal.tsx
@@ -3,8 +3,9 @@ import { useTranslation } from 'react-i18next';
import { useNavigate } from 'react-router-dom';
import { getSendPasscodeApi, PasscodeChannel } from '@/apis/utils';
-import ConfirmModal from '@/components/ConfirmModal';
+import { WebModal, MobileModal } from '@/components/ConfirmModal';
import useApi from '@/hooks/use-api';
+import usePlatform from '@/hooks/use-platform';
import { UserFlow } from '@/types';
type Props = {
@@ -20,8 +21,10 @@ const PasswordlessConfirmModal = ({ className, isOpen, type, method, value, onCl
const { t } = useTranslation(undefined, { keyPrefix: 'main_flow' });
const sendPasscode = getSendPasscodeApi(type, method);
const navigate = useNavigate();
+ const { isMobile } = usePlatform();
const { result, run: asyncSendPasscode } = useApi(sendPasscode);
+ const ConfirmModal = isMobile ? MobileModal : WebModal;
const onConfirmHandler = useCallback(() => {
onClose();
diff --git a/packages/ui/src/containers/Passwordless/PhonePasswordless.tsx b/packages/ui/src/containers/Passwordless/PhonePasswordless.tsx
index ab9142922..f28175049 100644
--- a/packages/ui/src/containers/Passwordless/PhonePasswordless.tsx
+++ b/packages/ui/src/containers/Passwordless/PhonePasswordless.tsx
@@ -5,8 +5,7 @@ import { useNavigate } from 'react-router-dom';
import { getSendPasscodeApi } from '@/apis/utils';
import Button from '@/components/Button';
-import PhoneInput from '@/components/Input/PhoneInput';
-import PasswordlessConfirmModal from '@/containers/PasswordlessConfirmModal';
+import { PhoneInput } from '@/components/Input';
import TermsOfUse from '@/containers/TermsOfUse';
import useApi, { ErrorHandlers } from '@/hooks/use-api';
import useForm from '@/hooks/use-form';
@@ -14,6 +13,7 @@ import usePhoneNumber, { countryList } from '@/hooks/use-phone-number';
import useTerms from '@/hooks/use-terms';
import { UserFlow } from '@/types';
+import PasswordlessConfirmModal from './PasswordlessConfirmModal';
import * as styles from './index.module.scss';
type Props = {
diff --git a/packages/ui/src/components/TermsOfUseModal/index.test.tsx b/packages/ui/src/containers/TermsOfUse/TermsOfUseConfirmModal/index.test.tsx
similarity index 100%
rename from packages/ui/src/components/TermsOfUseModal/index.test.tsx
rename to packages/ui/src/containers/TermsOfUse/TermsOfUseConfirmModal/index.test.tsx
diff --git a/packages/ui/src/components/TermsOfUseModal/index.tsx b/packages/ui/src/containers/TermsOfUse/TermsOfUseConfirmModal/index.tsx
similarity index 70%
rename from packages/ui/src/components/TermsOfUseModal/index.tsx
rename to packages/ui/src/containers/TermsOfUse/TermsOfUseConfirmModal/index.tsx
index 3ac0918ee..0fba84241 100644
--- a/packages/ui/src/components/TermsOfUseModal/index.tsx
+++ b/packages/ui/src/containers/TermsOfUse/TermsOfUseConfirmModal/index.tsx
@@ -2,8 +2,9 @@ import React, { ReactNode } from 'react';
import { useTranslation } from 'react-i18next';
import reactStringReplace from 'react-string-replace';
-import ConfirmModal from '@/components/ConfirmModal';
+import { WebModal, MobileModal } from '@/components/ConfirmModal';
import TextLink from '@/components/TextLink';
+import usePlatform from '@/hooks/use-platform';
type Props = {
isOpen?: boolean;
@@ -12,8 +13,10 @@ type Props = {
termsUrl: string;
};
-const TermsOfUseModal = ({ isOpen = false, termsUrl, onConfirm, onClose }: Props) => {
+const TermsOfUseConfirmModal = ({ isOpen = false, termsUrl, onConfirm, onClose }: Props) => {
const { t } = useTranslation(undefined, { keyPrefix: 'main_flow' });
+ const { isMobile } = usePlatform();
+ const ConfirmModal = isMobile ? MobileModal : WebModal;
const terms = t('description.terms_of_use');
const content = t('description.agree_with_terms_modal', { terms });
@@ -29,4 +32,4 @@ const TermsOfUseModal = ({ isOpen = false, termsUrl, onConfirm, onClose }: Props
);
};
-export default TermsOfUseModal;
+export default TermsOfUseConfirmModal;
diff --git a/packages/ui/src/containers/TermsOfUsePromiseModal/index.tsx b/packages/ui/src/containers/TermsOfUse/TermsOfUsePromiseModal/index.tsx
similarity index 88%
rename from packages/ui/src/containers/TermsOfUsePromiseModal/index.tsx
rename to packages/ui/src/containers/TermsOfUse/TermsOfUsePromiseModal/index.tsx
index e051e4e2b..4e4b7cc34 100644
--- a/packages/ui/src/containers/TermsOfUsePromiseModal/index.tsx
+++ b/packages/ui/src/containers/TermsOfUse/TermsOfUsePromiseModal/index.tsx
@@ -1,15 +1,16 @@
import React, { useContext } from 'react';
import { create, InstanceProps } from 'react-modal-promise';
-import TermsOfUseModal from '@/components/TermsOfUseModal';
import { PageContext } from '@/hooks/use-page-context';
+import TermsOfUseConfirmModal from '../TermsOfUseConfirmModal';
+
const TermsOfUsePromiseModal = ({ isOpen, onResolve, onReject }: InstanceProps) => {
const { setTermsAgreement, experienceSettings } = useContext(PageContext);
const { termsOfUse } = experienceSettings ?? {};
return (
- {
diff --git a/packages/ui/src/containers/TermsOfUse/index.tsx b/packages/ui/src/containers/TermsOfUse/index.tsx
index 20dc34f6f..0842d3f75 100644
--- a/packages/ui/src/containers/TermsOfUse/index.tsx
+++ b/packages/ui/src/containers/TermsOfUse/index.tsx
@@ -1,7 +1,7 @@
import React from 'react';
import ModalContainer from 'react-modal-promise';
-import PureTermsOfUse from '@/components/TermsOfUse';
+import TermsOfUseComponent from '@/components/TermsOfUse';
import useTerms from '@/hooks/use-terms';
type Props = {
@@ -17,7 +17,7 @@ const TermsOfUse = ({ className }: Props) => {
return (
<>
-