saljam / webwormhole

Peer authenticated WebRTC.
BSD 3-Clause "New" or "Revised" License
1.82k stars 92 forks source link

Add text input as a way of sending data #96

Closed andipabst closed 1 year ago

andipabst commented 3 years ago

Sometimes I got a long token or URL I'd like to transfer to another device, exactly the use case of webwormhole. But when using the 'paste' button, I thought it to be helpful to be able to edit the content, e.g. to remove whitespace or a part of the URL. Until now I was doing this by first pasting the code in an editor, changing it and then pasting it into webwormhole. I thought this could be simplified, so I added a text field as a method of sending data. But with the added text input, the methods became quite cluttered, so I made an attempt to provide a better overview of the different options.

Please let me know what you think about it and if I should change it further! Below I also included some screenshots of the before and after.

Before: image

After: image

andipabst commented 3 years ago

Hey @saljam, is there anything I could do to improve this PR?

saljam commented 1 year ago

Hello, almost 18 months later.

Thanks for sending this in. I appreciate all the contributions folks make to this project, even if I don't always get the chance to answer them immediately!

That said, I really want to avoid adding more functionality to WebWormhole. I would like it to handle sending files only, and for it to do that very very well. We still have a long way to go for the latter.

This isn't specific to this particular PR. In general, the more the application does, the more bugs it will have, the more maintenance I will have to do on an already tight time budget.

Instead, I would prefer if new functionality was first built as separate experiments that use WebWormhole's WebRTC parts only. If they turn out to be a better model for WebWormhole maybe they can make their way in, but if not then they stay separate without the burden of integrating them.

For example, if we want a shared text buffer that both sides can edit, maybe it's better to try solving that problem directly first. As a very very rough start, I hooked up a collaborative editor (tiptap, which uses ProseMirror and Y.js) to get a shared buffer. You can try it at sa.lj.am/note. It'll just change the URL once it has a phrase, that you can paste in another window to get Google Docs style multiplayer text box. (It can obviously do with a bit more UI. I did say it's very rough.)

maximbaz commented 1 year ago

Very cool demo! I hope you'll consider making the code public 😉 I'd even say that such minimalistic UI serves very well for sharing small chunks of text data between devices - maybe having a QR code for the link would be useful though 😁

saljam commented 1 year ago

right click -> view source. that's all the code!