Skip to content

[Domain Control] Add wall gate for unvalidated domains in domain members#91170

Open
jakubstec wants to merge 14 commits into
Expensify:mainfrom
software-mansion-labs:jakubstec/domains/add-wall-gate-for-unvalidated-domains
Open

[Domain Control] Add wall gate for unvalidated domains in domain members#91170
jakubstec wants to merge 14 commits into
Expensify:mainfrom
software-mansion-labs:jakubstec/domains/add-wall-gate-for-unvalidated-domains

Conversation

@jakubstec
Copy link
Copy Markdown
Contributor

@jakubstec jakubstec commented May 20, 2026

Explanation of Change

Added a guard to prevent user from seeing an empty domain members page. Followed the design (discussed in issue).

Fixed Issues

$ #91081
PROPOSAL:

Tests

  1. Go to "Workspaces"
  2. Open any domain that is unverified
  3. Open "Domain members" page
  4. Verify, that guard is visible properly, "Verify" button navigates to verification RHP and all descriptions and illustrations are correct with the design (also in issue description)
  • Verify that no errors appear in the JS console

Offline tests

N/A

QA Steps

Same as Tests

  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android: Native
    • Android: mWeb Chrome
    • iOS: Native
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
      • If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))
  • If new assets were added or existing ones were modified, I verified that:
    • The assets are optimized and compressed (for SVG files, run npm run compress-svg)
    • The assets load correctly across all supported platforms.
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

MacOS: Chrome / Safari
Screen.Recording.2026-05-25.at.17.07.23.mov

@melvin-bot
Copy link
Copy Markdown

melvin-bot Bot commented May 20, 2026

Hey, I noticed you changed src/languages/en.ts in a PR from a fork. For security reasons, translations are not generated automatically for PRs from forks.

If you want to automatically generate translations for other locales, an Expensify employee will have to:

  1. Look at the code and make sure there are no malicious changes.
  2. Run the Generate static translations GitHub workflow. If you have write access and the K2 extension, you can simply click: [this button]

Alternatively, if you are an external contributor, you can run the translation script locally with your own OpenAI API key. To learn more, try running:

npx ts-node ./scripts/generateTranslations.ts --help

Typically, you'd want to translate only what you changed by running npx ts-node ./scripts/generateTranslations.ts --compare-ref main

@jakubstec
Copy link
Copy Markdown
Contributor Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3779663649

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread src/pages/domain/Members/DomainMembersPage.tsx Outdated
@jakubstec jakubstec changed the title feat: add wall gate for unvalidated domains [Domain Control] Add wall gate for unvalidated domains in domain members May 22, 2026
@jakubstec
Copy link
Copy Markdown
Contributor Author

@codex review

@jakubstec
Copy link
Copy Markdown
Contributor Author

Can I get the GitHub workflow for translations ran? 🙏

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8cf6d2e9c8

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread src/languages/en.ts
Comment thread src/languages/en.ts Outdated
Comment thread src/pages/domain/Members/DomainMembersPage.tsx Outdated
Comment thread src/pages/domain/Members/DomainMembersPage.tsx Outdated
Comment thread src/pages/domain/Members/DomainMembersPage.tsx Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we shouldn't do the same for admins page 🤔 Have you discussed it?

Copy link
Copy Markdown
Contributor Author

@jakubstec jakubstec May 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We mirror the behavior of OD, so I think we don't do it there, worth to discuss it though!

@jakubstec jakubstec force-pushed the jakubstec/domains/add-wall-gate-for-unvalidated-domains branch from ac7c341 to 560f3c1 Compare May 25, 2026 14:41
jakubstec and others added 4 commits May 25, 2026 16:54
…' of github.com:software-mansion-labs/expensify-app-fork into jakubstec/domains/add-wall-gate-for-unvalidated-domains
@jakubstec jakubstec marked this pull request as ready for review May 25, 2026 15:03
@jakubstec jakubstec requested review from a team as code owners May 25, 2026 15:03
@melvin-bot melvin-bot Bot requested review from JmillsExpensify, dubielzyk-expensify and thesahindia and removed request for a team, dubielzyk-expensify and thesahindia May 25, 2026 15:03
@melvin-bot melvin-bot Bot requested a review from a team May 25, 2026 15:03
@melvin-bot
Copy link
Copy Markdown

melvin-bot Bot commented May 25, 2026

@dubielzyk-expensify @thesahindia One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

@melvin-bot melvin-bot Bot requested review from dubielzyk-expensify, dukenv0307 and mountiny and removed request for a team May 25, 2026 15:03
@melvin-bot
Copy link
Copy Markdown

melvin-bot Bot commented May 25, 2026

@dubielzyk-expensify @dukenv0307 @mountiny One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

Comment thread src/pages/domain/Members/DomainMembersPage.tsx
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5565d96a3d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

>
<HeaderWithBackButton
title={translate('domain.domainMembers')}
onBackButtonPress={Navigation.goBack}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve sidebar fallback for members wall back navigation

The new unvalidated-domain branch wires the header back action to Navigation.goBack, but this API intentionally no-ops when there is no prior route in the stack. In practice, opening Domain Members from a direct deeplink (or any entry point where this screen is the first route) leaves users stuck on the wall because the validated flow’s Navigation.popToSidebar fallback is bypassed. Keep the same sidebar fallback behavior in this branch so back navigation still works when canGoBack() is false.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed!

@jakubstec
Copy link
Copy Markdown
Contributor Author

jakubstec commented May 25, 2026

Can I get the GitHub workflow for translations ran? 🙏

Bump!

@dukenv0307
Copy link
Copy Markdown
Contributor

on it now

@dukenv0307
Copy link
Copy Markdown
Contributor

@jakubstec some tests are failing...

@jakubstec
Copy link
Copy Markdown
Contributor Author

@jakubstec some tests are failing...

@dukenv0307 Yeah, type check and Jest are related to missing translations, which have to be generated

Comment thread src/pages/domain/Members/DomainMembersPage.tsx Outdated
@OSBotify
Copy link
Copy Markdown
Contributor

🦜 Polyglot Parrot! 🦜

Squawk! Looks like you added some shiny new English strings. Allow me to parrot them back to you in other tongues:

View the translation diff
diff --git a/src/languages/de.ts b/src/languages/de.ts
index 1e53dd6ff93..a95bb7ff40f 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -9443,6 +9443,13 @@ Hier ist ein *Testbeleg*, um dir zu zeigen, wie es funktioniert:`,
             chooseWhereToMove: ({count}: {count: number}) => `Wählen Sie aus, wohin Sie ${count} ${count === 1 ? 'Mitglied' : 'Mitglieder'} verschieben möchten.`,
             domainGroup: 'Domain-Gruppe',
             chooseWhereToMoveName: ({name}: {name: string}) => `Wähle aus, wohin ${name} verschoben werden soll.`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) =>
+                    `<muted-text>Bestätigen Sie Ihre Domain, um mehr Kontrolle über <strong>${domainName}</strong>-Mitglieder in Expensify zu erhalten.</muted-text>`,
+                controlPolicyCreation: 'Arbeitsbereichserstellung einschränken',
+                enableSamlSso: 'SAML-SSO aktivieren',
+                enforce2FA: '2FA erzwingen',
+            },
         },
         common: {
             settings: 'Einstellungen',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 5aa5329afac..33a194d7d20 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -9612,6 +9612,13 @@ ${amount} para ${merchant} - ${date}`,
             domainGroup: 'Grupo de dominio',
             chooseWhereToMove: ({count}: {count: number}) => `Elige a dónde mover ${count} ${count === 1 ? 'miembro' : 'miembros'}.`,
             chooseWhereToMoveName: ({name}: {name: string}) => `Elige a dónde mover a ${name}.`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) =>
+                    `<muted-text>Verifica tu dominio para tener más control sobre los miembros de <strong>${domainName}</strong> en Expensify.</muted-text>`,
+                controlPolicyCreation: 'Restringir la creación de espacios de trabajo',
+                enableSamlSso: 'Habilitar SSO SAML',
+                enforce2FA: 'Forzar 2FA',
+            },
         },
         common: {
             settings: 'Configuración',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 4bd7aea45b8..34e14e6350a 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -9474,6 +9474,13 @@ Voici un *reçu test* pour vous montrer comment ça fonctionne :`,
             chooseWhereToMove: ({count}: {count: number}) => `Choisissez où déplacer ${count} ${count === 1 ? 'membre' : 'membres'}.`,
             domainGroup: 'Groupe de domaines',
             chooseWhereToMoveName: ({name}: {name: string}) => `Choisissez où déplacer ${name}.`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) =>
+                    `<muted-text>Vérifiez votre domaine pour mieux contrôler les membres de <strong>${domainName}</strong> dans Expensify.</muted-text>`,
+                controlPolicyCreation: "Restreindre la création d'espaces de travail",
+                enableSamlSso: 'Activer SAML SSO',
+                enforce2FA: 'Imposer la 2FA',
+            },
         },
         common: {
             settings: 'Paramètres',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index da3c5a4b199..435aa5e5b09 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -9436,6 +9436,13 @@ Ecco una *ricevuta di prova* per mostrarti come funziona:`,
             chooseWhereToMove: ({count}: {count: number}) => `Scegli dove spostare ${count} ${count === 1 ? 'membro' : 'membri'}.`,
             domainGroup: 'Gruppo di domini',
             chooseWhereToMoveName: ({name}: {name: string}) => `Scegli dove spostare ${name}.`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) =>
+                    `<muted-text>Verifica il tuo dominio per avere un maggiore controllo sui membri di <strong>${domainName}</strong> in Expensify.</muted-text>`,
+                controlPolicyCreation: 'Limita la creazione di workspace',
+                enableSamlSso: 'Abilita SSO SAML',
+                enforce2FA: 'Imponi 2FA',
+            },
         },
         common: {
             settings: 'Impostazioni',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 5bf006c69be..a8041b3c043 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -9316,6 +9316,13 @@ ${reportName}
             chooseWhereToMove: ({count}: {count: number}) => `${count} ${count === 1 ? 'メンバー' : 'メンバー'} を移動する先を選択してください。`,
             domainGroup: 'ドメイングループ',
             chooseWhereToMoveName: ({name}: {name: string}) => `${name} をどこに移動するか選択してください。`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) =>
+                    `<muted-text>Expensify で <strong>${domainName}</strong> メンバーをより細かく管理できるように、ドメインを確認してください。</muted-text>`,
+                controlPolicyCreation: 'ワークスペースの作成を制限',
+                enableSamlSso: 'SAML SSO を有効にする',
+                enforce2FA: '2 要素認証を必須にする',
+            },
         },
         common: {
             settings: '設定',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 9b3656c31a7..dfecfb67dd3 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -9404,6 +9404,13 @@ Hier is een *proefbon* om je te laten zien hoe het werkt:`,
             chooseWhereToMove: ({count}: {count: number}) => `Kies waar je ${count} ${count === 1 ? 'lid' : 'leden'} naartoe wilt verplaatsen.`,
             domainGroup: 'Domeingroep',
             chooseWhereToMoveName: ({name}: {name: string}) => `Kies waar je ${name} naartoe wilt verplaatsen.`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) =>
+                    `<muted-text>Verifieer je domein voor meer controle over leden met <strong>${domainName}</strong> in Expensify.</muted-text>`,
+                controlPolicyCreation: 'Aanmaken van werkruimtes beperken',
+                enableSamlSso: 'SAML-SSO inschakelen',
+                enforce2FA: '2FA afdwingen',
+            },
         },
         common: {
             settings: 'Instellingen',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 694b08bec77..9277ed22597 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -9386,6 +9386,13 @@ Oto *paragon testowy*, żeby pokazać Ci, jak to działa:`,
             chooseWhereToMove: ({count}: {count: number}) => `Wybierz, dokąd przenieść ${count} ${count === 1 ? 'członka' : 'członków'}.`,
             domainGroup: 'Grupa domen',
             chooseWhereToMoveName: ({name}: {name: string}) => `Wybierz, dokąd przenieść ${name}.`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) =>
+                    `<muted-text>Zweryfikuj swoją domenę, aby mieć większą kontrolę nad członkami <strong>${domainName}</strong> w Expensify.</muted-text>`,
+                controlPolicyCreation: 'Ogranicz tworzenie przestrzeni roboczych',
+                enableSamlSso: 'Włącz logowanie SAML SSO',
+                enforce2FA: 'Wymuś 2FA',
+            },
         },
         common: {
             settings: 'Ustawienia',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index f6af7329cc8..4cc0d97ed6f 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -9393,6 +9393,13 @@ Aqui está um *comprovante de teste* para mostrar como funciona:`,
             chooseWhereToMove: ({count}: {count: number}) => `Escolha para onde mover ${count} ${count === 1 ? 'membro' : 'membros'}.`,
             domainGroup: 'Grupo de domínio',
             chooseWhereToMoveName: ({name}: {name: string}) => `Escolha para onde mover ${name}.`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) =>
+                    `<muted-text>Verifique seu domínio para ter mais controle sobre os membros de <strong>${domainName}</strong> no Expensify.</muted-text>`,
+                controlPolicyCreation: 'Restringir criação de espaço de trabalho',
+                enableSamlSso: 'Ativar SSO SAML',
+                enforce2FA: 'Exigir 2FA',
+            },
         },
         common: {
             settings: 'Configurações',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 0ff00724590..5fd4659475c 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -9159,6 +9159,12 @@ ${reportName}
             chooseWhereToMove: ({count}: {count: number}) => `选择将 ${count} 个 ${count === 1 ? '成员' : '成员'} 移动到哪里。`,
             domainGroup: '域名组',
             chooseWhereToMoveName: ({name}: {name: string}) => `选择将 ${name} 移动到哪里。`,
+            membersFeatureList: {
+                subtitle: ({domainName}: {domainName: string}) => `<muted-text>验证你的域,以便在 Expensify 中更好地管理 <strong>${domainName}</strong> 成员。</muted-text>`,
+                controlPolicyCreation: '限制创建工作区',
+                enableSamlSso: '启用 SAML 单点登录',
+                enforce2FA: '强制启用双重验证',
+            },
         },
         common: {
             settings: '设置',

Note

You can apply these changes to your branch by copying the patch to your clipboard, then running pbpaste | git apply 😉

View workflow run

@jakubstec
Copy link
Copy Markdown
Contributor Author

jakubstec commented May 26, 2026

@dukenv0307 I found a bug, when you open a deeplink:https://dev.new.expensify.com:8082/domain/<domainID>/verify, it shows a SAML page, i think we should create separate subpages for that ( /domain/<domainID>/saml/verify and domain/<domainID>/members/verify). I'll ping you when it's ready!

Screen.Recording.2026-05-26.at.16.37.49.mov

@dukenv0307
Copy link
Copy Markdown
Contributor

@jakubstec I see, are you going to fix it in a separate PR?

@mountiny
Copy link
Copy Markdown
Contributor

Conflicts

@jakubstec
Copy link
Copy Markdown
Contributor Author

@jakubstec I see, are you going to fix it in a separate PR?

It requires a lot of small changes in 10+ files, so maybe we should do it in a separate PR. (draft's here: #91747, waiting for this one to be merged first 😄) Also, i can take care of a small pre-existing domain verification bug i've found, (in this follow-up)

  • TXT record disappears after re-entering the verification RHP via a deeplink
Screen.Recording.2026-05-26.at.16.38.27.mov

@codecov
Copy link
Copy Markdown

codecov Bot commented May 26, 2026

Codecov Report

✅ Changes either increased or maintained existing code coverage, great job!

Files with missing lines Coverage Δ
src/components/Icon/chunks/illustrations.chunk.ts 0.00% <ø> (ø)
src/pages/domain/BaseVerifyDomainPage.tsx 0.00% <0.00%> (ø)
src/pages/domain/Members/DomainMembersPage.tsx 0.00% <0.00%> (ø)
... and 76 files with indirect coverage changes

@jakubstec
Copy link
Copy Markdown
Contributor Author

@mountiny no more conflicts :]

@mountiny
Copy link
Copy Markdown
Contributor

Thank you! @dukenv0307 all yours

@dubielzyk-expensify
Copy link
Copy Markdown
Contributor

Can we make the illustrations on both of these smaller?

CleanShot 2026-05-27 at 11 11 48@2x CleanShot 2026-05-27 at 11 12 06@2x

It should be like this:

image image

Setting the height of those illustrations to ~160px

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants