({ mode: 'onTouched' });
+
+ async function onSubmit(data: NameChangeFormData) {
+ if (!step.session) return;
+
+ const file = data.file && (await toBase64(data.file));
+ if (!file) {
+ setError('No file selected');
+ return;
+ }
+
+ setIsUpdating(true);
+ setError(undefined);
+ setNameChangeData(code, step.session.url, {
+ file,
+ fileName: data.file.name,
+ firstName: data.firstName,
+ lastName: data.lastName,
+ })
+ .then(onDone)
+ .catch((error: ApiError) => setError(error.message ?? 'Unknown error'))
+ .finally(() => setIsUpdating(false));
+ }
+
+ const rules = Utils.createRules({
+ firstName: Validations.Required,
+ lastName: Validations.Required,
+ file: [
+ Validations.Required,
+ Validations.Custom((file) => (!file || DefaultFileTypes.includes(file.type) ? true : 'file_type')),
+ ],
+ });
+
+ return (
+
+ );
+}
+
function PaymentAgreement({ code, step, onDone }: EditProps): JSX.Element {
const { translate, translateError } = useSettingsContext();
const { setPaymentData } = useKyc();
diff --git a/src/screens/settings.screen.tsx b/src/screens/settings.screen.tsx
index 14976083..7648c4fa 100644
--- a/src/screens/settings.screen.tsx
+++ b/src/screens/settings.screen.tsx
@@ -7,20 +7,12 @@ import {
UserAddress,
useUserContext,
Utils,
- Validations,
} from '@dfx.swiss/react';
import {
- AlignContent,
- DfxIcon,
Form,
- IconColor,
- IconSize,
- IconVariant,
SpinnerSize,
StyledButton,
StyledButtonWidth,
- StyledDataTable,
- StyledDataTableRow,
StyledDropdown,
StyledLoadingSpinner,
StyledVerticalStack,
@@ -54,8 +46,6 @@ enum OverlayType {
DELETE_ADDRESS,
DELETE_ACCOUNT,
RENAME_ADDRESS,
- EDIT_EMAIL,
- EDIT_PHONE,
EDIT_BANK_ACCOUNT,
ADD_BANK_ACCOUNT,
DELETE_BANK_ACCOUNT,
@@ -66,8 +56,6 @@ const OverlayHeader: { [key in OverlayType]: string } = {
[OverlayType.DELETE_ADDRESS]: 'Delete address',
[OverlayType.DELETE_ACCOUNT]: 'Delete account',
[OverlayType.RENAME_ADDRESS]: 'Rename address',
- [OverlayType.EDIT_EMAIL]: 'Edit email',
- [OverlayType.EDIT_PHONE]: 'Edit phone number',
[OverlayType.EDIT_BANK_ACCOUNT]: 'Edit bank account',
[OverlayType.ADD_BANK_ACCOUNT]: 'Add bank account',
[OverlayType.DELETE_BANK_ACCOUNT]: 'Delete bank account',
@@ -115,10 +103,6 @@ export default function SettingsScreen(): JSX.Element {
}
}, [selectedCurrency]);
- useEffect(() => {
- if (overlayType === OverlayType.EDIT_EMAIL) navigate('/settings/mail', { setRedirect: true });
- }, [overlayType]);
-
function onCloseOverlay(): void {
setOverlayType(OverlayType.NONE);
setOverlayData(undefined);
@@ -167,46 +151,6 @@ export default function SettingsScreen(): JSX.Element {
- {!!(user?.mail || user?.phone) && (
-
-
- {translate('screens/kyc', 'Personal Information')}
-
-
- {user?.mail && (
-
-
-
- {translate('screens/kyc', 'Email address')}
-
-
{user?.mail}
-
-
-
-
-
- )}
- {user?.phone && (
-
-
-
- {translate('screens/kyc', 'Phone number')}
-
-
{user?.phone}
-
-
-
-
-
- )}
-
-
- )}
-
{isLoadingBankAccounts ? (
@@ -339,7 +283,7 @@ function SettingsOverlay({ type, data, onClose }: SettingsOverlayProps): JSX.Ele
const { width } = useWindowContext();
const { translate } = useSettingsContext();
const { setWallet } = useWalletContext();
- const { deleteAddress, deleteAccount, renameAddress, updatePhone } = useUserContext();
+ const { deleteAddress, deleteAccount, renameAddress } = useUserContext();
const { updateAccount } = useBankAccountContext();
switch (type) {
@@ -401,21 +345,6 @@ function SettingsOverlay({ type, data, onClose }: SettingsOverlayProps): JSX.Ele
}}
/>
);
- case OverlayType.EDIT_PHONE:
- return (
- {
- await updatePhone(result);
- onClose();
- }}
- />
- );
case OverlayType.EDIT_BANK_ACCOUNT:
return ;
case OverlayType.ADD_BANK_ACCOUNT:
diff --git a/src/screens/support-issue.screen.tsx b/src/screens/support-issue.screen.tsx
index 9d601ae8..ea009685 100644
--- a/src/screens/support-issue.screen.tsx
+++ b/src/screens/support-issue.screen.tsx
@@ -59,8 +59,18 @@ const IssueReasons: { [t in SupportIssueType]: SupportIssueReason[] } = {
[SupportIssueType.KYC_ISSUE]: [SupportIssueReason.OTHER],
[SupportIssueType.LIMIT_REQUEST]: [SupportIssueReason.OTHER],
[SupportIssueType.PARTNERSHIP_REQUEST]: [SupportIssueReason.OTHER],
- [SupportIssueType.NOTIFICATION_OF_CHANGES]: [SupportIssueReason.OTHER],
+ [SupportIssueType.NOTIFICATION_OF_CHANGES]: [
+ SupportIssueReason.NAME_CHANGED,
+ SupportIssueReason.ADDRESS_CHANGED,
+ SupportIssueReason.CIVIL_STATUS_CHANGED,
+ SupportIssueReason.OTHER,
+ ],
[SupportIssueType.BUG_REPORT]: [SupportIssueReason.OTHER],
+ [SupportIssueType.VERIFICATION_CALL]: [
+ SupportIssueReason.REJECT_CALL,
+ SupportIssueReason.REPEAT_CALL,
+ SupportIssueReason.OTHER,
+ ],
};
interface FormData {
@@ -398,8 +408,8 @@ export default function SupportIssueScreen(): JSX.Element {
item === AddAccount
? translate('general/actions', item)
: item === NoIban
- ? translate('screens/iban', item)
- : Utils.formatIban(item) ?? '',
+ ? translate('screens/iban', item)
+ : (Utils.formatIban(item) ?? ''),
{ displayLength: 30 },
)
}
diff --git a/src/screens/transaction.screen.tsx b/src/screens/transaction.screen.tsx
index 83273632..6720cd94 100644
--- a/src/screens/transaction.screen.tsx
+++ b/src/screens/transaction.screen.tsx
@@ -86,7 +86,7 @@ export default function TransactionScreen(): JSX.Element {
const [isCsvLoading, setIsCsvLoading] = useState();
const [error, setError] = useState();
- const isTransaction = id && id.startsWith('T');
+ const isTransaction = id && (id.startsWith('T') || id.startsWith('Q'));
const isRefund = isTransaction && pathname.includes('/refund');
async function exportCsv(type: ExportType) {
diff --git a/src/translations/languages/de.json b/src/translations/languages/de.json
index 01d56ed7..f8431856 100644
--- a/src/translations/languages/de.json
+++ b/src/translations/languages/de.json
@@ -183,6 +183,12 @@
"https://example.com": "https://beispiel.de",
"Mobile number": "Handynummer",
"Phone number": "Telefonnummer",
+ "New address": "Neue Adresse",
+ "New name": "Neuer Name",
+ "Proof document": "Nachweis-Dokument",
+ "Phone number change": "Telefonnummer ändern",
+ "Address change": "Adressänderung",
+ "Name change": "Namensänderung",
"Organization Information": "Organisation",
"Organization name": "Name der Organisation",
"Example inc.": "Beispiel GmbH & Co. KG",
diff --git a/src/translations/languages/fr.json b/src/translations/languages/fr.json
index 59de1a49..f72e59f2 100644
--- a/src/translations/languages/fr.json
+++ b/src/translations/languages/fr.json
@@ -183,6 +183,12 @@
"https://example.com": "https://exemple.fr",
"Mobile number": "Numéro de portable",
"Phone number": "Numéro de téléphone",
+ "New address": "Nouvelle adresse",
+ "New name": "Nouveau nom",
+ "Proof document": "Document justificatif",
+ "Phone number change": "Changement de numéro de téléphone",
+ "Address change": "Changement d'adresse",
+ "Name change": "Changement de nom",
"Organization Information": "Organisation",
"Organization name": "Nom de l'organisation",
"Example inc.": "Exempel SARL & Co. KG",
diff --git a/src/translations/languages/it.json b/src/translations/languages/it.json
index 32ccdcc4..39ad82c5 100644
--- a/src/translations/languages/it.json
+++ b/src/translations/languages/it.json
@@ -183,6 +183,12 @@
"https://example.com": "https://esempio.it",
"Mobile number": "Numero di cellulare",
"Phone number": "Numero di telefono",
+ "New address": "Nuovo indirizzo",
+ "New name": "Nuovo nome",
+ "Proof document": "Documento giustificativo",
+ "Phone number change": "Cambio numero di telefono",
+ "Address change": "Cambio di indirizzo",
+ "Name change": "Cambio di nome",
"Organization Information": "Informazioni sull'organizzazione",
"Organization name": "Nome dell'organizzazione",
"Example inc.": "Esempio inc.",