Skip to content

Bring in GenUI to build the settings page #424

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

Guocork
Copy link
Contributor

@Guocork Guocork commented Mar 7, 2025

introduce Genui into Robrix. Right now, only done the desktop version

@Guocork Guocork marked this pull request as draft March 7, 2025 07:01
@Guocork Guocork marked this pull request as ready for review March 13, 2025 08:59
@Guocork
Copy link
Contributor Author

Guocork commented Mar 13, 2025

Hello, @kevinaboos
In this PR, I've mimicked Element by using basic components from Genui to implement a settings page. This is just an initial version, so I haven't put much effort into beautifying the pages. The settings page currently supports only three screens: account_page, keyboard_page, and notification_page, with routing functionality between them.

In this PR, I modified the makepad-widget dependency from robrix since Genui needs to depend on the same makepad-widget library as robrix. I changed it to point to the corresponding repository to ensure Genui can be used correctly within robrix. In the future, if we introduce Genui into robrix, robrix will need to provide a stable makepad-widget dependency (ensuring Genui can depend on it reliably), making Genui easier to use for both us and other developers.

@kevinaboos
Copy link
Member

Thanks! Sorry for the delay in my review, I was preoccupied with other work on OpenHarmony.

The main problem that jumps out to me is that GenUI has a requirement for a specific version of Makepad. Unfortunately, Robrix itself also has a strict requirement to depend on a specific commit version of Makepad. Currently that version is in my hits_handling_redesign fork, although I do frequently have to change which branch of Makepad we depend on, because I'm constantly making contributions to Makepad and then immediately using them in Robrix before they have been merged into the upstream rik branch.

  • Does GenUI actually require a specific version or special modified version of Makepad?
  • If so, why? What special modifications does it need? Can we upstream those into the main rik branch?

If GenUI has special requirements from Makepad, we cannot use it until the Makepad version that we need and the Makepad version that GenUI needs are the exact same.

@kevinaboos kevinaboos added the waiting-on-author This issue is waiting on the original author for a response label Mar 19, 2025
@Guocork
Copy link
Contributor Author

Guocork commented Mar 20, 2025

Thanks! Sorry for the delay in my review, I was preoccupied with other work on OpenHarmony.

The main problem that jumps out to me is that GenUI has a requirement for a specific version of Makepad. Unfortunately, Robrix itself also has a strict requirement to depend on a specific commit version of Makepad. Currently that version is in my hits_handling_redesign fork, although I do frequently have to change which branch of Makepad we depend on, because I'm constantly making contributions to Makepad and then immediately using them in Robrix before they have been merged into the upstream rik branch.

* Does GenUI _actually_ require a specific version or special modified version of Makepad?

* If so, why? What special modifications does it need? Can we upstream those into the main `rik` branch?

If GenUI has special requirements from Makepad, we cannot use it until the Makepad version that we need and the Makepad version that GenUI needs are the exact same.

After discussing with Yifei, we found that GenUI doesn't require a specific version of Makepad — it just needs the rik branch. However, there's a catch. GenUI also depends on makepad-widget, and since both GenUI and Robrix are in the same project, we need to ensure the code for makepad-widget is identical in both.

So, if Robrix is using the hits_handling_redesign fork of makepad-widget, then GenUI also needs to use that same fork. Plus, the hits_handling_redesign fork needs to be compatible with the rik branch.

Since a lot of GenUI's content is designed specifically for the rik branch, if too many changes are made in the hits_handling_redesign fork, GenUI might also need to make some adjustments to adapt to that branch.

@ZhangHanDong ZhangHanDong added waiting-on-review This issue is waiting to be reviewed waiting-on-author This issue is waiting on the original author for a response and removed waiting-on-author This issue is waiting on the original author for a response waiting-on-review This issue is waiting to be reviewed labels Apr 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
waiting-on-author This issue is waiting on the original author for a response
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants