Commit Graph

599 Commits

Author SHA1 Message Date
Felicio Mununga 4ff9841ead
add `libp2p` connection listeners 2022-11-27 23:54:43 +01:00
Felicio Mununga 634ec4eeca
move `wakuDisconnectionTimer` to constructor 2022-11-27 22:52:24 +01:00
Felicio Mununga e20df9b0bb
change `wakuDisconnectionTimer` to handle light protocols 2022-11-27 17:45:56 +01:00
Felicio Mununga c925efbaf5
dispatch `FAIL`
- stops client on failed initialization
- displays failed message
2022-11-27 17:07:58 +01:00
Felicio Mununga 0346b94250
specify protocols in waitForRemotePeer 2022-11-17 02:47:57 +01:00
Felicio Mununga c8cd9d45a9
set pingKeepAlive to aid in connection recovery 2022-11-16 23:45:42 +01:00
Felicio Mununga 2d363453a3
Use WakuLight 2022-11-15 01:47:56 +01:00
Felicio Mununga 89e3e85bf4
Use MessageV1 type 2022-11-15 00:59:16 +01:00
Felicio Mununga fc0e2305e8
Install `js-waku@^0.30.0` 2022-11-14 23:06:34 +01:00
Pavel Prichodko d4ced925e1
v0.1.1 2022-10-09 18:58:52 -05:00
Pavel Prichodko 27ff048970
fix account restoration 2022-10-09 18:26:11 -05:00
Pavel Prichodko 11e6831201
improve initials centering 2022-10-09 18:18:43 -05:00
Pavel Prichodko bbe3463d94
fix avatar sizes 2022-10-09 17:48:12 -05:00
Pavel Prichodko e1b300ed2d
hide identicon for message owner 2022-10-09 17:47:54 -05:00
Pavel Prichodko e958b1df01
allow interaction only if account is member 2022-10-09 17:47:34 -05:00
Pavel Prichodko 79b09cf005
v0.1.0 2022-10-07 22:09:04 +02:00
Pavel 190011d97e
Fetch history (#292) 2022-10-07 21:30:22 +02:00
Pavel c39b84a1e5
Add persistence of throwaway accounts (#315)
* add account membership status

* add storage and account listeners

* update membership

* update ui

* update membership status value

* use boolean instead of undefined

* rename callback function

* remove noise

* listeners -> callbacks

* update storage

* lint issue workaround

* update account storing
2022-10-07 20:05:09 +02:00
Felicio Mununga ca0d508f7f
Add Activity Center (#312)
* add activityCenter.ts

* use activityCenter.ts

* add "Launch via Vite Node"

* remove comments

* add comments

* type hook

* reverse order of notifications

* remove `activityCenter` from `provider.tsx`

* set `count`'s default value

* ref `ChatMessage` by id instead of object reference

* Revert "ref `ChatMessage` by id instead of object reference"

This reverts commit 1284386d22.

* add badge `totalCount`

* add `@radix-ui/react-tabs`

* skip non-mentions

* update comments

* add `member` to `ChatMessage`

* add `MarkAllAsReadIcon`

* add `40` avatar variant

* add `initialsCount` to `Avatar`

* add `TinyReplyIcon`

* use `Popover`

* move components

* move components

* wip

* ignore clicks on tags themselves

* add root route

* use chat display name

* fix icons

* use `asChild` for tabs

* remove `vertical`

* use `value` and `onValueChange`

* use active state with `compoundVariants`

* use `&[data-state]...` instead of `compoundVarinats` and `active` prop

* fixup `chatDisplayName`

* postion badge

* prevent dragging of the whole page in either direction

* add tooltips

* change message's background on hover

* change navigation style

* add `category` to `removeNotifications`

* prevent deleting of messages that are not mentions or replies from activity center

* show members sidebar by default

* fix members layout

* add comment

* add `date-fns`

* add date separator

* comment

* move `Badge` to `/system`

* move `Tag` to `/system`

* comment `Text`

* replace `Link` for `useNavigate`

* move `Activity` to `/system`

* comment

* export `Notification`

* update fixtures in `activityCenter`

* remove fixtures

* movet `Tabs` to `/system`

* update `mapChatMessage`

* update `.eslintignore`

* resolve typecheck errors

* update `.prettierignore`

* resolve formatting error

* upgrade tooltip

* use `scrollIntoView`

* remove comments

* rename `close` to `onNavigateChange`

* revert scrolling changes in `/member-sidebar`

* rename members label from `Online` to `All`

* rename `initialsCount` and use union

* rename `MarkAllAsReadIcon`

* rename `selected`

* fix typo

* revert formatting

* close `Avatar`

* use `css` where possible without changing elements

* extract props types to interfaces

* rename `ActivityCenter`

* remove `overflow`

* replace `style` for not yet stitched elements

* revert global style changes
2022-10-07 20:02:17 +02:00
Felicio Mununga 05b7306a25
Move global/base styles and remove `styled-components` (#314) 2022-10-05 16:29:36 +02:00
Felicio Mununga 104f2670c4
Add predefined nodes (#313) 2022-10-05 16:28:54 +02:00
Felicio Mununga a951c8e95c
Install `js-waku@^0.25.0` (#307)
* install `js-waku@^0.24.0`

* install `js-waku@^0.25.0`

* resolve some breaking changes

* add timeout

* upgrade `eslint-import-resolver-typescript`

* add `process.env.VITEST` condition

* increase timeout

* fixup

* ignore `emitSelf`

* replace `parcel` with `vite`

* update `.gitignore`

* change `dev` npm script

* fix favicon href

* load `.env` files

* remove 'alias"

* add `preview`

* upgrade vite

* set `target`s in `vite.config.ts`

* upgrade `@vitejs/plugin-react`

* remove comment

* Update package.json

* Update vite.config.ts
2022-09-16 16:27:47 +02:00
Felicio Mununga 45f0c9f706
Indicate unread chats and mentions (#303)
* add activityCenter.ts

* use `process.env.VITEST`

* add `isMention` and `isReply`

* use activityCenter.ts

* fix initial `count`

* add `Badge` component

* add "Launch via Vite Node"

* remove comments

* remove `console.log`

* add comments

* type hook

* reverse order of notifications

* remove `activityCenter` from `provider.tsx`

* set `count`'s default value

* ref `ChatMessage` by id instead of object reference

* Revert "ref `ChatMessage` by id instead of object reference"

This reverts commit 1284386d22.

* use `isAuthor`
2022-09-16 15:49:20 +02:00
Felicio Mununga e56c6519e0
fix community fetching on `js-waku`'s abort 2022-09-05 18:03:17 +02:00
Pavel Prichodko 81f2950c19
fix optional path match 2022-08-23 18:13:25 +02:00
Pavel 5a081466fe
Add sorting of chats (#302)
* add sorting of chats

* simplify sidebar structure

* move categories at the bottom

* fix duplicate fields

* disable context menu for chat group

* rename chat group to chat category

* fix category font color

* show active chat even when category closed
2022-08-23 15:48:10 +02:00
Pavel Prichodko 1b50001204
fix passing of options 2022-08-23 14:59:55 +02:00
Pavel 1f567e189a
Use built-in PBKDF2 implementation for browsers (#295)
* add pbkdf2 browser implementation

* use webcrypto in pbkdf2

* rename pbkdf2 file

* use pbkdf2

* add changeset

* revert rename

* remove browser field from package.json

* use `resolve.alias` for pbkdf2 if test

* use `mode` in vite.config.ts

Co-authored-by: Felicio Mununga <felicio@users.noreply.github.com>
2022-07-19 17:45:29 +02:00
Felicio Mununga e68ea9de5a
Hide unimplemented context menus (#299) 2022-07-19 12:51:52 +02:00
Felicio Mununga b57edc9921
Get peer based on environment (#294)
* get peer based on environment

* add changeset

* default to prod
2022-07-19 10:19:46 +02:00
Felicio Mununga 052154aa60
set `"access": "public"` for publishing 2022-07-06 15:37:35 +02:00
Pavel Prichodko 8c83ddb6da
remove unnecessary configuration 2022-07-01 15:22:26 +02:00
Pavel Prichodko f4f15804f0
remove relative paths from status-react 2022-07-01 15:20:34 +02:00
Pavel Prichodko b2119719e0
fix typechecking errors in status-react 2022-07-01 15:20:34 +02:00
Pavel Prichodko c14cba9bb3
export Reactions type from status-js 2022-07-01 15:20:23 +02:00
Pavel Prichodko eb604a4717
remove theme context in favour of hook 2022-07-01 14:56:06 +02:00
Felicio Mununga 3ef824da55
v0.1.0-alpha.2 2022-06-30 17:03:12 +02:00
Felicio Mununga 655a1a9e44
send request on creating account 2022-06-30 16:34:50 +02:00
Felicio Mununga 7381899c13
v0.1.0-alpha.1 2022-06-30 16:02:34 +02:00
Felicio Mununga eb58f5f495
Resolve unsupported UI elements (#289)
* fix button ref

* comment out unsopported ui elements

* hide chat input if no account

* comment out avatar dropdown menu
2022-06-30 15:13:39 +02:00
Felicio Mununga 01d5f45db6
Reestablish peer connection on silent stream destruction (#288) 2022-06-30 15:12:26 +02:00
Felicio Mununga fef65d0fd2
Set clocks (#284)
* add clock functions

* remove bind
2022-06-30 15:11:13 +02:00
Pavel 6fc6410b32
Setup GitHub Actions (#287)
* add new GitHub Action for CI

* add yarn flag

* use actions v3

* add ci badge (lol)

* cache lint and format scripts

* add more steps

* remove unused component

* fix lint errors

* remove unsued eslint plugins
2022-06-29 16:46:51 +02:00
Pavel Prichodko 82db7ba91f
set mode to development during dev 2022-06-28 16:54:21 +02:00
Pavel 81153a3d98
Move to ESM, Vite, Vitest and Turborepo (#286)
* fix example hot module replacement

* add turbo

* migrate to vite

* use turbo for running scripts

* migrate testing to vitest

* set yarn in settings.json

* set noEmit in base tsconfig

* update yarn.lock

* move protos to src

* remove relative paths from status-js

* remove unused files

* update declaration dir

* use vite-node as a debugging runtime

* fix test

* unify tests

* fix test case typo
2022-06-28 16:40:39 +02:00
Felicio Mununga 6d30b8ac25
Fix key and topic generation, and remove dependencies (#285)
* update yarn.lock

* remove modules

* move client

* move account

* revert chat_identity.ts

* fix key gen

* fix topic gen

* fix non-null assertion

* fix build errors
2022-06-24 17:39:09 +02:00
Felicio Mununga 484c76ccbb
Update messages data structure (#278)
* Update messages data structure

* remove setting of DeletedChatMessage

* delete unathorized events

* use event pks

* remove comment

* remove else

* fix ui

* fix more ui

* fix sendReaction
2022-06-23 16:47:14 +02:00
Pavel Prichodko fc2d2e54c3
fix(react): invalid jsx 2022-06-22 14:49:53 +02:00
Felicio Mununga f26d429a9d
Check owner, member and author prior handling (#283)
* check owner, member and author

* fix isOwner
2022-06-22 13:30:24 +02:00
Felicio Mununga fa30667c51
handle only MessageType.COMMUNITY_CHAT (#281) 2022-06-21 09:17:15 +02:00
Pavel Prichodko e338c67592
fix(react): do not submit empty message 2022-06-20 23:44:51 +02:00
Felicio Mununga e186ec7e79
rename communit callbacks 2022-06-17 14:09:43 +02:00
Felicio Mununga f9ff7cc92f
remove success flag from message handler 2022-06-17 14:06:17 +02:00
Pavel Prichodko b4d5cbb9cd
fix: sending messages 2022-06-17 12:28:57 +02:00
Pavel Prichodko 6b770b1f26
feat: improve message reply 2022-06-17 12:28:57 +02:00
Pavel Prichodko cb7f5a4e35
feat: enforce accessing only existing chats 2022-06-17 12:28:56 +02:00
Pavel Prichodko 429538dd49
feat: add chat message actions 2022-06-17 12:28:56 +02:00
Pavel Prichodko 53d8fb52a2
feat: close reactions popover on click 2022-06-17 12:28:56 +02:00
Pavel Prichodko 480833c3f6
fix: protocol exports 2022-06-17 12:28:56 +02:00
Pavel Prichodko a578b496fa
fix: main sidebar spacing 2022-06-17 12:28:56 +02:00
Pavel Prichodko d54a9ab1b3
feat: add member to chat input reply 2022-06-17 12:28:55 +02:00
Felicio Mununga aebf9da6c1
support multiple community description callbacks (#280) 2022-06-17 09:36:43 +02:00
Felicio Mununga 944170247e
Wrap decoding in try...catch (#279) 2022-06-17 09:35:40 +02:00
Pavel Prichodko a8f6b94ce2
update start angle of identicon ring 2022-06-15 15:42:53 +02:00
Pavel Prichodko 08becf1b77
fix: creation of message ID 2022-06-15 15:19:28 +02:00
Pavel Prichodko 5c45a4f005
feat: add handle to AlertDialog 2022-06-15 14:12:21 +02:00
Pavel Prichodko 2a50181223
add link to generateUsername util 2022-06-15 13:39:29 +02:00
Pavel Prichodko ef34cb5174
use concatBytes in payloadToId
https://jsben.ch/jze3P
2022-06-15 13:38:44 +02:00
Pavel e514d144b2
Add more chat methods (#276)
* add requestToJoin method

* add editMessage method

* add deleteMessage method

* add todos

* remove unnecessary parameter

* add community ID property

* add missing method
2022-06-15 11:51:56 +02:00
Pavel Prichodko bf8a7e33fe
add rationale comment 2022-06-15 11:45:50 +02:00
Pavel a666d93844
Update handling of reactions (#277)
* fix: reactions argument in callback

* replace object with Set in reactions

* update reactions in UI
2022-06-15 11:30:43 +02:00
Pavel 562d42b09e
Handle emoji content type (#275)
* add containsOnly emoji helper

* add emoji check when sending text message
2022-06-15 11:08:30 +02:00
Pavel Prichodko 6d5d6ab498
feat: filter out account from members 2022-06-14 20:17:35 +02:00
Pavel Prichodko 38fabb3e18
enforce the order of reactions 2022-06-14 18:59:36 +02:00
Pavel Prichodko 7a6dea00ff
export Account type from protocol 2022-06-14 18:59:09 +02:00
Pavel 5031c8ca74
Use chat keys in the UI (#274)
* add util for compressing public key

* add chat keys to account and member

* use compressPublicKey in color hash util

* use chat keys in UI
2022-06-14 14:28:08 +02:00
Pavel Prichodko 56197b950e
fix generating of message ID 2022-06-14 14:15:19 +02:00
Pavel Prichodko 458d299b4a
handle text overflow in CopyButton 2022-06-14 11:26:10 +02:00
Pavel Prichodko 3f1c7bc9f7
add more user information to member sidebar 2022-06-14 11:25:36 +02:00
Pavel Prichodko 6c970f74e2
add public key to community dialog 2022-06-14 11:25:09 +02:00
Pavel Prichodko 9996bd3e39
fix: add username to account 2022-06-13 22:44:22 +02:00
Felicio Mununga fade36ec54
Return new array on emit to trigger re-rendering in react (#273)
* fix type

* return new array to trigger re-rendering in react
2022-06-13 22:44:12 +02:00
Felicio Mununga f62e3ff014
Emit to self on send (#272)
* fix chat references in status-react

* emit to self on send
2022-06-13 20:07:00 +02:00
Pavel 5b4daedd37
Add members (#271)
* export ColorHash type

* add getObjectsDifference helper

* fix CommunityDescription generated type

* add members to community module

* use members in sidebar
2022-06-13 19:02:37 +02:00
Felicio Mununga 062c29d6fa
Add Chat module (#270)
* add packages/status-js/src/client/chat.ts

* cache received but skipped waku messages

* comment missing Map type in generate proto type

* handle removed and added chats

* remove lodash

* use this.client.waku instead of this.waku in community.ts

* rename community props

* fix waku reference in Community

* fix community reference in chat

* handle chat.description changes

* fix references in ui

* revert use of contentTopic

* fix callback on fetch

* use clock to limit fetch

* fix use of clock for community description

* remove notes

* remove await

* use Object.keys() for diff in chats

* fix typo

* add decryption key in start()

* set content topics when adding decryption keys

* add getter with tmp name

* rename community handler to handleDescription

* return this.description !== undefined

* add options to constructor
2022-06-13 16:33:57 +02:00
Pavel Prichodko 29b0e23319
add support for identicon ring to avatar 2022-06-13 16:18:06 +02:00
Felicio Mununga 47ea7a90ad
Add color hash function (#264) 2022-06-10 19:30:23 +02:00
Felicio Mununga 774f75fec9
remove more debug references 2022-06-10 18:23:37 +02:00
Felicio Mununga 9a2e18c0cd
remove comments 2022-06-10 18:16:51 +02:00
Felicio Mununga a646fbcc6c
remove debug 2022-06-10 17:46:38 +02:00
Felicio Mununga bb0a6795ee
add comments 2022-06-10 16:53:15 +02:00
Felicio Mununga 9f6cbfa863
remove client.test.ts 2022-06-10 16:48:56 +02:00
Felicio Mununga 306a612cd1
remove console log 2022-06-10 16:47:59 +02:00
Felicio Mununga 6c85f6c000
remove scripts 2022-06-10 16:44:24 +02:00
Pavel Prichodko e9ee5ffaf3
connect UI to protocol 2022-06-10 16:11:32 +02:00
Pavel Prichodko 54705f34a5
remove unused route 2022-06-10 16:07:07 +02:00
Pavel Prichodko 5c55d16100
add Loading component 2022-06-10 16:06:34 +02:00
Pavel Prichodko 730be38d59
move protocol provider under theme provider 2022-06-10 16:06:05 +02:00
Pavel Prichodko f00df7ebd5
add intials to avatar 2022-06-10 16:05:34 +02:00
Pavel Prichodko 30c77e8cb8
add protocol hooks 2022-06-10 16:05:11 +02:00
Pavel Prichodko 9e516ef773
refactor protocol provider to use reducer 2022-06-10 16:04:15 +02:00
Pavel Prichodko 80de6eae00
add protocol provider 2022-06-10 14:16:06 +02:00
Pavel Prichodko c57458a50d
fix recoverPublicKey test 2022-06-10 13:45:15 +02:00
Pavel Prichodko 13b9b7939a
add basic validateMessage function 2022-06-10 13:43:48 +02:00
Felicio Mununga 2ea96cc474
change requestToJoin() 2022-06-10 02:13:05 +02:00
Felicio Mununga af7abf7123
use Set for waku message IDs 2022-06-10 02:11:29 +02:00
Felicio Mununga 13b9046965
add comment 2022-06-09 21:05:13 +02:00
Felicio Mununga f256546d10
use clock 2022-06-09 20:32:36 +02:00
Felicio Mununga 88cda7f786
change community fetch 2022-06-09 19:33:01 +02:00
Felicio Mununga 74a2cb0ce5
return chat messages from history fetch only if new found 2022-06-09 19:22:58 +02:00
Felicio Mununga 9e3e56888b
ignore already received chat messages 2022-06-09 18:48:27 +02:00
Felicio Mununga 2d729a9b4e
fix observing of new channels 2022-06-09 18:28:52 +02:00
Felicio Mununga bf04af142e
remove other waku message handlers 2022-06-09 18:27:47 +02:00
Felicio Mununga f8eaedc9a7
add packages/status-js/src/client/community/handle-waku-message.ts 2022-06-09 18:23:31 +02:00
Pavel Prichodko a41091a680
cleanup generateUsername function 2022-06-09 19:22:05 +02:00
Pavel Prichodko 13546f2c0c
add generate username util 2022-06-09 18:59:04 +02:00
Pavel Prichodko 070aea4ff8
fix sending messages 2022-06-09 15:56:43 +02:00
Pavel Prichodko 23871e432a
unify reaction type 2022-06-09 15:56:19 +02:00
Pavel Prichodko d99dc4f692
upgrade stitches 2022-06-09 14:48:54 +02:00
Pavel Prichodko 51cce6c084
fix account tests 2022-06-09 14:44:45 +02:00
Pavel Prichodko 373d87e148
add methods for sending messages 2022-06-09 14:44:23 +02:00
Pavel Prichodko 025787a7ec
make recoverPublicKey universal 2022-06-09 14:40:08 +02:00
Felicio Mununga e8a8cc5e12
use pub key to gen chat message id 2022-06-08 17:09:36 +02:00
Felicio Mununga 3e72ef401f
add test for public key recovery 2022-06-08 17:08:03 +02:00
Felicio Mununga 49690081f9
use reverse() 2022-06-08 16:18:01 +02:00
Felicio Mununga 25be8ec391
fix import of utils in account.ts 2022-06-08 15:40:30 +02:00
Felicio Mununga 53a740bcc3
handle replies 2022-06-08 15:02:16 +02:00
Felicio Mununga 69d9c563ec
set chunk size 2022-06-08 13:17:08 +02:00
Felicio Mununga d6f4726f72
try protocol layer first 2022-06-08 13:07:05 +02:00
Felicio Mununga 260d4a4001
replace new Promise in observer 2022-06-08 11:52:55 +02:00
Felicio Mununga 54fadb0cd2
remove packages/status-js/src/community.ts 2022-06-08 11:45:56 +02:00
Felicio Mununga 90834ba00e
change client
- split client and community
- split some community methods
- add message fetching
- make observeChannelMessages async
2022-06-08 11:37:53 +02:00
Felicio Mununga e4dd2a15c1
remove logs 2022-06-06 15:37:37 +02:00
Felicio Mununga 6cad59cab1
split history fetching 2022-06-06 15:33:56 +02:00
Felicio Mununga 0744f7615e
remove `/proto copy` 2022-06-06 12:55:31 +02:00
Pavel Prichodko 9e61001af7
fix account sign method 2022-06-07 16:35:01 +02:00
Pavel Prichodko 0699775423
add recoverPublicKeyFromMetadata util 2022-06-07 16:32:46 +02:00
Pavel Prichodko 5de124efc7
make pbkdf2 async 2022-06-06 11:05:44 +02:00
Pavel Prichodko 62bd4650a3
add idToContentTopic 2022-06-04 13:09:49 +02:00
Pavel Prichodko 7addaed9e7
add generateKeyFromPassword 2022-06-04 13:09:31 +02:00
Felicio Mununga 5a9ca4b3dd
add payload-to-id.ts 2022-06-03 23:36:36 +02:00
Pavel Prichodko 1499d879c9
remove privateKeyToAddress util 2022-06-03 17:45:07 +02:00
Pavel Prichodko 26948d31d3
update Account 2022-06-03 17:44:55 +02:00
Pavel Prichodko 341cd4714a
add protocol message protobuf 2022-06-03 11:15:11 +02:00
Pavel Prichodko 2832e0f8f6
add Account 2022-06-02 12:11:40 +02:00
Pavel Prichodko fd0dde5cd5
add ethereum-cryptography package 2022-06-02 12:10:53 +02:00
Pavel Prichodko 6fb97a5614
add private key to address function 2022-06-02 12:10:35 +02:00
Felicio Mununga 9227a83810
fix test after rebase 2022-06-01 07:39:47 +02:00
Felicio Mununga 84749cee74
remove mocha 2022-06-01 06:56:10 +02:00
Felicio Mununga 8b42c0aa0b
remove tsconfig changes 2022-06-01 06:46:25 +02:00