nodegui / svelte-nodegui

Build performant, native and cross-platform desktop applications with native Svelte + powerful CSS-like styling.🚀
https://svelte.nodegui.org/
MIT License
2.84k stars 57 forks source link

<scrollArea> is broken #48

Open mperreir opened 3 years ago

mperreir commented 3 years ago

The documentation states that any components enclosed with a <scrollArea></scrollArea> element should become scrollable. However when including such an element in a component, nodejs complains with a UnhandledPromiseRejectionWarning: Error: No known component for element scrollArea. when starting the application.

shirakaba commented 3 years ago

Good catch. This is a simple fix; just need time to apply it.

Will involve updating the registry of components to include scrollView: https://github.com/nodegui/svelte-nodegui/blob/main/src/dom/nativescript-vue-next/runtime/registry.ts

... and updating the Svelte NodeGUI JSX intrinsic typings: https://github.com/nodegui/svelte-nodegui/blob/main/src/svelte-nodegui.ts

Looks like the component would be an RNScrollArea under-the-hood: https://github.com/nodegui/svelte-nodegui/blob/main/src/dom/react-nodegui/src/components/ScrollArea/RNScrollArea.ts

mperreir commented 3 years ago

It might be a bit more subtle than this. I applied those changes on a fork of your code (with a few other adds to https://github.com/nodegui/svelte-nodegui/blob/main/src/index.ts and https://github.com/nodegui/svelte-nodegui/blob/main/src/dom/react-nodegui/src/index.ts) No more errors during execution, but... the scrollArea (and its child) do not appear :-(

mperreir commented 3 years ago

After a bit more testing is seems that scrollArea is kind of working but there are some strange size issues with both scrollArea and its child. See PR #53 (added scrollArea and updated demo to highlight the current problem).

shirakaba commented 3 years ago

Agreed that there are size issues with both. I'm not immediately sure why. First https://github.com/nodegui/svelte-nodegui/issues/42 needs to be solved, to ensure that child nodes are being added correctly in the first place (which particularly impacts the<text> component). But it's odd that I was unable to get <scrollArea> to work properly even when simply adding a <view> child to it. This is going to be a tough one to get to the bottom of (though I do completely understand the necessity to get this component working!).

shirakaba commented 3 years ago

@johanalkstal is this what you were experiencing with regular NodeGUI? Does ScrollArea not work for you?

We're experiencing problems trying to get it to do anything sensible in Svelte NodeGUI and I'm wondering whether the problem stems from NodeGUI itself or not.

shirakaba commented 3 years ago

Some possibly relevant issues:

johanalkstal commented 3 years ago

@johanalkstal is this what you were experiencing with regular NodeGUI? Does ScrollArea not work for you?

We're experiencing problems trying to get it to do anything sensible in Svelte NodeGUI and I'm wondering whether the problem stems from NodeGUI itself or not.

The issue I have is similar to https://github.com/nodegui/react-nodegui/issues/342

That is, I try to use QScrollArea with a QWidget as its child, and the QWidget contains dynamically added QLabels, but the scroll bars don't appear.