Also accomplished was removal of redundant preview loading
and command markup is now stored as cljs data in app-db,
only being translated to RN components in subscriptions
This commit ensures messages are ordered correctly when participants join and
leave a group chat. Specifically, the last received message will appear last.
Previously the user and chat clock was queried and updated in an ad hoc manner.
With this change there are only two clock changes to keep track of:
Sending messages:
time = time+1;
time_stamp = time;
send(message, time_stamp);
Receiving messages:
(message, time_stamp) = receive();
time = max(time_stamp, time)+1;
(See https://en.wikipedia.org/wiki/Lamport_timestamps)
Note that this means we can get rid of all the non-message clock queries and
updates.
lein generate-externs need externs directory to be present
Create an externs directory with a gitignore file that only allows itself to
be commited
We are using simple optimizations for prod builds so this file is not used.
We have much more useful output with :simple optimizations if an error
happens, not just something like a.b.adsfas is undefined.
The difference in size between advanced and simple optimizations is only
about 300KB, and the RN packager also makes some magic with js after cljs
compiler anyway.
Transactions with 15 significant digits crashes the app due to something weird
going on in the Clojurescript -> web3 -> BigNumber chain. This fix converts the
number into a BigNumber before converting it into Ether.
When the input field includes an unmatched " in the input-text, there's a
mismatch between the parsed command-args and the length of the text field,
causing text selection to be out of bounds. By bounding the new selection to a
maximum of the input text, this is avoided.
A single unbalanced ')' shouldn't count as nesting, so ')' and 'a)' etc don't make the form ''.
console: add ad-hoc test script for suggestions
This creates a quicker feedback loop for testing console suggestions, as well as making sure we don't introduce suggestions regressions.
chat, parameter-box: hide parameter-box when {markup: null} is returned