Skip to content
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

Make default components public #5569

Open
sebastianmarschall opened this issue Jan 20, 2025 · 1 comment
Open

Make default components public #5569

sebastianmarschall opened this issue Jan 20, 2025 · 1 comment
Labels
compose Jetpack Compose core ui-components waiting for response Further information is requested

Comments

@sebastianmarschall
Copy link

Is there a specific reason why almost all DefaultXXX composables are private?

Thats a huge pita if one wants to make even the smalles adaptions of any chat element. For example, I want the MessageComposer to not have an elevation of 4.dp. But thats hardcoded, I cant change it by parameters. I now have to copy the whole MessageComposer composable over but not only that I have to go through all default components that are used within MessageComposer and copy them over as well. Thats laborious, error prone and any changes that are made to those elements within the SDK I won't take notice off.

@aleksandar-apostolov
Copy link
Collaborator

Hi there,

The reason why most of the DefaultXYZ components are private/internal is because the default implementation is not part of the API and if we expose them it becomes so. Integrations not using the out of the box screens usually implement their own UI.

Lately we've been having more requests for these kind of small customisations that you like to do and for this reason we are working on a way that will allow to replace and modify internal components without the need to rewrite and copy/paste most of the components.

In the meantime we can expose maybe the specific composable that you need? For your specific use-case for the MessageComposer the problematic ones are DefaultMessageComposerTrailingContent and DefaultComposerIntegrations, the others are either public or use a public component in their implementation which you can also use instead of the DefaultXYZ.

Would exposing these two be enough for you for the moment?

Regards,
Alex

@aleksandar-apostolov aleksandar-apostolov added the waiting for response Further information is requested label Jan 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compose Jetpack Compose core ui-components waiting for response Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants