Skip to content

Conversation

@SeverinAlexB
Copy link

@SeverinAlexB SeverinAlexB commented Dec 2, 2025

Adds

  • Human Proof section replacing invitecodes
  • SMS verification to signup
  • LN payment to signup
  • Removed the previous invite code page
  • Added new signup qr code for Pubky Ring
  • Updated onboarding progress bar

@MiguelMedeiros MiguelMedeiros self-requested a review December 2, 2025 15:24
@MiguelMedeiros MiguelMedeiros added 🎨 ui Interface components and styling 🧶 chore labels Dec 2, 2025
@MiguelMedeiros MiguelMedeiros added this to the El Salvador milestone Dec 2, 2025
@tipogi tipogi self-requested a review December 3, 2025 04:25
Copy link
Collaborator

@tipogi tipogi left a comment

Choose a reason for hiding this comment

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

Some missing points, passing to @MiguelMedeiros the UI review of the draft

const requestLightningInvoice = React.useCallback(async () => {
try {
setIsLoading(true);
const invoice = await Homegate.requestLightningInvoice();
Copy link
Collaborator

Choose a reason for hiding this comment

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

Homegate is a service as you define but the organisms does not have access to the services. The only way to access to the services is through, controller and after application. So we are missing, a homegate controller and application. In that case, you will call to HomegateController.requestLightningInvoice().

const codeValue = code.join('');
try {
setIsVerifyingCode(true);
const result = await Homegate.verifySmsCode(phoneNumber, codeValue);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same as the above code. HomegateController.verifySmsCode()

Copy link
Collaborator

Choose a reason for hiding this comment

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

This is a molecule, it does not have any interaction with data layer or/and external services. It is just an static component

Copy link
Author

Choose a reason for hiding this comment

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

Leaving this open as we might need to add more logic there. US users might not be able to use LN payments.

}

// Create new fetch promise
cachePromise = getSatoshiUsdRate()
Copy link
Collaborator

@tipogi tipogi Dec 16, 2025

Choose a reason for hiding this comment

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

The same reason as above, it has to access through the controller. I would add in the HomegateController another method to get that rate. The function should be renamed to fetchSatoshiUsdRate. The get prefix means that we get data from indexdb

// Ignore if unmounted or superseded
if (activeRequestRef.current !== requestId || !isMountedRef.current) return;
try {
// TODO: Instead of going to the feed, this should go to the create profile page.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The merged PR already solves that one. If we signUp/signIn with the QR using ring, and that key does not signup in the app (it has to have profile.json file in the homeserver), we redirect to the creation of the profile.json

@SeverinAlexB SeverinAlexB marked this pull request as ready for review January 7, 2026 08:55
@SeverinAlexB SeverinAlexB requested a review from tipogi January 7, 2026 10:29
Copy link
Collaborator

@tipogi tipogi left a comment

Choose a reason for hiding this comment

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

nice UX! for my side, ready the core layer

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

Labels

🧶 chore ⚙️ core 🎨 ui Interface components and styling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants