Info

Open Website
WARNING! Clicking "Open Website" will launch a third-party app, use at your own risk. We do not recommend logging in with your main account.

Testing and Issues

You can test this app and submit issues during the testing period of the JavaScript Contest, Stage 2 contest.

Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.

Voting

21
by rating

Issues

Fair Quokka Mar 31 at 12:57
Transferred size: 1.8MB.

A giant leap forward compared to the submission in Stage 1. The contest task is almost completed, the app can send and view many media types. The work on polls and maps is in the early stages. The overall speed of the app is about average: choppy animations when clicking on a chat in the list; scrolling through chat history could be smoother and faster; the app becomes unresponsive when the stickers tab is opened for the first time. Initial loading speed and the speed with which chats appear when the page is reloaded both have plenty of room for improvements. Search allows to find all types of objects (global search, chats, contacts and messages), however there is a little issue with messages: the results for message search are returned under the title 'Global Search'.

Some imperfections identified during the testing:
– When logging in, the app sometimes returns SRP_ID_Invalid after the 2FA password is entered.
– The chats screen is not optimised for wide screen environments.
– Some chats cannot be loaded, console shows TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)).
– Media viewer missing navigation both via keys and on-screen arrows. There is no way to stop downloading files.
– When the right sidebar is expanded, it remembers the previously opened chat and does not show new content correctly when switching chats.
– The stickers tab is incomplete – there is no way to browse through all the added sets.
– Some icons are sometimes chaotically replaced with symbols.
– Layout issues when the app is viewed on big screens.

On the positive side, tons of extra features have been implemented:
– Working QR-login flow.
– People and Recents sections.
– Right-click context menu both for messages and chats (pinning / editing / deleting / archiving, etc).
– Archived Chats.
– Chat background switch (in early stages of development).
– Additional tabs for Shared Media.

UPD.

> Instant View implementation in early stages of development. +

UPD 2.

Transferred size on startup: 1.5MB
Transferred size after logging in: 1.8MB

UPD 3.

– Scaling issue causes the 'Next' button to appear partially outside of the screen on certain devices like MacBook 12" with zoom 100% in fullscreen mode.

– One column layout requires certain optimizations for cases when no chat selected.

UPD 4.

– The error with unloaded chats appears occasionally, it's fixed by reloading the page.

– Almost half of the transferred size is taken by flag sprites, which allowed this submission to support flags and emoji on Windows.
macOS 10.15.3, Chrome 80.0.3987.
20
Tall Tiger Mar 31 at 13:57
Hello! Thank you for fair review! I just wanted to say, there is one more cool feature implemented: links with Instant View support.
ShiSHcat 🐈 Feb 18 at 13:57
When trying to login (italian number i get "Error occoured"
Tall Tiger Feb 19 at 17:07
Thank you for reporting. Currently working on fix.
Can't login because my number is only 8 numbers and the NEXT button will only show if it's 9 numbers
Tall Tiger Feb 19 at 17:10
Thank you for your report! Sorry about that, such a simple fix for this oversight...
D
Deleted Account Feb 19 at 16:42
Fixed first round issues:
— Fixed issues with 2SV
— Login UI now renders immediately after page load
— Fixed some monkey animations
— The country field now supports typing, it's now possible to login without selecting the country

Second round features:
— Chat list gets updated when new message received
— Message input and sending
— Displaying and sending media, files, and links
— Displaying a ‘Shared media’ section for chats that includes photos and files (links and audio also supported!)
— Displaying stickers, sending emoji and stickers.
— Legendary camomile background
— Global search and messages search in chat
D
Deleted Account Feb 19 at 16:56
More detailed feature list:

Login:
— 2SV just works
— QR login supported
— Improved country search ("Uk" returns both Ukraine and United Kingdom)

All message types are supported:
— stickers (including laggy animated ones)
— animated emojis (try sending a single "❤️")
— photos
— videos
— albums (grouped photos and videos)
— round videos
— GIFs
— polls (voting feature is currently broken, sorry 😢)
— maps (live locations updates also working)
— games
— webpages
— contacts
— documents(w/ download & save to disc)
— audio (can be played, loads thumbnail and shows it in the play button)
— voice (w/ waveform bars)

Bonus: Voice and Audio messages, when played, will display in MediaSession tab (if supported)
Tall Tiger Feb 19 at 16:57
Message input:
— Sending voice messages is supported (TDesktop refuses to play them though...)
— Supports all types of formatting
— Supports shortcuts (open context menu on the input to see them all)
— Supports link creation with Ctrl+K or corresponding field in the context menu
— Emoji, stickers and GIF sending.
— You can attach multiple photos/files to be sent as an album
— Ability to paste photo is also supported
— It's possible to create a poll
— Double click any message in chat or select "Reply" in the context menu to reply to it
— Hidden, if you don't have permissions in channel

Settings:
— List of background colors is available to set
— You can upload your background image (GIFs supported!)
Sent from Samsung Smart Fridge
D
Deleted Account Feb 19 at 16:58
Message list:
— Dialog title, online status, avatar, etc. are dynamically updated
— Online members counter for private groups
— Date separators
— Replies and forwarded messages are supported
— All message entities are supported (including nested)
— Messages from the same user in short periods of time are grouped
— Fancy "tails" on media-only messages
— All messages are updated if changed
— The pinned message is supported and takes you to the message in the chat upon click, pinning from context menu is also supported
— Some optimizations on out-of-viewport messages to improve scrolling

Updates:
— Updates are applied sequentially with appropriate validations in different queues for channel and general states.
— If a hole was detected, the difference will be fetched.
Tall Tiger Feb 19 at 16:58
Virtual DOM:
— implemented from scratch
— uses the only currently rendered VNode and Real Node to make a difference and patch (makes operations with Real DOM safe and less memory usage)
— component-like architecture, which suits very well for an application like Telegram

Global Search and Message search:
— "Lazy" input
— Sections are updateable
— Clicking a result will take you to the message

Other:
— Instant View pages are supported
— Dialogs are being updated when pinned / archived / marked as unread / new message is available / chat deleted / user left or joined a chat
— Typing status
— Unread messages counter
— Avatar updates
— MTProto layer now in worker
— Apple emojis are displayed on any platform
— App automatically reconnects if socket got closed
Captain Awesome Feb 19 at 18:09
It says that a lot has been done, I really wanted to check your work.

Overall - Chrome Part1:
No media opening animation
Media in Forwarded messages not displaying, its written “Photo”
Messages cannot be edited
Messages deletion does not work
The message loader does not show the download progress
No default video support, no default player, selfie circle progressbar goes jerky
No message caching
You can’t switch between media left and right, there are also no arrows
The file download loader also has no download status
Chat too lagging when scrolling up 4-5 times
Chrome
Captain Awesome Feb 19 at 18:09
Overall - Chrome Part2:
Stickers answer does not work
The application is too slow, especially if you scroll through the media in the right bar
No virtualizations
If you open a private search, then you can’t close it and go to the right bar, page refresh helps
If you click on the nickname from the group, then the right bar will no longer change to other dialogs, you need to refresh the page
Photo message too wide in groups/channels
Chrome
Captain Awesome Feb 19 at 18:10
Safari:
Scrolling in the contest channel lags, messages flashing, do not appear immediately
When reading a dialogue or entering a new message, chat messages disappear on their own
No bottom bar of stickers
When you open a group or saved messages, the dialog again jumps up automatically
Curved progress bar in the circle video, climbs out of the scope in the safari
Audio undefined
Safari macOS Mojave
Tall Tiger Feb 19 at 19:44
Thank you for testing the client on Safari! There was a try to find Mac with the latest update installed, but it failed. Looks like the bug with scrolling caused by IntersectionObserver behavior on Safari.
Captain Awesome Feb 19 at 18:12
You really need to do caching + virtualization, it would help your application to work without lags
Safari macOS Mojave
Captain Awesome Feb 19 at 18:20
*Media in Forwarded messages not displaying, its written “Photo”

I want to correct this item for REPLIED messages
Not forwarded. Sorry
Safari macOS Mojave
Giant Parrot Feb 20 at 07:43
Nice and clean work. Good job!

Do you virtualize message history scroll view?

Looks like the app creates new auth key every time. Got an unregistered error after page reload. Google Chrome.

You should check your 2FA algo and refresh SRP_ID after wrong pass entry. Possible workaround:

if (bkgx.lesser(BigInt.zero)) bkgx = bkgx.add(p);
macOS, Chrome
Tall Tiger Feb 20 at 17:53
Thank you for testing the client!
Messages virtualization is nominally exists (it uses IntersectionObserver to test whether a node is in the viewport or not, and then changes visibility property.) Yes, not the best approach, but there was no time to rewrite it at the end of contest.
Looks like sometimes auth key from localStorage is not synchronized with worker and as result - being created again. Many thanks for 2FA bug :)
Nobody added any issues yet...