farooqkz / chooj Goto Github PK
View Code? Open in Web Editor NEWMatrix chat app for KaiOS feature phones supporting voice calls
Matrix chat app for KaiOS feature phones supporting voice calls
If you have no rooms or DMs available, and you log in, Chooj gets stuck on the "Please Wait" screen.
This can easily be reproduced on a freshly created account somewhere.
The core of it seems to be the Unhandled promise rejection TypeError: n.rooms[e] is undefined
error. If I create rooms in some other client, then this doesn't appear and the interface loads normally.
Fetching new TURN credentials
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Getting saved sync token...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Getting push rules...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Got saved sync token
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Getting saved sync...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Got reply from saved sync, exists? false
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Got push rules
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Checking lazy load status...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Checking server lazy load support...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Enabling lazy load on sync filter...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Checking whether lazy loading has changed in store...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Storing client options...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Stored client options
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Getting filter...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Sending first sync request...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
Waiting for saved sync before starting sync processing...
at i.default.methodFactory/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23151)
2.a9b495e7.chunk.js:1:23151
[ListView] Constructor was called: cursor=0
at t (app://chooj.bananahackers.net/static/js/main.9a45c4fd.chunk.js:1:25368)
main.9a45c4fd.chunk.js:1:25368
Unhandled promise rejection TypeError: n.rooms[e] is undefined
Stack trace:
[762]/t/n.cursorChangeCb@app://chooj.bananahackers.net/static/js/main.9a45c4fd.chunk.js:1:32826
t@app://chooj.bananahackers.net/static/js/main.9a45c4fd.chunk.js:1:25658
De/a<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12162
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12134
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12106
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12568
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12106
Ue@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:13474
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:11895
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:11470
Ue@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:13474
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:11895
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:11470
De/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12568
De@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:12106
je/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:13737
je@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:13605
Ne/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:18357
Ne@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:18252
je/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:15486
je@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:15241
Be@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:18874
He@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:20195
Ve@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:19813
Ye.prototype.setState@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:20646
[762]/t/me<@app://chooj.bananahackers.net/static/js/main.9a45c4fd.chunk.js:1:44738
d/i<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:41419
s.prototype.emit@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:43431
R<.value@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:902139
e/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:891059
S@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:734104
k/o._invoke@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:733894
x/</e[t]@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:734280
r@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23555
s@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:23769
te/<@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:655694
n@app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:442165
at e.exports (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:442833)
at re (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:656074)
at ne/</t< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:656233)
at e.exports (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:138966)
at ne/< (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:656185)
at <anonymous> (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:305276)
at S (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:305032)
at E (app://chooj.bananahackers.net/static/js/2.a9b495e7.chunk.js:1:305091)
2.a9b495e7.chunk.js:1:442833
This issue is only for animations regarding add/remove of Component or Elements.
Tasks:
If you've got any other idea, just comment on this issue and I'll add them to the list.
Currently only the latest 8 events are shown. The ability to paginate between events is essential.
https://discord.com/channels/472006912846594048/961975667455565865/1001178486649659463
Voice memos should be in the attachments section, or able to be activated via other key. NOT. THE. ENTER. KEY.
Would be quite useful if you added the option to open an image in fullscreen and be able to zoom in/out, download it, rotate it and etc.
Caught /sync error decryptCriticalEvents@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:65628:14
_callee9$@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:75157:29
tryCatch@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:1522:14
invoke@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:1741:22
["./node_modules/babel-preset-inferno-app/node_modules/regenerator-runtime/runtime.js"]/defineIteratorMethods/</prototype[method]@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:1575:16
asyncGeneratorStep@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:604:16
_next@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:626:9
Unhandled promise rejection TypeError: Object(...)(...) is null
Stack trace:
componentDidUpdate@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/bundle.js:1532:7
["./node_modules/inferno/dist/index.dev.esm.js"]/createDidUpdate/<@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:34081:5
callAll@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:31801:5
applyState@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:34739:5
rerender@app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:34723:7
at ["./node_modules/core-js/internals/host-report-errors.js"]/module.exports (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:9767:49)
at dispatchEvent (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:18197:121)
at ["./node_modules/core-js/modules/es.promise.js"]/onUnhandled/</result< (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:18211:16)
at ["./node_modules/core-js/internals/perform.js"]/module.exports (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:12014:14)
at ["./node_modules/core-js/modules/es.promise.js"]/onUnhandled/< (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:18208:16)
at <anonymous> (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:13168:8)
at run (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:13136:5)
at listener (app://4f7490a6-1e56-4e11-9081-c0969050cc77/static/js/0.chunk.js:13147:3)
It is not necessary to display the input field if you do not want to write. it would suffice to show a bottom bar, where you could start writing with softLeft and softRigth to display options for a message.
//bottom bar
let bottom_bar = function (left, center, right) {
document.querySelector("div#bottom-bar div#button-left").textContent = left;
document.querySelector("div#bottom-bar div#button-center").textContent =
center;
document.querySelector("div#bottom-bar div#button-right").textContent =
right;
if (left == "" && center == "" && right == "") {
document.querySelector("div#bottom-bar").style.display = "none";
} else {
document.querySelector("div#bottom-bar").style.display = "block";
}
};
I think it would be nice if we could send voice messages in a WhatsApp style manner.
To achieve this, first text should be rendered not an image.
Would be nice if messages had a label saying when they were sent.
for example:
the messages are only visible when they are in focus. maybe only the color black-> white changes
it is useful to use css vars, especially when changing the color scheme or introducing themes.
https://www.w3schools.com/css/css3_variables.asp
A slightly more refined UI would come in handy since now it's kinda inefficient. (Half of the text is just the name of the sender.)
steps to reproduce:
Expected behavior:
Device Model Number: 4052W
Works without issue on this device.
I'm able to log into my matrix.org account, but I can't log into my personal domain account - it seems the issue is that the login flow assumes that the homeserver URL is the same as the matrix ID URL.
https://github.com/farooqkz/chooj/blob/master/src/Login.js#L34
If your IDs are example.com domains (@user:example.com), but the actual server is matrix.example.org, this does not work.
An extra field to set these separately (defaulting to using the same) would enable logging into this supported configuration.
Thanks for all the work on this - excited to see KaiOS get a proper Matrix client!
since the input with the telephone is often tedious, the input via a qr-code reader would be helpful
I use this:https://github.com/strukturart/rss-reader/tree/master/application/assets/js/exclude-js
And let the user select any of them and open them
If u ask me that's among one of the most essential features u should add.
The current behavior:
Expected behavior:
I cannot install mooj app in my kaios phone please help me
Currently, when I click 'Repo' the app always leads me to https://github.com/farooqkz/chooj, even when a library or contributor is selected. It would be nice to have a link for each item in the list.
in the kaios discord server, the question often arises how the login works, i would find it useful if you could explain that in the readme file.
PASS [homeserver] [homerserver url] [username] [password]
With the build of the bananahacker store and GerdaOS I only get a blank screen starting the app. I am happy to provide more data. (non-programmer)
Chooj should have a guest-accessible Matrix room (it could be #chooj-git-updates) that has a log with the latest nightly builds. The app would check if its Git revision matches the latest version in that room and show a notification to the user if there is an update available.
Title is self-explanatory.
Not sure if I'm doing something wrong here, but I can't get past the "Please wait" screen after successful login. The only thing I can do is close the app.
This is on a Nokia 8110 4G
can you have zip file of chooj app for omnisd
a matrix test account would be helpful during the development phase. In the login area the input fields would already be pre-filled.
So that the user can realize the event has been read by whom.
Steps to reproduce:
I think it would be great if it was possible to listen to voice messages in chooj.
My idea is a چ
inside brackets. something like:
[چ]
Would be VERY useful if you could see when people are online or offline.
Right now the chat looks like IRC so I think it would be better if it got improved. Here's a crappy concept I made
(the "+" is for attaching files and sending emojis/gifs and the options menu can have specific settings for the chat. also please pretend the profile pictures in this concept are circular)
:
The current font does not display emojies
First of all, thank you for all your work. Login works perfectly room list loads completely.
Device: Nokia 6300 4G
KaiOS Version: 2.5.4
Is there support for encrypted messages? All my rooms have a "m.bad.encrypted" message and I am unable to send a messages. When new messages appear to be updating but I'm unable to enter my encryption key I usually type in when I login to a matrix client. Is there a way to push the key into the application?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.