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

Added a proof-of-concept for async loaded images from the web #245

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

h0lg
Copy link
Contributor

@h0lg h0lg commented May 15, 2024

using https://github.com/AvaloniaUtils/AsyncImageLoader.Avalonia

If you want this as an extension to Fabulous.Avalonia, I can try to encapsulate it into a separate project similar to the existing Fabulous.Avalonia.ItemsRepeater

@h0lg h0lg marked this pull request as draft May 15, 2024 00:48
@h0lg h0lg changed the title Added a proof-of concept for async loaded images from the web Added a proof-of-concept for async loaded images from the web May 15, 2024
@h0lg h0lg force-pushed the async-image branch 2 times, most recently from e8d9b70 to 8183a47 Compare May 20, 2024 13:08
@edgarfgp
Copy link
Member

Seems like a good control to use. For this non official control we have normally 2 options.

We encourage people to create its own Fabulous.Avalonia control wrapper in their individual GitHub profile like I tried to do with AvaloniaEdit using a naming convention like Fabulous.Avalonia.AvaloniaEdit

We can host it in the Fabulous GitHub organization like we have done for Fabulous.MauiControl.Maps in the past and give you maintainer permissions so we can help/assist maintaining, releasing etc. if it is necessary.

@h0lg
Copy link
Contributor Author

h0lg commented May 21, 2024

@edgarfgp I prefer the second option - easier to find for everyone and less work for me :)

I'd also love your help getting the implementation right and the API consistent with that of Fabulous Avalonia. I don't understand the difference between Fabulous' different Attributes.define* helpers yet. Or how to decide which options to expose in a builder vs. in extension methods - because not all existing ones are intuitive to me.

Let me know how you'd like to proceed. If you set up a GitHub repo, I'm happy to convert this into a library with a sample project, and either create a PR or push to it.

I'd also like your feedback on the naming. Is AsyncImage a good widget name? Does it conflict with a part of the ecosystem I don't know about? I derived it from the name of AsyncImageLoader.Avalonia, but didn't to put the -Loader suffix in the name - because the widget effectively renders an image, not a loader.
And what would be a good name and default namespace for the project? Note that the library also features the AdvancedImage control and the ImageBrushLoader attached property, both of which I haven't wrapped in my sample.

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.

2 participants