Commit graph

3209 commits

Author SHA1 Message Date
Bruno Windels ffece4f357 move some validation of into session backup 2022-01-25 18:48:03 +01:00
Bruno Windels 8f4e3c62ce add hs endpoint for backup keys upload 2022-01-25 18:47:42 +01:00
Bruno Windels 290aaad63a add sessionsNeedingBackup store 2022-01-25 18:47:27 +01:00
Bruno Windels a3e294bb60 small cleanup 2022-01-25 18:45:39 +01:00
Bruno Windels 5d87d8bde3 change store.get return type when no value is found to undefined
IDBRequest.result is undefined according to the official TS type decls.
2022-01-25 18:43:44 +01:00
Bruno Windels 993a86ddb2 convert SessionBackup to typescript and pass in keyloader 2022-01-20 11:16:08 +01:00
Bruno Windels a4d924acd1 make KeyLoader use proper olm types 2022-01-20 11:15:48 +01:00
Bruno Windels e6fee75952 remove enterkeyhint attribute as it prevents entering newlines on android
on Android, by default (without the above attribute set to "send"), you
press enter twice to submit a field. The first time, enter, Android
seems to prevent sending logic by setting the key property on the event
to "Unidentified", but does insert a newline. The second consecutive enter,
it will be set to "Enter" and we'll send.

Having enterkeyhint to send will disable all of that. So we're going with
the default behaviour, which, IIRC, was a bit annoying on iOS as well.
2022-01-18 09:42:01 +01:00
Bruno Windels b0e8506cb5 ensure images load in reply preview in timeline 2022-01-17 16:48:36 +01:00
Bruno Windels f379bf2341 ensure images load in reply preview in composer 2022-01-17 16:48:17 +01:00
Bruno Windels 57bf730241 mention it's better to not close the app 2022-01-17 16:33:57 +01:00
Bruno Windels 4bc421527f also add extra classes to legacy spinner 2022-01-17 16:31:13 +01:00
Bruno Windels 05d23cc745 hook up logout view 2022-01-17 16:31:02 +01:00
Bruno Windels 4c5b884af7 create and hook up logout viewmodel, on /logout/<id> path 2022-01-17 16:30:22 +01:00
Bruno Windels c6c1d3b3d8 refactor logout in client so we don't need a fully loaded session
instead, we pass the session id in
this will make it easier to first dispose the client when leaving the
/session/<id> and just creating a client without fully loading it
to log out. This way sync is already not running anymore.
2022-01-17 16:29:01 +01:00
Bruno Windels 164d72830f create subclass for inline template views (e.g. without sub classing) 2022-01-17 16:25:48 +01:00
Bruno Windels 412db33c36 click here labels are so nineties 2022-01-14 19:18:12 +01:00
Bruno Windels 000c8b27c3
Merge pull request #637 from vector-im/bwindels/timeline-readme
add basic readme for updates in the timeline
2022-01-14 19:16:25 +01:00
Bruno Windels a8a8355ea4 fix unit test 2022-01-14 19:05:53 +01:00
Bruno Windels 3d00881508 don't look in remoteEntries when already found 2022-01-14 19:05:30 +01:00
Bruno Windels 7197e5427f don't emit an update when the context entry is loaded sync
also load context entries in parallel
2022-01-14 18:16:52 +01:00
Bruno Windels 3243ce2a90 fix unit test that failed after it finished
crashing the runner on node 16
2022-01-14 18:15:46 +01:00
Bruno Windels 65929194b0 fix lint warnings 2022-01-14 16:23:55 +01:00
Bruno Windels 184a16a194 also define param 2022-01-14 16:23:12 +01:00
Bruno Windels 8201a85c47 ensure these have a fn for tilesCreator 2022-01-14 16:20:38 +01:00
Bruno Windels 2321228981 use this._entry here (once updated by super.updateEntry) 2022-01-14 16:20:14 +01:00
Bruno Windels 5f99c2360c also try to create replyTile from ctor just in case update doesn't come 2022-01-14 16:12:43 +01:00
Bruno Windels ad335d5088 pass in tilesCreator everywhere, although not needed right now 2022-01-14 16:06:29 +01:00
Bruno Windels 1ea4a347e2 encode url components 2022-01-14 15:53:17 +01:00
Bruno Windels b578f4ac84 actually add LocationView 2022-01-14 15:50:19 +01:00
Bruno Windels 052ff02571 move TileView type too so we don't have to repeat imports 2022-01-14 15:47:22 +01:00
Bruno Windels 3c59004e72 Merge branch 'master' into threading-fallback-reply 2022-01-14 15:43:24 +01:00
Bruno Windels 17ebc8a066
Merge pull request #611 from vector-im/threading-fallback-relation
Threading fallback - PR 1 - Link events with their related event
2022-01-14 15:35:27 +01:00
Bruno Windels 18a76025c7 add location tile view so we don't throw when a location is shared 2022-01-14 15:27:46 +01:00
RMidhunSuresh dac2d5e685 Pass everything down into updateEntry 2022-01-14 19:26:23 +05:30
RMidhunSuresh 0af9f10166 don't store tilesCreator 2022-01-14 19:11:40 +05:30
RMidhunSuresh d18f4d341c store replyFlags on this 2022-01-14 18:31:22 +05:30
Bruno Windels 1f9be978b7 load image in timeline from when it is partially visible 2022-01-14 13:57:11 +01:00
RMidhunSuresh 41fffdf155 Remove even more stray new lines 2022-01-14 18:17:49 +05:30
RMidhunSuresh 51215fda16 Rename tileCreator -> tilesCreator 2022-01-14 18:17:49 +05:30
RMidhunSuresh d639e169ec Move tileCreator to BaseMessageTile 2022-01-14 18:17:49 +05:30
RMidhunSuresh e1b9b1161d Split ifs and remove ?. abuse 2022-01-14 18:17:49 +05:30
RMidhunSuresh 846e637716 Remove stray newline 2022-01-14 18:17:49 +05:30
RMidhunSuresh 58dd25b58d track reply-tile 2022-01-14 18:17:49 +05:30
RMidhunSuresh a77b9d9027 Move update logic to BaseMessageTile 2022-01-14 18:17:49 +05:30
RMidhunSuresh ef5a377bc6 Hide reply option on pending tile 2022-01-14 18:17:49 +05:30
RMidhunSuresh 951af49e04 Emit change on reply tile 2022-01-14 18:17:49 +05:30
RMidhunSuresh 455b747a1c Don't check param for reply 2022-01-14 18:17:49 +05:30
RMidhunSuresh 28a534ee49 Fix reply nesting 2022-01-14 18:17:49 +05:30
RMidhunSuresh f9f7f6cc6f Fix test 2022-01-14 18:17:49 +05:30
RMidhunSuresh 7f91653208 Rename replyTextTile -> replyTile 2022-01-14 18:17:49 +05:30
RMidhunSuresh 086e0c0320 Inline methods 2022-01-14 18:17:49 +05:30
RMidhunSuresh 273c44424f Throw if viewClass returns undefined 2022-01-14 18:17:49 +05:30
RMidhunSuresh b134fa7409 Format swtich case properly 2022-01-14 18:17:49 +05:30
RMidhunSuresh fee6447e22 Don't call render() 2022-01-14 18:17:49 +05:30
RMidhunSuresh e99cd41ed0 Change check 2022-01-14 18:17:49 +05:30
RMidhunSuresh af5a008d0f Move links to vm 2022-01-14 18:17:49 +05:30
RMidhunSuresh 27a9f5dd02 Use DOMPurify to remove mx-reply 2022-01-14 18:17:49 +05:30
RMidhunSuresh cfefe6962a Remove stray space 2022-01-14 18:17:49 +05:30
RMidhunSuresh 88f9ad09a2 Move method as local function 2022-01-14 18:17:49 +05:30
RMidhunSuresh 0ae3c60d6d Remove .js file from rebase 2022-01-14 18:17:49 +05:30
RMidhunSuresh c34d574385 No need to export renderPart 2022-01-14 18:17:49 +05:30
RMidhunSuresh 2a124d4195 simplify css 2022-01-14 18:17:49 +05:30
RMidhunSuresh e352867f5a Remove unnecessary ctor 2022-01-14 18:17:49 +05:30
RMidhunSuresh f645065db7 Remove unused getter 2022-01-14 18:17:49 +05:30
RMidhunSuresh d69059de68 Use different flag 2022-01-14 18:17:49 +05:30
RMidhunSuresh 0c3f16e5f6 Use 's' flag with regex if available 2022-01-14 18:17:49 +05:30
RMidhunSuresh cba044eff1 Remove comment 2022-01-14 18:17:49 +05:30
RMidhunSuresh dee22f7120 Implement render flags 2022-01-14 18:17:49 +05:30
RMidhunSuresh 46b69b3873 Render error 2022-01-14 18:17:49 +05:30
RMidhunSuresh 687aa5a7e3 Remove dead code 2022-01-14 18:17:49 +05:30
RMidhunSuresh 4df3654166 Prevent reply previews from being nested 2022-01-14 18:17:49 +05:30
RMidhunSuresh 4d63b41127 Make reply preview flush left 2022-01-14 18:17:49 +05:30
RMidhunSuresh 1b9f970d7f WIP: Render the whole view instead of messageBody 2022-01-14 18:17:49 +05:30
RMidhunSuresh 7f1b3e25e8 Use t instead of tag 2022-01-14 18:17:49 +05:30
RMidhunSuresh f01d5d95d9 Reuse code from timeline view 2022-01-14 18:17:49 +05:30
RMidhunSuresh 89d6968139 Show decryption error as well 2022-01-14 18:17:49 +05:30
RMidhunSuresh 2773642406 No need to handle redaction specially 2022-01-14 18:17:49 +05:30
RMidhunSuresh 13cba84445 Remove mapSideEffect 2022-01-14 18:17:49 +05:30
RMidhunSuresh bb45d0eae9 Render non-text messages as well 2022-01-14 18:17:49 +05:30
RMidhunSuresh df22db256b No need to pass tileCreator as argument 2022-01-14 18:17:49 +05:30
RMidhunSuresh e0dc853d74 Fill matrix.to links 2022-01-14 18:17:49 +05:30
RMidhunSuresh 91912bdb8d Create tile using tileCreator 2022-01-14 18:17:49 +05:30
RMidhunSuresh 54004eef4d Integrate into update mechanism 2022-01-14 18:17:49 +05:30
RMidhunSuresh aa3bb9c6ef Remove allowReplies 2022-01-14 18:17:49 +05:30
RMidhunSuresh 73c5562fd3 Remove code from BaseTextTile 2022-01-14 18:17:49 +05:30
RMidhunSuresh 4a12acf157 Improve error code 2022-01-14 18:17:49 +05:30
RMidhunSuresh 67da746b48 Render error 2022-01-14 18:17:49 +05:30
RMidhunSuresh 545aae31d9 WIP 2022-01-14 18:17:49 +05:30
RMidhunSuresh 3aa29cfc65 Do not remove reply preview 2022-01-14 18:17:49 +05:30
RMidhunSuresh 99f4eb6843 Minimize manual dom manipulation where possible 2022-01-14 18:17:49 +05:30
RMidhunSuresh 61f4d0719f Refactor code 2022-01-14 18:17:49 +05:30
RMidhunSuresh d6233e7c77 Render static avatar 2022-01-14 18:17:49 +05:30
RMidhunSuresh 540aa6c546 Use contextEntry and pass avatarUrl 2022-01-14 18:17:49 +05:30
RMidhunSuresh 31573b3599 Render reply 2022-01-14 18:17:49 +05:30
RMidhunSuresh e88ee31991 Add getter for reply body 2022-01-14 18:17:49 +05:30
RMidhunSuresh f6cf3b378b Strip reply fallback 2022-01-14 18:17:49 +05:30
RMidhunSuresh 35a13842af Implement context endpoint 2022-01-14 18:17:49 +05:30
RMidhunSuresh 65f957f023 WIP 2022-01-14 18:17:49 +05:30
R Midhun Suresh 4fb0a84d0a
Return property from super
Co-authored-by: Bruno Windels <brunow@matrix.org>
2022-01-14 18:16:38 +05:30
RMidhunSuresh 30b8e5b5ea use withReply 2022-01-14 18:15:26 +05:30
RMidhunSuresh 8cd430ac07 Improve test logic 2022-01-14 17:48:25 +05:30
RMidhunSuresh 75012eda9c Fix tests 2022-01-14 17:28:31 +05:30
RMidhunSuresh e9a49fdf74 Use hsApi mock 2022-01-14 17:07:06 +05:30
RMidhunSuresh 315acf2fbc Remove dead code from test 2022-01-14 16:54:16 +05:30
RMidhunSuresh 310790c84e Use mock storage 2022-01-14 16:51:06 +05:30
RMidhunSuresh 277638b107 Override methods in NonPersistedEventEntry
This will prevent redactions to entries fetched from hs showing "message
is being redacted" and will instead show "message is redacted"
2022-01-14 16:15:16 +05:30
RMidhunSuresh b238357c53 Use emitUpdateForEntry 2022-01-14 16:14:42 +05:30
RMidhunSuresh 4fa32bac2f check only in remoteEntries 2022-01-14 16:14:06 +05:30
Bruno Windels 58f2192a7e add basic readme for updates in the timeline 2022-01-14 11:13:21 +01:00
RMidhunSuresh 3c28ee1adf Remove unused getter 2022-01-13 21:05:18 +05:30
RMidhunSuresh 2c4610c132 add param to emitUpdateForEntry 2022-01-13 19:20:37 +05:30
RMidhunSuresh 239d16747d Clean test code; try not to peek into internals 2022-01-13 19:14:28 +05:30
RMidhunSuresh 764541d3ca Remove unused method 2022-01-13 18:32:18 +05:30
RMidhunSuresh ca1831fef6 update contextForEntries 2022-01-13 14:38:05 +05:30
RMidhunSuresh 2f4c0623d0 Restore earlier name 2022-01-12 19:20:32 +05:30
RMidhunSuresh ed88184757 Remove statement 2022-01-12 19:14:38 +05:30
RMidhunSuresh d0f7570f5e Fix tests 2022-01-12 18:44:17 +05:30
RMidhunSuresh acafae7d3a Implement offline support for context entries 2022-01-11 20:58:27 +05:30
RMidhunSuresh a59bf7c002 Fix looking in allEntries 2022-01-11 20:57:29 +05:30
RMidhunSuresh 5c1813888c Check in all entries for context 2022-01-11 14:57:22 +05:30
RMidhunSuresh 73733ce145 Guard entry from storage being processed by method 2022-01-11 14:49:59 +05:30
RMidhunSuresh bf6dfcfcad update comment 2022-01-11 13:28:35 +05:30
RMidhunSuresh f605608098 getTrackedEntry -> findLoadedEventById 2022-01-11 13:20:42 +05:30
RMidhunSuresh 31a8227e53 stylistic change 2022-01-11 13:14:13 +05:30
RMidhunSuresh 62dcb61536 Rename updateEntry -> emitUpdateForEntry 2022-01-11 13:11:50 +05:30
RMidhunSuresh fda211e7b3 Remove dead code 2022-01-11 13:10:40 +05:30
RMidhunSuresh 63b6564f70 Pass prop change 2022-01-11 11:54:41 +05:30
RMidhunSuresh 93bbeee400 Don't pass relatedEntry in param 2022-01-11 11:49:06 +05:30
RMidhunSuresh 66fa8d84a7 Make setAsContextOf private 2022-01-10 18:51:12 +05:30
RMidhunSuresh 091b55a265 Rename method and add comment 2022-01-10 18:05:33 +05:30
RMidhunSuresh ec8f6e8e0a use addLocalRelation 2022-01-10 12:58:45 +05:30
RMidhunSuresh 7ad73bb453 Move check down 2022-01-07 19:56:31 +05:30
RMidhunSuresh 3fecce6fe6 Fix tests 2022-01-07 19:39:51 +05:30
RMidhunSuresh 9d161a0bcf Refactor + put redaction in NonPersistedEventEntry 2022-01-07 19:38:57 +05:30
RMidhunSuresh 8cc04e4c25 Keep calls internal to class 2022-01-07 17:50:36 +05:30
RMidhunSuresh 0a09a50ab9 Move line into if 2022-01-07 17:29:17 +05:30
RMidhunSuresh c6484f1eac Replace entry in contextEntryNotInTimeline 2022-01-07 17:11:42 +05:30
RMidhunSuresh cfbb6d4250 Add explaining comment 2022-01-06 15:37:58 +05:30
RMidhunSuresh 7adce08eee add more jsdoc comments 2022-01-06 15:33:00 +05:30
RMidhunSuresh f76217dcce Change method name 2022-01-06 15:14:13 +05:30
RMidhunSuresh a2ab36480f Add jsdoc comment 2022-01-06 15:02:44 +05:30
RMidhunSuresh 90c9018aa4 Update comment 2022-01-06 12:07:10 +05:30
RMidhunSuresh 595deb3a3d Also copy over contextEntry from otherEntry 2022-01-06 12:07:10 +05:30
RMidhunSuresh 78f97c6532 Remove await from tests 2022-01-06 12:07:10 +05:30
RMidhunSuresh 9f1764c325 Update comment 2022-01-06 12:07:10 +05:30
RMidhunSuresh 4418700589 Add test for move code 2022-01-06 12:07:10 +05:30
RMidhunSuresh d2c7eec8e0 No need to delete before update on map 2022-01-06 12:07:10 +05:30
RMidhunSuresh 41cf6460d0 Remove dead code 2022-01-06 12:07:10 +05:30
RMidhunSuresh 8ec75ce4bb Rename methods 2022-01-06 12:07:10 +05:30
RMidhunSuresh a060d54468 Make tests pass 2022-01-06 12:07:10 +05:30
RMidhunSuresh 3fe824dbd1 Propagate updates 2022-01-06 12:07:10 +05:30
RMidhunSuresh 7ef79c92f5 Remove entry from map 2022-01-06 12:07:10 +05:30
RMidhunSuresh 2d5bb82077 Fix bug 2022-01-06 12:07:10 +05:30
RMidhunSuresh 6f8001bd82 Add tests 2022-01-06 12:07:10 +05:30
RMidhunSuresh 640a3fb9fa Check if contextEvent was found 2022-01-06 12:07:10 +05:30
RMidhunSuresh 05d2defa2d Rename fetchedEntries --> contextEntriesNotInTimeline 2022-01-06 12:07:10 +05:30
RMidhunSuresh c3bef6d4d2 Rename dependents --> contextForEntries 2022-01-06 12:07:10 +05:30
RMidhunSuresh d1818d2a57 Reuse code in getOrLoadEntry 2022-01-06 12:07:10 +05:30
RMidhunSuresh f5fadf700e Move event to remoteEntries if needed 2022-01-06 12:07:10 +05:30
RMidhunSuresh d924dbb723 Add explaining comment 2022-01-06 12:07:10 +05:30
RMidhunSuresh 544dca3b18 Use _updateEntry 2022-01-06 12:07:10 +05:30
RMidhunSuresh 39f68e8c2f Refactor out magic string 2022-01-06 12:07:10 +05:30
RMidhunSuresh 5c0bbdd4c8 Move methods into Timeline 2022-01-06 12:07:10 +05:30
RMidhunSuresh 51b7b21082 Implement readById() in TimelineReader 2022-01-06 12:07:10 +05:30
RMidhunSuresh 0da94e51e0 Use map and fetch from Map if available 2022-01-06 12:07:10 +05:30
RMidhunSuresh 4a6293dcdc Made code more readable 2022-01-06 12:07:10 +05:30
RMidhunSuresh 287212956b findAndUpdate instead of update 2022-01-06 12:07:10 +05:30
RMidhunSuresh 7a91dd9595 Improve comment 2022-01-06 12:07:10 +05:30
RMidhunSuresh 4a81e06e96 Track fetched entries for redactions 2022-01-06 12:07:10 +05:30
RMidhunSuresh ea89c272b9 Support redaction changes in remoteEntries 2022-01-06 12:07:10 +05:30
RMidhunSuresh c690de9f7b Support decryption on entries fetched from hs 2022-01-06 12:07:10 +05:30
RMidhunSuresh 7cc3d4b91a Emit updated entries 2022-01-06 12:07:10 +05:30
RMidhunSuresh 053dcf39a5 Use NonPersistedEventEntry 2022-01-06 12:07:10 +05:30
RMidhunSuresh d191b327c6 Change comment 2022-01-06 12:07:10 +05:30
RMidhunSuresh 06864a65b7 Add contextEventId 2022-01-06 12:07:10 +05:30
RMidhunSuresh 764e38f8c9 Use 'context' instead of 'related' 2022-01-06 12:07:10 +05:30
RMidhunSuresh 696980aca4 Parse display name and avatar of event 2022-01-06 12:07:10 +05:30
RMidhunSuresh 0c42f53a2f Implement context endpoint 2022-01-06 12:07:06 +05:30
RMidhunSuresh e901142661 await on loading related events 2022-01-06 11:59:58 +05:30
RMidhunSuresh 2265d198a6 Formatting fix 2022-01-06 11:59:58 +05:30
RMidhunSuresh b753507b8d WIP 2022-01-06 11:59:58 +05:30
Bruno Windels c9d11d6f19 missing otk count does not mean 0 but rather no change 2022-01-05 14:26:15 +01:00
Bruno Windels aabfbf507e typo in comments 2022-01-05 14:25:42 +01:00
Bruno Windels 13e77636a9 export paths from vite.js as required by Platform, reorder ctor params
make it easier for SDK users
2021-12-22 17:48:08 +01:00
Bruno Windels 6247ced7b7 dont export, the ctor of these classes is not a public API 2021-12-22 17:24:58 +01:00
Bruno Windels ba27d20b24 only pass platform into Client
simplifying the API for SDK
2021-12-22 17:20:37 +01:00
Bruno Windels 9238961992 cache olm and olm worker promise inside Platform
as prep to call them every time a Client is created
2021-12-22 17:19:10 +01:00
Bruno Windels fe26f48c47 rename SessionContainer to Client 2021-12-22 17:09:52 +01:00
Bruno Windels b48280905e include path/vite in sdk bundle 2021-12-22 16:31:19 +01:00
Bruno Windels c921091957 run two vite builds for the sdk build, assets & js separately 2021-12-22 16:31:19 +01:00
Bruno Windels ceb0b5793b somewhat works, but not everything we need
it's missing still:
 - non-css assets like the download sandbox and the olm worker aren't written for some reason
 - the es and cjs lib.js entry points end up in assets with a hash for some reason
 - in these entry files, apart from our exports, something is adding an import statement for every import that was found in the tree
 - all assets are hashed even though the config tries to disable that
 - tests are included
2021-12-22 16:31:18 +01:00
Bruno Windels 363cd5b046 include css 2021-12-22 16:31:18 +01:00
Bruno Windels dacdc1aec6
Merge pull request #597 from vector-im/ts-conversion-matrix-ssss
Convert matrix/ssss to typescript
2021-12-09 18:54:25 +01:00
Bruno Windels 21a41e192b Merge branch 'master' into ts-conversion-matrix-net 2021-12-09 18:49:54 +01:00
Bruno Windels 5ea29297cc fix typescript errors 2021-12-09 18:44:44 +01:00
Bruno Windels 8d315f2741 Merge branch 'master' into bwindels/log-signature-failure 2021-12-09 18:34:36 +01:00
Bruno Windels 0ec86b6dc1 Merge branch 'master' into bwindels/vite-mvp 2021-12-09 18:07:17 +01:00
Bruno Windels d9ff4a8484 sw.js is not part of the sdk yet, so just put the path in index.html 2021-12-09 17:12:08 +01:00
Bruno Windels 62827b92b7 implement placeholder replacement so it still works with minification 2021-12-09 16:37:31 +01:00