Tabbed interface for user profile edit screen in volto

I want to group the fields in the user profile under tabs like this:

Would appreciate a few pointers.

So far we've done some customising of the user profile (userschema.xml in the backend).

BTW, with some help from @tiberiuichim we now have support for repeatable field values (stored as a zope schema list): see a dicussion about this: Customizing the user profile edit view: adding repeatable fields to member fields and the personal-information view

I have a live prototype of the tabbed interface concept available so people can see what we're aiming at.

In a form schema, the fieldsets are rendered as tabs. So the "trick" would be to define several fieldsets and assign fields to those fieldsets. I don't know if that's possible with the userschema.xml, but I would expect that it is.

1 Like

Following up on this. I want to pull this off next month. I'll put in the time, but will need some pointers along the way. I think I need a few check-ins with someone with right amount of Volto and Plone experience.

I've made some initial progress by customising components/manage/Preferences/PersonalInformation.jsx
Currently I'm hardcoding fields to showup under hardcoded tabs. It works for a quick proof of concept.

tabbed-interface-demo

Now that I know it works, I'm switching to use semantic-ui. For this project, hardcoding in the frontend is likely good enough. Eventually, it might be nice to abstract this so that it could be defined along with the userschema.xml.

tabbed-interface-demo (1)

Volto already provides a Form component:

This is used by PersonalInformation.jsx to create the default form.

I'm assuming that Volto also provides a tabbed form option, this would save me from reinventing my own, as I am currently doing.