Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Groups, UX, Frames #26

Merged
merged 473 commits into from
Jul 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
473 commits
Select commit Hold shift + click to select a range
e94b40d
Merge pull request #145 from Unshut-Labs/noe/db-sql-crash
nmalzieu Jun 26, 2024
b71ac6d
final cleanup
Jun 26, 2024
86bc87e
handle welcome topics separately
Jun 26, 2024
ac15795
Add Sender spam check outside of consent checks
Jun 26, 2024
3f5d86b
Merge pull request #148 from Unshut-Labs/saulmc/group-avatar-in-series
alexrisch Jun 26, 2024
466de60
Merge pull request #146 from Unshut-Labs/ar/groups-notifications-updates
alexrisch Jun 26, 2024
99a4131
fix: Dark mode reaction numbers
Jun 26, 2024
953a2b9
fix: Fixed group photo upload
Jun 26, 2024
8284a45
Merge pull request #171 from Unshut-Labs/ar/fix-darkmode-reaction-nums
alexrisch Jun 26, 2024
3052a63
Merge pull request #172 from Unshut-Labs/ar/fix-image-change
alexrisch Jun 27, 2024
0bcd833
fix: Fix -1s showing on conversation list
Jun 27, 2024
953af3f
chore: Style Alignment
Jun 26, 2024
02ab9bd
Merge pull request #173 from Unshut-Labs/ar/chore-style-alignment
alexrisch Jun 27, 2024
94803b4
fix: Fix Hello Flash for group
Jun 27, 2024
4a5269f
simple first letter default avatars
saulmc Jun 26, 2024
8ae804d
text styling
saulmc Jun 26, 2024
be67963
text styling
saulmc Jun 26, 2024
6fe7370
Added Avatar Sizes
Jun 27, 2024
a2382a8
Removed unused assets
Jun 27, 2024
7915fdd
Merge pull request #175 from Unshut-Labs/ar/minus-1
alexrisch Jun 27, 2024
68aea79
Readd fix
Jun 27, 2024
b13a506
Merge pull request #174 from Unshut-Labs/ar/fix-hello-flash-group
alexrisch Jun 27, 2024
a48022f
Merge pull request #151 from Unshut-Labs/saulmc/user-default-avatar
alexrisch Jun 27, 2024
5126fc9
chore: Testflight 06-22
Jun 27, 2024
d14254c
Merge pull request #176 from Unshut-Labs/ar/testflight-06-22
alexrisch Jun 27, 2024
d6eadc7
fix: Unread icon
Jun 27, 2024
f886c88
Fix frames caching display because group is refreshing
nmalzieu Jun 27, 2024
a92467c
Remove unused props
Jun 27, 2024
eaf0324
Merge pull request #186 from Unshut-Labs/noe/frames-caching-fix
nmalzieu Jun 27, 2024
f854bee
Merge pull request #185 from Unshut-Labs/ar/unread-icon
alexrisch Jun 27, 2024
dc9d84e
feat: Group Consent
Jun 27, 2024
8e5cfb4
fix: Add handling for when images fail to load
Jun 27, 2024
8f020fe
Adjustments for minor design feedback
saulmc Jun 27, 2024
2266126
fix: Secondary Button Icons dark mode
Jun 27, 2024
ae4fac9
Merge pull request #189 from Unshut-Labs/saulmc/design-nits
saulmc Jun 27, 2024
a89a6c4
Merge pull request #188 from Unshut-Labs/ar/error-images
alexrisch Jun 28, 2024
282c366
Merge pull request #190 from Unshut-Labs/ar/fix-secondary-button-icons
alexrisch Jun 28, 2024
14bf388
nav to sender profile from convo
saulmc Jun 28, 2024
e872c5e
fix: display inbox that just joined group
nmalzieu Jun 28, 2024
310e2ec
Update text and actions
Jun 29, 2024
3f82975
context menu wip
saulmc Jun 25, 2024
a2e485f
Merge pull request #192 from Unshut-Labs/saulmc/link-to-profile
alexrisch Jun 29, 2024
8cd6373
Merge pull request #194 from Unshut-Labs/noe/fix-joined-convo-inbox-id
alexrisch Jun 29, 2024
29e752c
Merge pull request #187 from Unshut-Labs/ar/groups-consent
alexrisch Jun 29, 2024
28b4fd2
fix typecheck
Jun 29, 2024
3498c59
Merge pull request #144 from Unshut-Labs/saulmc/context-menu
alexrisch Jun 29, 2024
d074fb0
unnamed addresses as 0x
saulmc Jun 29, 2024
f7bef2e
Merge pull request #196 from Unshut-Labs/saulmc/0x-names
saulmc Jul 1, 2024
52dc122
fix: Fixed weird feeling of scrolling on Requests page
Jul 1, 2024
fcb5bdb
Merge pull request #200 from Unshut-Labs/ar/requests-scrolling
alexrisch Jul 2, 2024
a0992a9
new placeholder iconset
saulmc Jul 2, 2024
d69b151
Recycle unfurled frames with the same aspect ratio
nmalzieu Jul 2, 2024
e702410
Also recycle attachments with same ratio
nmalzieu Jul 2, 2024
8cbdff6
Remove outdated splashscreen images
nmalzieu Jul 2, 2024
5580f04
Bootsplash logo android
nmalzieu Jul 2, 2024
f035c68
Upgrade launcher images android
nmalzieu Jul 2, 2024
fb1741f
Merge pull request #206 from Unshut-Labs/noe/new-icon-android
nmalzieu Jul 2, 2024
d8484e1
Merge pull request #201 from Unshut-Labs/saulmc/app-icon-new
saulmc Jul 2, 2024
c1251e0
Bump sdk
Jul 2, 2024
573ff92
chore: Testflight 07-02
Jul 2, 2024
e62195a
fix: Bugbash quick fixes
Jul 2, 2024
8a7aab5
Merge pull request #207 from Unshut-Labs/ar/bump-07-02
alexrisch Jul 2, 2024
96eec17
Merge pull request #205 from Unshut-Labs/noe/fix-scroll-jumpy
alexrisch Jul 2, 2024
e5ec0aa
fix alignment of replied-to sender name
saulmc Jul 2, 2024
aa2b8bd
rm extra
saulmc Jul 2, 2024
3a764e4
remove or change some profile actions and data
saulmc Jul 3, 2024
bc6f951
Merge pull request #208 from Unshut-Labs/ar/bugbash-07-02-fixes
alexrisch Jul 3, 2024
c8557d7
Merge pull request #209 from Unshut-Labs/saulmc/reply-name-sender
alexrisch Jul 3, 2024
0ad0903
fix: Consent Inbox/Requests
Jul 3, 2024
76a1ea2
Merge pull request #226 from Unshut-Labs/saulmc/revised-actions
alexrisch Jul 3, 2024
d2b1a8c
Merge pull request #228 from Unshut-Labs/ar/fix-consent-inbox
alexrisch Jul 3, 2024
edfba77
fix: remove warning introduced by context overflow
nmalzieu Jul 3, 2024
5405a7a
feat: ios: display sender in group chat notification
nmalzieu Jul 2, 2024
eea7cc7
feat: group message notifications on Android + display sender
nmalzieu Jul 3, 2024
103423d
typo fix ios
nmalzieu Jul 3, 2024
6cd2c20
Working group welcome messages (except trackNewRequest) + cleanup
nmalzieu Jul 3, 2024
4a432c3
Merge pull request #230 from Unshut-Labs/noe/fix-warning-chat-context
nmalzieu Jul 3, 2024
245e978
initial spike on iMessage-style group avatars
saulmc Jun 29, 2024
231623d
wip update
saulmc Jul 1, 2024
42727ab
fixed error handling
saulmc Jul 1, 2024
f7a457d
style tweaks
saulmc Jul 1, 2024
698a911
remove flaky svg stuff
saulmc Jul 2, 2024
8fcd5dd
first letter logic
saulmc Jul 2, 2024
e350a94
simplified implementation
saulmc Jul 2, 2024
4fb37a8
tsc
saulmc Jul 2, 2024
afaa432
use util
saulmc Jul 2, 2024
85cef81
Small clean up
Jul 3, 2024
23bd90c
Merge pull request #195 from Unshut-Labs/saulmc/group-avatar-spike
alexrisch Jul 3, 2024
40a758d
fix message status flashing on send
saulmc Jul 3, 2024
602b228
Merge pull request #231 from Unshut-Labs/saulmc/extra-message-status
saulmc Jul 3, 2024
c061472
Upgrade Expo SDK to v51
nmalzieu Jul 1, 2024
d133015
Fix typecheck
nmalzieu Jul 1, 2024
cff0212
Make Expo 51 work on Android
nmalzieu Jul 1, 2024
ade4524
Podfile
nmalzieu Jul 3, 2024
5d62369
fix unread indicator when I sent last group message
saulmc Jul 3, 2024
b0e0b0e
Merge pull request #232 from Unshut-Labs/saulmc/fix-unread-indicator
alexrisch Jul 3, 2024
685b21e
fix lint
Jul 3, 2024
52075ac
Merge pull request #198 from Unshut-Labs/noe/upgrade-expo-51
alexrisch Jul 3, 2024
65e3eeb
fix: Back button in Conversation
Jul 3, 2024
d1fb128
Fix unclickable new convo block
nmalzieu Jul 8, 2024
18709b0
Fix: attachment visible border
nmalzieu Jul 8, 2024
1b0a256
Fix: tail message animation
nmalzieu Jul 8, 2024
7be4730
Fix: increase gap between searchbar and header content
nmalzieu Jul 8, 2024
6eafe7d
Merge pull request #238 from Unshut-Labs/noe/fix-tail-message-animation
nmalzieu Jul 8, 2024
23decbe
Merge pull request #233 from Unshut-Labs/ar/conversation-back
alexrisch Jul 8, 2024
34d12a5
Merge pull request #236 from Unshut-Labs/noe/fix-title-block-click-ha…
alexrisch Jul 8, 2024
ebc1aa6
Merge pull request #239 from Unshut-Labs/noe/ui-fixes-searchbar-requests
nmalzieu Jul 8, 2024
31c6751
Merge pull request #237 from Unshut-Labs/noe/fix-attachment-border
nmalzieu Jul 8, 2024
2b0b842
Merge pull request #229 from Unshut-Labs/noe/display-sender-group-not…
alexrisch Jul 8, 2024
83041fe
feat: Message Backup url
Jul 8, 2024
cccd29e
Merge pull request #243 from Unshut-Labs/ar/message-backup-url
alexrisch Jul 8, 2024
43b7bf7
adjust reply bubble styling to match designs
saulmc Jul 8, 2024
24155ad
Feat: ability to keep or delete group history when disconnecting
nmalzieu Jul 9, 2024
dae608d
Merge pull request #246 from Unshut-Labs/saulmc/reply-styling
saulmc Jul 9, 2024
ae6f734
feat: Android Color changes
Jul 9, 2024
86d3254
fix: Old Icon shows before splash
Jul 9, 2024
aa03e5b
Merge pull request #247 from Unshut-Labs/noe/retain-db-logout
alexrisch Jul 9, 2024
b14d51b
Merge pull request #248 from Unshut-Labs/ar/android-color-updates
alexrisch Jul 9, 2024
c6abbca
show quoted senders on both sides
saulmc Jul 9, 2024
5eaf4ae
Merge pull request #250 from Unshut-Labs/saulmc/quote-reply-senders
saulmc Jul 9, 2024
fdf7ffa
feat: DB encryption key
Jul 9, 2024
4f204be
fix: Message Tail Emoji
Jul 9, 2024
3bbdb56
Merge pull request #252 from Unshut-Labs/ar/message-tail-emoji
alexrisch Jul 9, 2024
5f5380f
Merge pull request #249 from Unshut-Labs/ar/old-icon
alexrisch Jul 10, 2024
30a240f
Merge pull request #251 from Unshut-Labs/ar/db-encryption-key
alexrisch Jul 10, 2024
eced5d6
feat: optimistic sending in groups
nmalzieu Jul 10, 2024
8f6715b
fix: Prod Notifications
Jul 10, 2024
8c4254f
Merge pull request #254 from Unshut-Labs/ar/group-prod-notifications
alexrisch Jul 10, 2024
f7193d4
Upgrade xmtp rn sdk
nmalzieu Jul 11, 2024
4e88103
Upgrade xmtp rn sdk
nmalzieu Jul 11, 2024
43fbc90
feat: generate a random encryption key for the local libxmtp db
nmalzieu Jul 11, 2024
594f0fc
Merge branch 'noe/gobal-db-encryption' into noe/groups-optimistic-sen…
nmalzieu Jul 11, 2024
aea2168
Merge pull request #256 from Unshut-Labs/noe/gobal-db-encryption
nmalzieu Jul 11, 2024
f91c5c7
Merge branch 'feat/xmtp-groups-dash' into noe/groups-optimistic-sending
nmalzieu Jul 11, 2024
12f50fa
Merge pull request #257 from Unshut-Labs/noe/groups-optimistic-sending
nmalzieu Jul 11, 2024
d9064fc
version bump
nmalzieu Jul 11, 2024
d43c971
ios bump
nmalzieu Jul 11, 2024
d1f1a90
EAS node version upgrade
nmalzieu Jul 11, 2024
c6118f0
fix compound emoji and emoji replies
saulmc Jul 12, 2024
8b8d98f
bigger
saulmc Jul 12, 2024
66a5630
fix member can add member policy
saulmc Jul 12, 2024
523d7f5
display group in main inbox if creator approved
saulmc Jul 12, 2024
bb6b51f
fix: optimistic sending loop when stream broken
nmalzieu Jul 12, 2024
64e991c
Merge pull request #274 from Unshut-Labs/saulmc/display-group-creator…
saulmc Jul 12, 2024
6927e40
Merge pull request #272 from Unshut-Labs/saulmc/fix-compound-emoji-an…
saulmc Jul 12, 2024
270bf2c
Merge pull request #273 from Unshut-Labs/saulmc/fix-add-member-policy
saulmc Jul 12, 2024
9381029
Merge pull request #275 from Unshut-Labs/noe/fix-multiple-optimisic-s…
alexrisch Jul 12, 2024
ed3197b
remove encrypted label for pending message
saulmc Jul 3, 2024
da42881
update anim
saulmc Jul 4, 2024
789d2b6
double bubble
saulmc Jul 4, 2024
77d95a1
fix double bubble
saulmc Jul 6, 2024
7c44259
tweak anim
saulmc Jul 6, 2024
1462d83
reanimated
saulmc Jul 7, 2024
66da86e
move message bubble entrance anim
saulmc Jul 7, 2024
81b38f0
explanatory comment
saulmc Jul 7, 2024
c174296
adjust duration
saulmc Jul 7, 2024
39c6415
fix alignment
saulmc Jul 7, 2024
4170118
duration
saulmc Jul 7, 2024
17b00f9
animate received messages too
saulmc Jul 7, 2024
e2a4394
animate received messages too
saulmc Jul 7, 2024
c4622e9
replace encrypted label w/ anim
saulmc Jul 12, 2024
d8299a3
Try upgrading thirdweb
nmalzieu Jul 12, 2024
f80ddbd
Upgrade to latest version of thirdweb
nmalzieu Jul 12, 2024
3edb30a
expo doctor
nmalzieu Jul 12, 2024
4e7ee94
Upgrade some thirdweb dependencies
nmalzieu Jul 12, 2024
f4f18d4
Fixing typing issue on thirdwebId
nmalzieu Jul 12, 2024
795091f
Fixing appMetadata for walletconnect
nmalzieu Jul 12, 2024
d700855
update for optimistic sending
saulmc Jul 12, 2024
61f7447
Rebasing
nmalzieu Jul 12, 2024
4561a19
Fixing walletconnect customization & typecheck issues
nmalzieu Jul 12, 2024
f34846c
ios bump
nmalzieu Jul 12, 2024
a7a330e
Merge pull request #276 from Unshut-Labs/noe/fix-non-cb-wallet-connec…
alexrisch Jul 12, 2024
0aea5ce
fix: Update consent when first set
Jul 12, 2024
994b6f4
Merge pull request #270 from Unshut-Labs/saulmc/rm-encrypted-label
alexrisch Jul 12, 2024
f8b4dd6
Merge pull request #278 from Unshut-Labs/ar/consent-groups-fixes-more
alexrisch Jul 15, 2024
8351a34
fix: Fix messages not showing when making a group
Jul 16, 2024
57458c5
fix: Delayed Group Info
Jul 16, 2024
3852a60
Merge pull request #281 from Unshut-Labs/ar/stream-restart
alexrisch Jul 16, 2024
2baf602
Add communication notifications
nmalzieu Jul 11, 2024
9de3b8d
Add INSendMessageIntent
nmalzieu Jul 11, 2024
25b76cf
Group chat notification: show group image
nmalzieu Jul 11, 2024
c58d493
1v1 chat communication notification with intent
nmalzieu Jul 11, 2024
77d494b
fix: android building and using same encryption key in notifications …
nmalzieu Jul 16, 2024
882b225
Merge pull request #283 from Unshut-Labs/noe/pfp-in-notification
nmalzieu Jul 16, 2024
e2ea8ba
feat: Remove Inactive Groups
Jul 16, 2024
9eade12
fixed file import
Jul 16, 2024
ade7746
Merge pull request #284 from Unshut-Labs/noe/fix-db-encryption-and-de…
alexrisch Jul 16, 2024
85cf951
Merge pull request #282 from Unshut-Labs/ar/delayed-group-info
alexrisch Jul 16, 2024
50055c6
Merge pull request #296 from Unshut-Labs/ar/feat-remove-inactive-groups
alexrisch Jul 16, 2024
6f99f8f
Revert "Noe/pfp in notification"
alexrisch Jul 16, 2024
dba8569
Merge pull request #297 from Unshut-Labs/revert-283-noe/pfp-in-notifi…
alexrisch Jul 16, 2024
594e9b9
Revert "Revert "Noe/pfp in notification""
alexrisch Jul 16, 2024
8aed6b7
fix bubble bg, bubble longpress
saulmc Jul 17, 2024
7b45968
ios bump
nmalzieu Jul 17, 2024
b662756
Expo doctor before release
nmalzieu Jul 17, 2024
ad17c29
Expo doctor before release
nmalzieu Jul 17, 2024
2a7c478
try timeout
saulmc Jul 17, 2024
6855e2b
Merge pull request #301 from Unshut-Labs/saulmc/fix-bubble-reax
saulmc Jul 17, 2024
9a396eb
ios bump
nmalzieu Jul 17, 2024
60f993e
Merge pull request #298 from Unshut-Labs/revert-297-revert-283-noe/pf…
nmalzieu Jul 17, 2024
5eeb7c3
Merge pull request #302 from Unshut-Labs/saulmc/shrunk-status
saulmc Jul 17, 2024
f171f92
groups inherit inviter consent
saulmc Jul 17, 2024
102fd90
rm console log
saulmc Jul 17, 2024
5373811
enable ephemeral wallets creation in prod
saulmc Jul 17, 2024
9b601c9
Merge pull request #304 from Unshut-Labs/saulmc/enable-eph-wallet
saulmc Jul 17, 2024
b5696d7
Merge pull request #303 from Unshut-Labs/saulmc/allow-group-inviter
saulmc Jul 17, 2024
3f7b82b
make Add more tappable
saulmc Jul 17, 2024
61b495b
Merge pull request #305 from Unshut-Labs/saulmc/add-button-tap-target
saulmc Jul 17, 2024
5e498c9
fix: invalid booleans getting out of sqlite
nmalzieu Jul 17, 2024
5bfc522
Upgrade typeorm and add comment
nmalzieu Jul 17, 2024
c9d5065
Remove patch-package for typeorm
nmalzieu Jul 17, 2024
07648e7
Fix patch-package for typeorm
nmalzieu Jul 17, 2024
ec48eca
Merge pull request #306 from Unshut-Labs/noe/fix-crash-on-some-convos
nmalzieu Jul 17, 2024
5ebeada
chore: Build iOS 223
Jul 17, 2024
29fd2b8
Merge pull request #310 from Unshut-Labs/ar/build-223
alexrisch Jul 17, 2024
7163a1c
fix: resolutions in ios notifications
nmalzieu Jul 17, 2024
4acf69f
Merge pull request #312 from Unshut-Labs/noe/hotfix-sender-resolution…
saulmc Jul 17, 2024
89886c5
chore: Build iOS 224
Jul 17, 2024
3dc67f7
Merge pull request #313 from Unshut-Labs/ar/build-ios-224
alexrisch Jul 17, 2024
4bb96d2
WIP: android pfp in notifications
nmalzieu Jul 17, 2024
05855b4
Make android PFP work even in groups, fix ios senderAddress
nmalzieu Jul 17, 2024
856907c
chore: Build Android 146
Jul 18, 2024
c803ae1
Merge pull request #319 from Unshut-Labs/ar/build-android-146
alexrisch Jul 18, 2024
2c308dc
Merge pull request #318 from Unshut-Labs/noe/notification-pfp-android
alexrisch Jul 18, 2024
762d329
fix: Android buttons
Jul 18, 2024
bd2d5dd
feat: Send Message from Profile
Jul 19, 2024
0032693
Merge pull request #322 from Unshut-Labs/ar/fix-android-buttons
alexrisch Jul 19, 2024
fa48a30
Merge pull request #323 from Unshut-Labs/ar/send-message-from-profile
alexrisch Jul 19, 2024
3285d12
chore: Builds for 07-19-2024
Jul 19, 2024
029865b
fix: Self Notifications
Jul 20, 2024
b0ed030
Merge pull request #335 from Unshut-Labs/ar/build-07-19
alexrisch Jul 20, 2024
ccdcbf7
context menu for media picker
saulmc Jul 9, 2024
70f3d20
inline picker with animations
saulmc Jul 9, 2024
595f277
cleanup
saulmc Jul 22, 2024
d92fbb6
account for reply state
saulmc Jul 22, 2024
098898d
adjust menu origin
saulmc Jul 22, 2024
648b045
fix: link xmtpv3 first so it uses sqlcipher & encryption
nmalzieu Jul 22, 2024
5a8dace
upgrade XMTP version to throw if no encryption
nmalzieu Jul 22, 2024
e091a5b
Merge pull request #343 from Unshut-Labs/noe/fix-ios-encryption-linking
nmalzieu Jul 22, 2024
c2c5067
centralize animation logic
saulmc Jul 23, 2024
77e9653
fix: initial load of groups slow
nmalzieu Jul 23, 2024
8926ecf
feat: show reaction notifications to my messages only
nmalzieu Jul 23, 2024
c35324e
Use the findMessage helper
nmalzieu Jul 23, 2024
addf3f3
feat: show reaction notifications to my messages only android
nmalzieu Jul 23, 2024
bd2591e
Merge pull request #350 from Unshut-Labs/noe/reactions-notifications-…
nmalzieu Jul 23, 2024
b39cbe6
Merge pull request #349 from Unshut-Labs/noe/fix-groups-initial-load
nmalzieu Jul 23, 2024
f638d43
Merge pull request #337 from Unshut-Labs/ar/self-notifications
alexrisch Jul 23, 2024
9e98d6a
Merge pull request #255 from Unshut-Labs/saulmc/attachments
alexrisch Jul 23, 2024
920d08f
chore: Build iOS & Android 07-23
Jul 23, 2024
d72bd25
Merge pull request #355 from Unshut-Labs/ar/chore-build-07-23-24
alexrisch Jul 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 16 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
{
"extends": "universe/native",
"ignorePatterns": ["dist/", "node_modules/", "vendor/"],
"plugins": ["react", "import", "unused-imports", "react-hooks"],
"plugins": ["react", "import", "unused-imports", "react-hooks", "react-native"],
"rules": {
"no-unused-vars": "off",
"unused-imports/no-unused-imports": "error",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "error",
"react-native/no-inline-styles": "warn",
"react-native/no-raw-text": "warn",
"react-native/no-single-element-style-arrays": "warn",
"react/jsx-no-bind": [
"warn",
{
"ignoreRefs": true,
"allowArrowFunctions": false,
"allowFunctions": false,
"allowBind": false,
"ignoreDOMComponents": true
}
],
"react/jsx-key": "error",

"prettier/prettier": "off" // We use prettier manually on the side
},
"root": true
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/typescript.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Typescript CI
on:
pull_request:
branches:
- main
- feat/xmtp-groups-dash
jobs:
tsc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-node@v3
- run: yarn
- run: yarn typecheck
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-node@v3
- run: yarn
- run: yarn lint
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

80 changes: 39 additions & 41 deletions App.tsx
Original file line number Diff line number Diff line change
@@ -1,37 +1,39 @@
import "reflect-metadata";
import "./polyfills";

import { configure as configureCoinbase } from "@coinbase/wallet-mobile-sdk";
import { ActionSheetProvider } from "@expo/react-native-action-sheet";
import { PrivyProvider } from "@privy-io/expo";
import { Ethereum } from "@thirdweb-dev/chains";
import { coinbaseWallet, ThirdwebProvider } from "@thirdweb-dev/react-native";
import {
backgroundColor,
MaterialDarkTheme,
MaterialLightTheme,
} from "@styles/colors";
import { useCoinbaseWalletListener } from "@utils/coinbaseWallet";
import React, { useEffect } from "react";
import {
LogBox,
Platform,
StyleSheet,
useColorScheme,
View,
LogBox,
} from "react-native";
import "./utils/splash/splash";
import { KeyboardProvider } from "react-native-keyboard-controller";
import { Provider as PaperProvider } from "react-native-paper";
import { ThirdwebProvider } from "thirdweb/react";
import "./utils/splash/splash";

import XmtpEngine from "./components/XmtpEngine";
import config from "./config";
import { useAppStore } from "./data/store/appStore";
import { useSelect } from "./data/store/storeHelpers";
import {
updateLastVersionOpen,
runAsyncUpdates,
updateLastVersionOpen,
} from "./data/updates/asyncUpdates";
import { QueryClientProvider } from "./queries/QueryProvider";
import Main from "./screens/Main";
import { registerBackgroundFetchTask } from "./utils/background";
import {
backgroundColor,
MaterialDarkTheme,
MaterialLightTheme,
} from "./utils/colors";
import { privySecureStorage } from "./utils/keychain/helpers";
import mmkv from "./utils/mmkv";
import { DEFAULT_EMOJIS, RECENT_EMOJI_STORAGE_KEY } from "./utils/reactions";
Expand All @@ -55,6 +57,11 @@ export default function App() {
const colorScheme = useColorScheme();
const styles = useStyles();

useCoinbaseWalletListener(
true,
new URL(`https://${config.websiteDomain}/coinbase`)
);

useEffect(() => {
registerBackgroundFetchTask();
}, []);
Expand Down Expand Up @@ -86,37 +93,28 @@ export default function App() {
Platform.OS === "ios" ? KeyboardProvider : React.Fragment;

return (
<PrivyProvider appId={config.privy.appId} storage={privySecureStorage}>
<ThirdwebProvider
activeChain={Ethereum}
dAppMeta={{
...config.walletConnectConfig.dappMetadata,
isDarkMode: colorScheme === "dark",
}}
autoConnect={false}
clientId={config.thirdwebClientId}
supportedWallets={[
coinbaseWallet({
callbackURL: new URL(`https://${config.websiteDomain}/coinbase`),
}),
]}
>
<AppKeyboardProvider>
<ActionSheetProvider>
<PaperProvider
theme={
colorScheme === "light" ? MaterialLightTheme : MaterialDarkTheme
}
>
<View style={styles.safe}>
<XmtpEngine />
<Main />
</View>
</PaperProvider>
</ActionSheetProvider>
</AppKeyboardProvider>
</ThirdwebProvider>
</PrivyProvider>
<QueryClientProvider>
<PrivyProvider appId={config.privy.appId} storage={privySecureStorage}>
<ThirdwebProvider>
<AppKeyboardProvider>
<ActionSheetProvider>
<PaperProvider
theme={
colorScheme === "light"
? MaterialLightTheme
: MaterialDarkTheme
}
>
<View style={styles.safe}>
<XmtpEngine />
<Main />
</View>
</PaperProvider>
</ActionSheetProvider>
</AppKeyboardProvider>
</ThirdwebProvider>
</PrivyProvider>
</QueryClientProvider>
);
}

Expand Down
9 changes: 5 additions & 4 deletions App.web.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import "@expo/metro-runtime";
import "./polyfills";
import "./assets/web.css";
import { ActionSheetProvider } from "@expo/react-native-action-sheet";
import { PrivyProvider } from "@privy-io/react-auth";
import { createWeb3Modal, defaultConfig } from "@web3modal/ethers5/react";
import { useColorScheme } from "react-native";
import { PaperProvider } from "react-native-paper";
import { SafeAreaProvider } from "react-native-safe-area-context";

Check warning on line 7 in App.web.tsx

View workflow job for this annotation

GitHub Actions / lint

There should be no empty line within import group
import "./assets/web.css";
import "./polyfills";

import { MaterialDarkTheme, MaterialLightTheme } from "@styles/colors";

Check warning on line 11 in App.web.tsx

View workflow job for this annotation

GitHub Actions / lint

`@styles/colors` import should occur before import of `@web3modal/ethers5/react`

import XmtpEngine from "./components/XmtpEngine";
import config from "./config";
import Main from "./screens/Main";
import { MaterialDarkTheme, MaterialLightTheme } from "./utils/colors";
import mmkv from "./utils/mmkv";
import { DEFAULT_EMOJIS, RECENT_EMOJI_STORAGE_KEY } from "./utils/reactions";
import { useRecentPicksPersistence } from "./vendor/rn-emoji-keyboard";
Expand All @@ -26,7 +27,7 @@

createWeb3Modal({
ethersConfig: defaultConfig({
metadata: config.walletConnectConfig.dappMetadata,
metadata: config.walletConnectConfig.appMetadata,
}),
chains: [mainnet],
projectId: config.walletConnectConfig.projectId,
Expand Down
80 changes: 80 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Building the App - iOS

### Install JS/React Native Dependencies

```
yarn
```

### Install iOS Dependencies

```
npx pod-install
```

### Build the iOS App

Open ios/Converse.xcworkspace in Xcode and Build

# Building the App - Android

### Install JS/React Native Dependencies

```
yarn
```

### Install submodules for Android patched fork

```
git submodule update
```

### Build the Android App

Open Android Studio
press the top right gradle icon to sync gradle
Click the play/build button to build and install the app

### Forward backend port

if running the backend locally

```
adb reverse tcp:9875 tcp:9875
```

# Running the App

Once the app builds it will open the Expo App
this will ask what server port you are targetting, if none are found, you probably need to start the expo server

### Start Expo Server

```
yarn start
```

# Linting

```
yarn lint
```

# Testing

Before running the tests make sure that you have a `.env` file setup with the `DEV_API_URI` variable set

```sh
# In the `converse-backend` repo
yarn dev
# Back in this repo
yarn test
```


# Key Cases Needed for App Release

1. Old conversations are persisted
2. Can send a message without duplicates
3. Can create a group
1 change: 1 addition & 0 deletions android/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ build/
local.properties
*.iml
*.hprof
.cxx/

# Bundle artifacts
*.jsbundle
16 changes: 8 additions & 8 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,6 @@ android {
details.useTarget group: details.requested.group, name: 'lifecycle-viewmodel-ktx', version: '2.5.0'
}
}
resolutionStrategy.dependencySubstitution {
substitute(module("org.xmtp:android")).using(project(":libs:xmtp-android:library"))
}
}

}
Expand Down Expand Up @@ -159,11 +156,12 @@ android {
lint {
abortOnError false
}

packagingOptions {
// Should prevent clashes with other libraries that use OpenSSL
pickFirst '**/libcrypto.so'
jniLibs {
pickFirsts += ['**/libcrypto.so']
}
}

}

// Apply static values from `gradle.properties` to the `android.packagingOptions`
Expand Down Expand Up @@ -193,13 +191,16 @@ dependencies {
implementation 'com.google.firebase:firebase-messaging-ktx:23.0.3'
implementation 'com.beust:klaxon:5.5'
implementation 'androidx.security:security-crypto:1.1.0-alpha05'
// No need to precise a version as we're substituting for local version anyway
implementation "org.xmtp:android"
implementation 'org.web3j:crypto'
implementation 'com.google.crypto.tink:tink-android:1.7.0'
implementation 'com.android.volley:volley:1.2.1'
implementation 'com.tencent:mmkv:1.3.1'
implementation 'me.leolin:ShortcutBadger:1.1.22'
implementation "org.jetbrains.kotlin:kotlin-reflect:1.9.22"
implementation 'com.github.bumptech.glide:glide:4.13.2'
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'



def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true";
Expand All @@ -223,7 +224,6 @@ dependencies {
implementation("androidx.core:core-splashscreen:1.0.0")
// implementation 'org.web3j:core:4.8.8-android'

implementation("com.facebook.react:flipper-integration")
if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
Expand Down
8 changes: 7 additions & 1 deletion android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Expand All @@ -10,6 +10,12 @@
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
<!-- This forces minSdkVersion 23 for module reactnativeaesgcmcrypto even if the lib
has minSdkVersion 26. It could technically lead to failures but we don't care as it's
a dependency in thirdweb used only for inapp wallets which we don't care about -->
<uses-sdk
android:minSdkVersion="23"
tools:overrideLibrary="com.reactnativeaesgcmcrypto" />
<queries>
<package android:name="org.toshi"/>
<intent>
Expand Down
Binary file modified android/app/src/main/ic_launcher-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/ic_launcher_preview-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 8 additions & 2 deletions android/app/src/main/java/com/converse/dev/Datatypes.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,18 @@ package com.converse.dev

import kotlin.math.roundToInt

class NotificationData(val message: String, val timestampNs: String, val contentTopic: String, val sentViaConverse: Boolean? = false, val account: String)
class NotificationData(val message: String, val timestampNs: String, val contentTopic: String, val account: String)
class ConversationDictData(val shortAddress: String? = null, val title: String? = null)
class SavedNotificationMessage(val topic: String, val content: String, val senderAddress: String, val sent: Long, val id: String, val sentViaConverse: Boolean, val contentType: String, val account: String? = null, val referencedMessageId: String? = null)
class SavedNotificationMessage(val topic: String, val content: String, val senderAddress: String, val sent: Long, val id: String, val contentType: String, val account: String? = null, val referencedMessageId: String? = null)
class ConversationContext(val conversationId: String, val metadata: Map<String, Any>)
class Accounts(val currentAccount: String, val accounts: Array<String>, val databaseId: Map<String, String>? = null)
class AccountsStore(val state: Accounts, val version: Int)
class EnsName(val name: String, val displayName: String? = null, val isPrimary: Boolean? = false, val avatar: String? = null)
class ConverseUserName(val name: String, val displayName: String? = null, val isPrimary: Boolean? = false, val avatar: String? = null)
class ProfileSocials(val ensNames: Array<EnsName>? = null, val userNames: Array<ConverseUserName>? = null)
class Profile(val updatedAt: Long, val socials: ProfileSocials)
class Profiles(val profiles: Map<String, Profile>? = null)
class ProfilesStore(val state: Profiles, val version: Int)
class SavedNotificationConversation(val topic: String, val peerAddress: String, val createdAt: Long, val context: ConversationContext?, val account: String? = null, spamScore: Double?) {
// Whenever spamScore is set, round it to two decimal to ensure it fits as a 2-digit float in the database
var spamScore: Double? = spamScore
Expand Down
Loading
Loading