Compare commits

...

141 Commits

Author SHA1 Message Date
Giordano Ricci
c1193c3c63 add explainer for counters restarts 2025-04-08 11:43:48 +01:00
Giordano Ricci
f30130b92f reduce possible priority values 2025-04-08 11:43:48 +01:00
Giordano Ricci
1a77233ecb force metric creation on queue creation 2025-04-08 11:43:48 +01:00
Giordano Ricci
09a95b8542 move queue initialization into constructor 2025-04-08 11:43:48 +01:00
Giordano Ricci
f46329ac68 move meter 2025-04-08 11:43:48 +01:00
Giordano Ricci
c551839179 extract queue meter logic, add tests 2025-04-08 11:43:47 +01:00
Giordano Ricci
a0683f9d21 add role attribute to queue metrics 2025-04-08 11:43:47 +01:00
Giordano Ricci
a56958c69e WIP: queue counters 2025-04-08 11:43:47 +01:00
Guido D'Orsi
9f336103e8 Merge pull request #1820 from garden-co/changeset-release/main
Version Packages
2025-04-07 21:13:46 +02:00
github-actions[bot]
1174942a4e Version Packages 2025-04-07 19:12:40 +00:00
Guido D'Orsi
267920b7dc Merge pull request #1819 from garden-co/re-export-clerk
fix: add exports for clerk and crypto to make import shortcuts work everywhere
2025-04-07 21:10:16 +02:00
Guido D'Orsi
63a7aa0f54 fix: add exports for clerk and crypto to make import shortcuts work everywhere 2025-04-07 20:51:43 +02:00
Benjamin S. Leveritt
2b7534d30c Merge pull request #1808 from garden-co/docs/add-multicursor-example
Docs for multicursor example
2025-04-07 16:03:49 +01:00
Trisha Lim
be23a81b1b fix: create-jazz-app command showing $EXAMPLE instead of app slug 2025-04-07 19:55:03 +07:00
Guido D'Orsi
68416784fd docs(expo-clerk): fix outdated storage property 2025-04-07 14:39:49 +02:00
Guido D'Orsi
84d3c09cb1 docs: remove the nativewind section 2025-04-07 14:38:41 +02:00
Guido D'Orsi
53e8c39e8d docs: fix the clerk expo import 2025-04-07 14:36:46 +02:00
Trisha Lim
87b41fefad add multicursors example to cofeeds docs 2025-04-07 18:56:35 +07:00
Trisha Lim
265a4e8cc5 update readme for multi-cursors example 2025-04-07 18:53:03 +07:00
Trisha Lim
623467503f add multicursors example to examples page 2025-04-07 18:33:50 +07:00
Guido D'Orsi
7bd03c738a Merge pull request #1787 from garden-co/changeset-release/main
Version Packages
2025-04-07 11:35:14 +02:00
github-actions[bot]
195dbeda6a Version Packages 2025-04-07 09:26:54 +00:00
Guido D'Orsi
9b9bf9bcd3 Merge pull request #1805 from garden-co/fix/mime-type
fix(inspector): show unknown mime type instead of application/octet-stream
2025-04-07 11:25:15 +02:00
Guido D'Orsi
0a68df76eb chore: changeset 2025-04-07 11:19:48 +02:00
Guido D'Orsi
bce3bcc221 chore: changeset 2025-04-07 11:15:22 +02:00
Guido D'Orsi
408bfd9963 Merge pull request #1800 from garden-co/0-13-0
Jazz 0.13 - Create dedicated packages for React Native Vanilla and Expo
2025-04-07 11:07:45 +02:00
Guido D'Orsi
df7b2c8970 Merge pull request #1801 from garden-co/issue-1754
fix(useCoState): return null when the id is undefined
2025-04-07 09:21:56 +02:00
Trisha Lim
2f1181031e filestream example: add inspector, show covalue id 2025-04-07 14:15:03 +07:00
Trisha Lim
2224ed4d57 show unknown mime type instead of application/octet-stream 2025-04-07 14:14:20 +07:00
Guido D'Orsi
bb565f34a8 chore: fix test code 2025-04-05 11:17:14 +02:00
Guido D'Orsi
30cd9dd9a4 chore: fix test error 2025-04-04 19:08:07 +02:00
Guido D'Orsi
72fdfb57e2 test(useCoState): cover the case where a CoValue becomes inaccessible 2025-04-04 17:03:21 +02:00
Guido D'Orsi
afd137448a fix(useCoState): return null when the id is undefined 2025-04-04 16:09:17 +02:00
Guido D'Orsi
cacf034558 Merge pull request #1788 from garden-co/fix/inspector-nested-button
inspector: various fixes and css refactoring
2025-04-04 11:38:16 +02:00
Guido D'Orsi
1be7b7b73d docs: pull docs changes from 1740-update-docs 2025-04-04 11:32:13 +02:00
Guido D'Orsi
c5076126b1 Merge pull request #1590 from boorad/feat/separate-expo-rn
Jazz 0.13 - Create dedicated packages for React Native Vanilla and Expo
2025-04-04 11:28:30 +02:00
Brad Anderson
1a3ed1ddd5 fix: chat time formatting 2025-04-03 13:18:43 -04:00
Brad Anderson
31843b4b5e feat: sqlite storage on by default 2025-04-03 13:11:29 -04:00
Trisha Lim
2796689f79 add changeset 2025-04-03 22:26:08 +07:00
Trisha Lim
eb594ed2f6 fix object preview is way too long 2025-04-03 22:08:50 +07:00
Trisha Lim
9ca8247e10 fix: text inside grid items get cut off 2025-04-03 21:40:50 +07:00
Trisha Lim
4b62fca83e fix grid responsiveness 2025-04-03 21:23:00 +07:00
Trisha Lim
08b2997d6a add placeholder to account secret field 2025-04-03 21:07:11 +07:00
Trisha Lim
08a4044f23 move css out of grid-view 2025-04-03 19:17:01 +07:00
Trisha Lim
7258a1b237 fix: button within a button 2025-04-03 12:23:59 +07:00
Brad Anderson
a53fa5e08c chore: love the rebases 2025-04-02 18:54:32 -04:00
Brad Anderson
dcf7f1a269 fix: rebase casualties 2025-04-02 18:53:20 -04:00
Brad Anderson
1841b6c2b6 chore: rebase 2025-04-02 18:53:20 -04:00
Brad Anderson
fd0ee91336 fix: fuck it 2025-04-02 18:52:49 -04:00
Brad Anderson
9c5d2dc1ba chore: docs and deps 2025-04-02 18:52:49 -04:00
Benjamin S. Leveritt
f1a8ad03ac Updates for 0.13 docs (#3) 2025-04-02 18:52:49 -04:00
Brad Anderson
aacd33f35f fix: more deps work 2025-04-02 18:52:49 -04:00
Brad Anderson
ce02aef839 fix: roll back some deps to troubleshoot 2025-04-02 18:52:49 -04:00
Brad Anderson
0e9a965896 chore: docs 2025-04-02 18:52:49 -04:00
Brad Anderson
0916b28cb8 fix: 0.12 missed 2025-04-02 18:52:49 -04:00
Guido D'Orsi
48d5a54e8a chore: update lockfile 2025-04-02 18:52:49 -04:00
Guido D'Orsi
4fff8ce3c2 chore: migrate jazz-react-native-core o declaration files 2025-04-02 18:52:49 -04:00
Guido D'Orsi
1d5ed6a737 chore: more cleanup 2025-04-02 18:52:49 -04:00
Guido D'Orsi
5017d64e9a chore: update lockfile 2025-04-02 18:52:49 -04:00
Guido D'Orsi
4bd4441849 feat: re-export the testing entry on jazz-expo and jazz-react-native 2025-04-02 18:52:49 -04:00
Guido D'Orsi
8d15c63e0e chore: clean up changes 2025-04-02 18:52:49 -04:00
Guido D'Orsi
0c89584520 chore: clean up deps 2025-04-02 18:52:48 -04:00
pax-k
922814f6da fix: tests 2025-04-02 18:50:54 -04:00
Brad Anderson
b5a0154113 fix: removing mystery starters 2025-04-02 18:50:54 -04:00
Brad Anderson
187d2adc42 PR feedback 2025-04-02 18:50:54 -04:00
Brad Anderson
b3bc39c72a PR feedback 2025-04-02 18:50:54 -04:00
Brad Anderson
c115c732c3 chore: rebase oops 2025-04-02 18:50:54 -04:00
Brad Anderson
765c0c264d chore: rebase 2025-04-02 18:50:54 -04:00
Brad Anderson
d0681df464 chore: docs update 2025-04-02 18:50:34 -04:00
Brad Anderson
99e9e5463c chore: first cut at docs changes 2025-04-02 18:50:34 -04:00
Brad Anderson
7cdd4a915e fix: comment out suppressions 2025-04-02 18:50:34 -04:00
Brad Anderson
1a10d528e5 fix: tests work 2025-04-02 18:50:34 -04:00
Brad Anderson
2e048aa824 wip: failing unit test work 2025-04-02 18:50:34 -04:00
Brad Anderson
1171d514d8 fix: react/dom dependency warnings 2025-04-02 18:50:34 -04:00
Brad Anderson
6ce77381a0 fix: more cleanup of packages 2025-04-02 18:50:34 -04:00
Brad Anderson
368e1f48f1 fix: lock file regen 2025-04-02 18:50:34 -04:00
Brad Anderson
8be70db467 fix: clean up styles 2025-04-02 18:50:34 -04:00
pax-k
dae573b545 works 2025-04-02 18:50:34 -04:00
pax-k
f9b49e4d66 fix(rn): added ios and android dirs for barebone rn chat app 2025-04-02 18:50:34 -04:00
pax-k
986a924e6d fix: workspace package versions for react, react-native 2025-04-02 18:50:34 -04:00
Brad Anderson
abf65d5286 try 0.78 on all RN apps 2025-04-02 18:50:08 -04:00
Brad Anderson
e85b900c99 cosmetic 2025-04-02 18:50:08 -04:00
Brad Anderson
b3e84c0561 chat-rn builds and runs, but blank 2025-04-02 18:50:08 -04:00
Brad Anderson
c1bab3d0e6 more naming changes 2025-04-02 18:50:08 -04:00
Brad Anderson
169bc2aa09 rename RN example apps 2025-04-02 18:50:08 -04:00
Brad Anderson
8a7761b0c3 add chat app & deps 2025-04-02 18:49:40 -04:00
Brad Anderson
fa8155c545 app starts, lint, format 2025-04-02 18:49:40 -04:00
Brad Anderson
e66b47f780 add chat-rn-cli app for frameworkless testing 2025-04-02 18:49:40 -04:00
Brad Anderson
e55ce6ccfc small changes 2025-04-02 18:49:40 -04:00
Brad Anderson
8d0cbd43da move jazz-expo-clerk-auth under jazz-expo, rename local e2e test 2025-04-02 18:49:40 -04:00
Brad Anderson
0bdad497d7 remove op-sqlite from chat-rn-clerk 2025-04-02 18:49:40 -04:00
Brad Anderson
610a77d37a feat: Separate Expo and React Native 2025-04-02 18:49:40 -04:00
Guido D'Orsi
972122472f Merge pull request #1786 from garden-co/fix/loading-state
fix(coValueState): support CoValue re-load after it is marked as unavailable and improve timeout
2025-04-02 22:53:34 +02:00
Guido D'Orsi
776e59709f Merge remote-tracking branch 'origin/main' into fix/loading-state 2025-04-02 20:56:19 +02:00
Guido D'Orsi
eefdf9783e Merge pull request #1774 from garden-co/changeset-release/main
Version Packages
2025-04-02 20:54:17 +02:00
github-actions[bot]
a821c71967 Version Packages 2025-04-02 18:54:03 +00:00
Guido D'Orsi
cc684eb5cd chore: changeset 2025-04-02 20:51:41 +02:00
Guido D'Orsi
8dd2f05b17 Merge pull request #1785 from joshua1/make-contructor-params-protected
changed the constructor parameters of the BrowserPasskeyAUth class iin jazz-browser's PasskeyAuth.ts to enable extension of the class
2025-04-02 20:49:45 +02:00
Guido D'Orsi
ba94aeab4c Merge pull request #1783 from garden-co/perf/expectedNewHashAfter
perf(expectedNewHashAfter): remove redundant clone and skip double hash generation when creating a local transaction
2025-04-02 20:49:20 +02:00
Guido D'Orsi
a013538c8b fix(coValueState): support CoValue re-load after it is marked as unavailable and improve timeout 2025-04-02 20:41:38 +02:00
joshua1
648140a370 changed the constructor parameters of the BrowserPasskeyAUth class in jazz-browser's PasskeyAuth.ts to enable extension of the class 2025-04-02 19:38:08 +02:00
Guido D'Orsi
c2f4827ac1 perf(expectedNewHashAfter): remove redundant clone and skip double hash generation when creating a local transaction 2025-04-02 17:38:06 +02:00
Guido D'Orsi
8a52dbb784 Merge pull request #1782 from garden-co/feat/customize-ping-timeout
feat(wsPeer): add an option to change the ping timeout
2025-04-02 17:07:41 +02:00
Guido D'Orsi
eb47ec6bbd feat: add an option to change the ping timeout 2025-04-02 16:30:47 +02:00
Guido D'Orsi
baa62e13b1 chore: remove debug code from sync 2025-04-02 15:53:18 +02:00
Trisha Lim
8a71835ca2 refactor(inspector): use goober for css (#1780)
* add text and badge component

* use button component for links

* add table components

* move inspector button to separate component

* refactor css to use goober

* add changeset
2025-04-02 20:33:43 +07:00
Trisha Lim
67a488cac7 fix: "old" line highlighting not working (#1777) 2025-04-01 16:40:56 +07:00
Guido D'Orsi
a11f531d4b Merge pull request #1752 from garden-co/fix/twoslash-dark
fix popover dark mode colors
2025-04-01 11:10:33 +02:00
Trisha Lim
9dd717bf0e lint fixes 2025-04-01 11:36:02 +07:00
Trisha Lim
42551bb4fd fix console errors on react guide 2025-04-01 11:34:49 +07:00
Benjamin S. Leveritt
5c5de61cb6 Merge pull request #1755 from garden-co/fix-multiauth-resolve
Use the new Resolve API for the multiauth example app
2025-03-31 17:44:56 +01:00
pax-k
7fdfc7fddb chore: changeset 2025-03-31 19:43:56 +03:00
pax-k
b108c6166e chore: changeset 2025-03-31 14:42:31 +03:00
pax-k
e0bc9a7f67 fix(example): use the new Resolve API 2025-03-31 14:41:39 +03:00
Benjamin S. Leveritt
f900495f8d Merge pull request #1742 from garden-co/1731-add-out-of-bounds-indicator
1731 Add out of bounds indicator
2025-03-31 12:13:25 +01:00
Benjamin S. Leveritt
4188c7a18d Rename variables 2025-03-31 11:49:48 +01:00
Benjamin S. Leveritt
7315960477 Fixes from comments 2025-03-31 11:40:41 +01:00
Benjamin S. Leveritt
815f485ee5 Fix log 2025-03-31 09:57:05 +01:00
Benjamin S. Leveritt
402008a08f Drop console.logs from build 2025-03-31 09:57:05 +01:00
Benjamin S. Leveritt
bc1576cb92 Adds tests 2025-03-31 09:57:05 +01:00
Benjamin S. Leveritt
acbe66ed60 Replace out of bounds circle with arrow 2025-03-31 09:57:04 +01:00
Benjamin S. Leveritt
ec1fd2aaa2 Fix cursor label positioning relative to the bounds 2025-03-31 09:57:04 +01:00
Benjamin S. Leveritt
bd796555f2 Tweaks label 2025-03-31 09:57:04 +01:00
Benjamin S. Leveritt
153f6ec245 Add proportional label placement 2025-03-31 09:57:04 +01:00
Benjamin S. Leveritt
42d007da13 WIP cursor labels 2025-03-31 09:57:04 +01:00
Benjamin S. Leveritt
c764eeff56 Adds debug flag 2025-03-31 09:57:04 +01:00
Benjamin S. Leveritt
a7a00e6a7c Joins label 2025-03-31 09:57:04 +01:00
Benjamin S. Leveritt
bc65695eee Merges OutOfBoundsMarker with Cursor 2025-03-31 09:57:03 +01:00
Benjamin S. Leveritt
153231aecb Removes OoB labels 2025-03-31 09:57:03 +01:00
Benjamin S. Leveritt
d814899d71 Adds an out of bounds marker 2025-03-31 09:57:03 +01:00
Benjamin S. Leveritt
0b6c35c08a Adds isOutOfBounds test 2025-03-31 09:57:03 +01:00
Benjamin S. Leveritt
e62ea5a8ac Adds Boundary viz 2025-03-31 09:57:03 +01:00
Benjamin S. Leveritt
a5bffd7312 Adds ViewBox type 2025-03-31 09:57:03 +01:00
Benjamin S. Leveritt
9aa91ec525 Adds additional logging during bootstrapping
More logs
2025-03-31 09:57:03 +01:00
Benjamin S. Leveritt
9b8c299ba5 Add basic creds to .env.example 2025-03-31 09:57:03 +01:00
Guido D'Orsi
7486ca768d Merge pull request #1753 from garden-co/fix/llms-txt-content
fix: missing content on llms.txt
2025-03-31 10:25:01 +02:00
Trisha Lim
fa4d501eb0 fix missing intro page on llms.txt 2025-03-31 08:43:38 +07:00
Trisha Lim
a126d5dbf8 fix: missing content on llms.txt 2025-03-31 08:35:43 +07:00
Trisha Lim
d697cc5713 fix popover dark mode colors 2025-03-30 23:10:57 +07:00
Guido D'Orsi
d95c8cc302 Merge pull request #1717 from garden-co/fix/missing-toc
fix: missing TOC on docs intro
2025-03-30 00:09:05 +01:00
Trisha Lim
9dee93af1b fix missing TOC on docs intro 2025-03-29 20:03:34 +07:00
435 changed files with 19154 additions and 5902 deletions

View File

@@ -9,18 +9,18 @@
"cojson-storage",
"cojson-storage-indexeddb",
"cojson-storage-sqlite",
"cojson-storage-rn-sqlite",
"cojson-transport-ws",
"jazz-browser",
"jazz-auth-clerk",
"jazz-browser-media-images",
"jazz-expo",
"jazz-inspector",
"jazz-nodejs",
"jazz-react",
"jazz-react-core",
"jazz-react-auth-clerk",
"jazz-react-native-core",
"jazz-react-native",
"jazz-react-native-auth-clerk",
"jazz-react-native-media-images",
"jazz-run",
"jazz-svelte",

View File

@@ -0,0 +1,5 @@
---
"cojson": patch
---
Add jazz.messagequeue.pushed/pulled counters, remove jazz.messagequeue.size gauge

View File

@@ -7,8 +7,7 @@ on:
- ".github/actions/android-emulator/**"
- ".github/actions/source-code/**"
- ".github/workflows/e2e-rn-test.yml"
- "examples/chat-rn/**"
- "examples/chat-rn-clerk/**"
- "examples/chat-rn-expo/**"
- "packages/**"
jobs:
@@ -36,8 +35,8 @@ jobs:
- name: Pnpm Build
run: pnpm turbo build --filter="./packages/*"
- name: chat-rn App Pre Build
working-directory: ./examples/chat-rn
- name: chat-rn-expo App Pre Build
working-directory: ./examples/chat-rn-expo
run: |
pnpm build
pnpm expo prebuild --clean
@@ -61,7 +60,7 @@ jobs:
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -no-metrics
disable-animations: true
working-directory: ./examples/chat-rn/
working-directory: ./examples/chat-rn-expo/
script: ./test/e2e/run.sh
- name: Copy Maestro Output

10
.gitignore vendored
View File

@@ -22,6 +22,12 @@ test-results
.husky
.vscode/settings.json
.vscode/*
.svelte-kit
.svelte-kit
.cursorrules
.windsurfrules
.idea

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>

8
.idea/jazz.iml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/jazz.iml" filepath="$PROJECT_DIR$/.idea/jazz.iml" />
</modules>
</component>
</project>

19
.idea/php.xml generated Normal file
View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="highlightLevel" value="WARNING" />
<option name="transferred" value="true" />
</component>
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PsalmOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>

6
.idea/prettier.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PrettierConfiguration">
<option name="myConfigurationMode" value="AUTOMATIC" />
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@@ -1 +0,0 @@
export const apiKey = "chat-rn-clerk-example-jazz@garden.co";

View File

@@ -1,4 +1,30 @@
# chat-rn-clerk
# chat-rn-expo-clerk
## 1.0.94
### Patch Changes
- Updated dependencies [63a7aa0]
- jazz-expo@0.13.1
## 1.0.93
### Patch Changes
- Updated dependencies [bce3bcc]
- Updated dependencies [afd1374]
- jazz-expo@0.13.0
- jazz-tools@0.13.0
- jazz-react-native-media-images@0.13.0
## 1.0.92
### Patch Changes
- jazz-react-native@0.12.2
- jazz-react-native-auth-clerk@0.12.2
- jazz-tools@0.12.2
- jazz-react-native-media-images@0.12.2
## 1.0.91

View File

@@ -11,13 +11,13 @@ pnpm i
pnpm run build
```
### 2. Inside the `examples/chat-rn-clerk` Directory
### 2. Inside the `examples/chat-rn-expo-clerk` Directory
Next, navigate to the specific example project and run the following commands:
```bash
pnpm expo prebuild
npx pod-install
pnpx pod-install
pnpm expo run:ios
```

View File

@@ -1,8 +1,8 @@
{
"expo": {
"name": "jazz-chat-rn-clerk",
"scheme": "jazz-chat-rn-clerk",
"slug": "jazz-chat-rn-clerk",
"name": "jazz-chat-rn-expo-clerk",
"scheme": "jazz-chat-rn-expo-clerk",
"slug": "jazz-chat-rn-expo-clerk",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/images/icon.png",
@@ -23,21 +23,12 @@
},
"package": "com.jazz.chatrnclerk"
},
"newArchEnabled": true,
"plugins": [
[
"expo-build-properties",
{
"ios": {
"newArchEnabled": true
},
"android": {
"newArchEnabled": true
}
}
],
"expo-secure-store",
"expo-font",
"expo-router",
"expo-sqlite",
[
"expo-image-picker",
{

View File

@@ -1,5 +1,5 @@
import { Redirect, Stack } from "expo-router";
import { useIsAuthenticated } from "jazz-react-native";
import { useIsAuthenticated } from "jazz-expo";
import React from "react";
export default function HomeLayout() {

View File

@@ -1,5 +1,5 @@
import { Redirect, Stack } from "expo-router";
import { useIsAuthenticated } from "jazz-react-native";
import { useIsAuthenticated } from "jazz-expo";
export default function UnAuthenticatedLayout() {
const isAuthenticated = useIsAuthenticated();

View File

@@ -28,7 +28,7 @@ const SignInWithOAuth = () => {
const { createdSessionId, signIn, signUp, setActive } =
await startOAuthFlow({
redirectUrl: Linking.createURL("/", {
scheme: "jazz-chat-rn-clerk",
scheme: "jazz-chat-rn-expo-clerk",
}),
});

View File

@@ -4,8 +4,8 @@ import clsx from "clsx";
import * as Clipboard from "expo-clipboard";
import * as ImagePicker from "expo-image-picker";
import { useLocalSearchParams } from "expo-router";
import { useAccount, useCoState } from "jazz-react-native";
import { ProgressiveImg } from "jazz-react-native";
import { useAccount, useCoState } from "jazz-expo";
import { ProgressiveImg } from "jazz-expo";
import { createImage } from "jazz-react-native-media-images";
import { Group, ID } from "jazz-tools";
import { useEffect, useLayoutEffect, useState } from "react";
@@ -165,8 +165,8 @@ export default function Conversation() {
!isMe ? "mt-2 text-gray-500" : "mt-1 text-gray-200",
)}
>
{item._edits.text.madeAt.getHours()}:
{item._edits.text.madeAt.getMinutes()}
{item._edits.text.madeAt?.getHours().toString().padStart(2, "0")}:
{item._edits.text.madeAt?.getMinutes().toString().padStart(2, "0")}
</Text>
</View>
</View>

View File

@@ -11,7 +11,7 @@ import React, {
} from "react-native";
import { useUser } from "@clerk/clerk-expo";
import { useAccount } from "jazz-react-native";
import { useAccount } from "jazz-expo";
import { Chat } from "../../src/schema";
export default function ChatScreen() {

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 313 KiB

After

Width:  |  Height:  |  Size: 313 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -1,15 +1,16 @@
{
"name": "chat-rn-clerk",
"name": "chat-rn-expo-clerk",
"main": "index.js",
"version": "1.0.91",
"version": "1.0.94",
"scripts": {
"build": "expo export -p ios",
"start": "expo start",
"format-and-lint": "biome check .",
"format-and-lint:fix": "biome check . --write",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web"
"ios": "expo prebuild && pnpx pod-install && expo run:ios",
"web": "expo start --web",
"run:ios": "pnpm expo prebuild && npx pod-install && pnpm expo run:ios"
},
"jest": {
"preset": "jest-expo"
@@ -18,55 +19,53 @@
"@azure/core-asynciterator-polyfill": "^1.0.2",
"@bacons/text-decoder": "0.0.0",
"@bam.tech/react-native-image-resizer": "^3.0.11",
"@craftzdog/react-native-buffer": "6.0.5",
"@clerk/clerk-expo": "^2.2.21",
"@craftzdog/react-native-buffer": "6.0.5",
"@expo/vector-icons": "^14.0.2",
"@op-engineering/op-sqlite": "^11.2.12",
"@react-native-community/netinfo": "^11.4.1",
"@react-navigation/native": "^7.0.13",
"@react-navigation/native-stack": "^7.1.14",
"@react-native-community/netinfo": "11.4.1",
"@react-navigation/native": "7.0.19",
"@react-navigation/native-stack": "7.2.1",
"clsx": "^2.0.0",
"expo": "^52.0.0",
"expo": "^52.0.42",
"expo-build-properties": "~0.13.1",
"expo-clipboard": "~7.0.0",
"expo-constants": "~17.0.3",
"expo-crypto": "~14.0.1",
"expo-dev-client": "~5.0.5",
"expo-constants": "~17.0.8",
"expo-crypto": "~14.0.2",
"expo-dev-client": "~5.0.16",
"expo-file-system": "^18.0.4",
"expo-font": "~13.0.1",
"expo-image-picker": "~16.0.4",
"expo-linking": "~7.0.3",
"expo-router": "~4.0.11",
"expo-image-picker": "~16.0.6",
"expo-linking": "~7.0.5",
"expo-router": "~4.0.19",
"expo-secure-store": "~14.0.0",
"expo-splash-screen": "~0.29.16",
"expo-status-bar": "~2.0.0",
"expo-system-ui": "~4.0.5",
"expo-splash-screen": "~0.29.22",
"expo-sqlite": "15.1.3",
"expo-status-bar": "~2.0.1",
"expo-web-browser": "~14.0.1",
"jazz-react-native": "workspace:*",
"jazz-react-native-auth-clerk": "workspace:*",
"jazz-expo": "workspace:*",
"jazz-react-native-media-images": "workspace:*",
"jazz-tools": "workspace:*",
"nativewind": "^4.1.21",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-native": "~0.76.3",
"react": "18.3.1",
"react-dom": "18.3.1",
"react-native": "0.76.7",
"react-native-gesture-handler": "~2.20.2",
"react-native-get-random-values": "^1.11.0",
"react-native-reanimated": "~3.16.3",
"react-native-safe-area-context": "4.12.0",
"react-native-screens": "4.1.0",
"react-native-screens": "4.4.0",
"react-native-url-polyfill": "^2.0.0",
"react-native-web": "~0.19.13",
"readable-stream": "4.7.0"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@types/jest": "^29.5.3",
"@types/react": "^18.3.12",
"@types/react-test-renderer": "^18.0.7",
"jest": "^29.2.1",
"@babel/core": "^7.25.2",
"@types/jest": "^29.5.13",
"@types/react": "~18.3.12",
"@types/react-test-renderer": "^19.0.0",
"jest": "^29.6.3",
"jest-expo": "~52.0.2",
"react-test-renderer": "18.2.0",
"react-test-renderer": "18.3.1",
"tailwindcss": "^3.4.17",
"typescript": "~5.6.2"
},

View File

@@ -0,0 +1 @@
export const apiKey = "chat-rn-expo-clerk-example-jazz@garden.co";

View File

@@ -1,5 +1,5 @@
import { useClerk } from "@clerk/clerk-expo";
import { JazzProviderWithClerk } from "jazz-react-native-auth-clerk";
import { JazzProviderWithClerk } from "jazz-expo/auth/clerk";
import React, { PropsWithChildren } from "react";
import { apiKey } from "./apiKey";
@@ -9,7 +9,6 @@ export function JazzAndAuth({ children }: PropsWithChildren) {
return (
<JazzProviderWithClerk
clerk={clerk}
storage="sqlite"
sync={{
peer: `wss://cloud.jazz.tools/?key=${apiKey}`,
}}

View File

@@ -1,311 +1,256 @@
# jazz-react-native-auth-clerk
# chat-rn-expo
## 0.12.1
## 1.0.81
### Patch Changes
- Updated dependencies [5a00fe0]
- cojson@0.12.1
- jazz-auth-clerk@0.12.1
- jazz-react-native@0.12.1
- jazz-tools@0.12.1
- Updated dependencies [63a7aa0]
- jazz-expo@0.13.1
## 0.12.0
## 1.0.80
### Patch Changes
- Updated dependencies [bce3bcc]
- Updated dependencies [afd1374]
- jazz-expo@0.13.0
- jazz-tools@0.13.0
## 1.0.88
### Patch Changes
- jazz-react-native@0.12.2
- jazz-tools@0.12.2
## 1.0.87
### Patch Changes
- jazz-react-native@0.12.1
- jazz-tools@0.12.1
## 1.0.86
### Patch Changes
- Updated dependencies [01523dc]
- Updated dependencies [4ea87dc]
- Updated dependencies [1e6da19]
- Updated dependencies [01523dc]
- Updated dependencies [b6c6a0a]
- jazz-tools@0.12.0
- cojson@0.12.0
- jazz-auth-clerk@0.12.0
- jazz-react-native@0.12.0
## 0.11.8
## 1.0.85
### Patch Changes
- Updated dependencies [6c86c4f]
- Updated dependencies [9d0c9dc]
- cojson@0.11.8
- jazz-auth-clerk@0.11.8
- jazz-react-native@0.11.8
- jazz-tools@0.11.8
- jazz-react-native@0.11.8
- jazz-tools@0.11.8
## 0.11.7
## 1.0.84
### Patch Changes
- Updated dependencies [a140f55]
- Updated dependencies [2b94bc8]
- Updated dependencies [2957362]
- Updated dependencies [2b0d1b0]
- jazz-tools@0.11.7
- cojson@0.11.7
- jazz-react-native@0.11.7
- jazz-auth-clerk@0.11.7
## 0.11.6
## 1.0.83
### Patch Changes
- Updated dependencies [e7c85b7]
- Updated dependencies [8ed144e]
- jazz-react-native@0.11.6
- jazz-tools@0.11.6
- cojson@0.11.6
- jazz-auth-clerk@0.11.6
## 0.11.5
## 1.0.82
### Patch Changes
- Updated dependencies [60f5b3f]
- cojson@0.11.5
- jazz-auth-clerk@0.11.5
- jazz-react-native@0.11.5
- jazz-tools@0.11.5
- jazz-react-native@0.11.5
- jazz-tools@0.11.5
## 0.11.4
## 1.0.81
### Patch Changes
- Updated dependencies [57a3dbe]
- Updated dependencies [a717754]
- Updated dependencies [a91f343]
- Updated dependencies [7f036c1]
- jazz-tools@0.11.4
- cojson@0.11.4
- jazz-auth-clerk@0.11.4
- jazz-react-native@0.11.4
## 0.11.3
## 1.0.80
### Patch Changes
- Updated dependencies [68b0242]
- cojson@0.11.3
- jazz-react-native@0.11.3
- jazz-auth-clerk@0.11.3
- jazz-tools@0.11.3
- jazz-react-native@0.11.3
- jazz-tools@0.11.3
## 0.11.2
## 1.0.79
### Patch Changes
- Updated dependencies [6892dc6]
- jazz-tools@0.11.2
- jazz-react-native@0.11.2
- jazz-auth-clerk@0.11.2
## 0.11.1
## 1.0.78
### Patch Changes
- jazz-react-native@0.11.1
## 0.11.0
## 1.0.77
### Patch Changes
- a4713df: Moving to the d.ts files for the exported type definitions
- Updated dependencies [6a96d8b]
- Updated dependencies [a35249a]
- Updated dependencies [b9d194a]
- Updated dependencies [b9d194a]
- Updated dependencies [a4713df]
- Updated dependencies [e22de9f]
- Updated dependencies [34cbdc3]
- Updated dependencies [0f67e0a]
- Updated dependencies [f039e8f]
- Updated dependencies [e22de9f]
- jazz-tools@0.11.0
- cojson@0.11.0
- jazz-react-native@0.11.0
- jazz-auth-clerk@0.11.0
## 0.10.15
## 1.0.76
### Patch Changes
- Updated dependencies [2f99de0]
- Updated dependencies [f86e278]
- jazz-tools@0.10.15
- cojson@0.10.15
- jazz-auth-clerk@0.10.15
- jazz-react-native@0.10.15
## 0.10.14
## 1.0.75
### Patch Changes
- Updated dependencies [75211e3]
- jazz-tools@0.10.14
- jazz-react-native@0.10.14
- jazz-auth-clerk@0.10.14
## 0.10.13
## 1.0.74
### Patch Changes
- Updated dependencies [07feedd]
- jazz-tools@0.10.13
- jazz-auth-clerk@0.10.13
- jazz-react-native@0.10.13
## 0.10.12
## 1.0.73
### Patch Changes
- Updated dependencies [4612e05]
- jazz-tools@0.10.12
- jazz-react-native@0.10.12
- jazz-auth-clerk@0.10.12
## 0.10.11
## 1.0.72
### Patch Changes
- Updated dependencies [5a54e4a]
- jazz-react-native@0.10.11
## 0.10.10
## 1.0.71
### Patch Changes
- Updated dependencies [3405d8f]
- jazz-react-native@0.10.10
## 0.10.9
## 1.0.70
### Patch Changes
- jazz-auth-clerk@0.10.9
## 0.10.8
### Patch Changes
- Updated dependencies [153dc99]
- Updated dependencies [2fb6428]
- cojson@0.10.8
- jazz-tools@0.10.8
- jazz-auth-clerk@0.10.8
- jazz-react-native@0.10.8
## 0.10.7
## 1.0.69
### Patch Changes
- Updated dependencies [0f83320]
- Updated dependencies [012022d]
- Updated dependencies [1136d9b]
- Updated dependencies [0eed228]
- cojson@0.10.7
- jazz-react-native@0.10.7
- jazz-auth-clerk@0.10.7
- jazz-tools@0.10.7
## 0.10.6
## 1.0.68
### Patch Changes
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
- jazz-react-native@0.10.6
- jazz-auth-clerk@0.10.6
## 0.10.5
## 1.0.67
### Patch Changes
- Updated dependencies [59ff77e]
- jazz-tools@0.10.5
- jazz-auth-clerk@0.10.5
- jazz-react-native@0.10.5
## 0.10.4
## 1.0.66
### Patch Changes
- Updated dependencies [1af6072]
- cojson@0.10.4
- jazz-auth-clerk@0.10.4
- jazz-react-native@0.10.4
- jazz-tools@0.10.4
- jazz-react-native@0.10.4
- jazz-tools@0.10.4
## 0.10.3
## 1.0.65
### Patch Changes
- Updated dependencies [d8582fc]
- jazz-tools@0.10.3
- jazz-auth-clerk@0.10.3
- jazz-react-native@0.10.3
## 0.10.2
## 1.0.64
### Patch Changes
- Updated dependencies [cae3a9e]
- cojson@0.10.2
- jazz-auth-clerk@0.10.2
- jazz-react-native@0.10.2
- jazz-tools@0.10.2
- jazz-react-native@0.10.2
- jazz-tools@0.10.2
## 0.10.1
## 1.0.63
### Patch Changes
- Updated dependencies [5a63cba]
- Updated dependencies [5a63cba]
- jazz-tools@0.10.1
- cojson@0.10.1
- jazz-auth-clerk@0.10.1
- jazz-react-native@0.10.1
## 0.10.0
### Minor Changes
- 498954f: Introducing the new auth system!
## 1.0.62
### Patch Changes
- Updated dependencies [b426342]
- Updated dependencies [498954f]
- Updated dependencies [8217981]
- Updated dependencies [d42c2aa]
- Updated dependencies [dd03464]
- Updated dependencies [b426342]
- Updated dependencies [ac3d9fa]
- Updated dependencies [610543c]
- cojson@0.10.0
- jazz-react-native@0.10.0
- jazz-auth-clerk@0.10.0
- jazz-tools@0.10.0
## 0.9.23
## 1.0.61
### Patch Changes
- Updated dependencies [70c9a5d]
- cojson@0.9.23
- jazz-react-native@0.9.23
- jazz-tools@0.9.23
- jazz-react-native@0.9.23
- jazz-tools@0.9.23
## 0.9.22
## 1.0.60
### Patch Changes
- jazz-react-native@0.9.22
## 0.9.21
## 1.0.59
### Patch Changes
@@ -313,7 +258,7 @@
- jazz-tools@0.9.21
- jazz-react-native@0.9.21
## 0.9.20
## 1.0.58
### Patch Changes
@@ -321,25 +266,21 @@
- jazz-tools@0.9.20
- jazz-react-native@0.9.20
## 0.9.19
## 1.0.57
### Patch Changes
- Updated dependencies [6ad0a9f]
- cojson@0.9.19
- jazz-react-native@0.9.19
- jazz-tools@0.9.19
- jazz-react-native@0.9.19
- jazz-tools@0.9.19
## 0.9.18
## 1.0.56
### Patch Changes
- Updated dependencies [8898b10]
- cojson@0.9.18
- jazz-react-native@0.9.18
- jazz-tools@0.9.18
- jazz-react-native@0.9.18
- jazz-tools@0.9.18
## 0.9.17
## 1.0.55
### Patch Changes
@@ -348,18 +289,15 @@
- jazz-tools@0.9.17
- jazz-react-native@0.9.17
## 0.9.16
## 1.0.54
### Patch Changes
- 24b3b6a: Extract friendly user name for profile creation when authenticating using Clerk with a regular email address.
Email passed to creationProps when using Clerk auth
Clear stored Clerk credentials on logout
- Updated dependencies [24b3b6a]
- jazz-tools@0.9.16
- jazz-react-native@0.9.16
## 0.9.15
## 1.0.53
### Patch Changes
@@ -367,7 +305,7 @@
- jazz-tools@0.9.15
- jazz-react-native@0.9.15
## 0.9.14
## 1.0.52
### Patch Changes
@@ -375,56 +313,45 @@
- jazz-tools@0.9.14
- jazz-react-native@0.9.14
## 0.9.13
## 1.0.51
### Patch Changes
- Updated dependencies [8d29e50]
- cojson@0.9.13
- jazz-react-native@0.9.13
- jazz-tools@0.9.13
- jazz-react-native@0.9.13
- jazz-tools@0.9.13
## 0.9.12
## 1.0.50
### Patch Changes
- Updated dependencies [15d4b2a]
- cojson@0.9.12
- jazz-react-native@0.9.12
- jazz-tools@0.9.12
- jazz-react-native@0.9.12
- jazz-tools@0.9.12
## 0.9.11
## 1.0.49
### Patch Changes
- Updated dependencies [efbf3d8]
- Updated dependencies [5863bad]
- cojson@0.9.11
- jazz-react-native@0.9.11
- jazz-tools@0.9.11
- jazz-react-native@0.9.11
- jazz-tools@0.9.11
## 0.9.10
## 1.0.48
### Patch Changes
- Updated dependencies [4aa377d]
- Updated dependencies [f76274c]
- Updated dependencies [5e83864]
- cojson@0.9.10
- jazz-react-native@0.9.10
- jazz-tools@0.9.10
## 0.9.9
## 1.0.47
### Patch Changes
- Updated dependencies [8eb9247]
- Updated dependencies [8eb9247]
- jazz-tools@0.9.9
- cojson@0.9.9
- jazz-react-native@0.9.9
## 0.9.8
## 1.0.46
### Patch Changes
@@ -432,41 +359,41 @@
- jazz-tools@0.9.8
- jazz-react-native@0.9.8
## 0.9.6
## 1.0.45
### Patch Changes
- Updated dependencies [8a390d2]
- jazz-react-native@0.9.6
## 0.9.5
## 1.0.44
### Patch Changes
- Updated dependencies [c871912]
- jazz-react-native@0.9.5
## 0.9.4
## 1.0.43
### Patch Changes
- jazz-react-native@0.9.4
## 0.9.3
## 1.0.42
### Patch Changes
- Updated dependencies [7cd691f]
- jazz-react-native@0.9.3
## 0.9.2
## 1.0.41
### Patch Changes
- Updated dependencies [80fd3e9]
- jazz-react-native@0.9.2
## 0.9.1
## 1.0.40
### Patch Changes
@@ -474,20 +401,17 @@
- jazz-tools@0.9.1
- jazz-react-native@0.9.1
## 0.9.0
## 1.0.39
### Patch Changes
- Updated dependencies [8eda792]
- Updated dependencies [1da4d55]
- Updated dependencies [8eda792]
- Updated dependencies [1ef3226]
- Updated dependencies [1e5e3a1]
- cojson@0.9.0
- jazz-react-native@0.9.0
- jazz-tools@0.9.0
## 0.8.51
## 1.0.38
### Patch Changes
@@ -496,126 +420,283 @@
- jazz-tools@0.8.51
- jazz-react-native@0.8.51
## 0.8.50
## 1.0.37
### Patch Changes
- Updated dependencies [43378ef]
- cojson@0.8.50
- jazz-react-native@0.8.50
- jazz-tools@0.8.50
- jazz-react-native@0.8.50
- jazz-tools@0.8.50
## 0.8.49
## 1.0.36
### Patch Changes
- Updated dependencies [25dfd90]
- cojson@0.8.49
- jazz-react-native@0.8.49
- jazz-tools@0.8.49
- jazz-react-native@0.8.49
- jazz-tools@0.8.49
## 0.8.48
## 1.0.35
### Patch Changes
- Updated dependencies [635e824]
- Updated dependencies [10ea733]
- Updated dependencies [0a85982]
- jazz-tools@0.8.48
- cojson@0.8.48
- jazz-react-native@0.8.48
## 0.8.47
## 1.0.34
### Patch Changes
- Updated dependencies [33ef9c4]
- jazz-react-native@0.8.47
## 0.8.46
## 1.0.33
### Patch Changes
- Updated dependencies [ab4ffbd]
- jazz-react-native@0.8.46
## 0.8.45
## 1.0.32
### Patch Changes
- Updated dependencies [6f0bd7f]
- Updated dependencies [fca6a0b]
- Updated dependencies [7701307]
- Updated dependencies [fa41f8e]
- Updated dependencies [88d7d9a]
- Updated dependencies [60e35ea]
- cojson@0.8.45
- jazz-react-native@0.8.45
- jazz-tools@0.8.45
## 0.8.44
## 1.0.31
### Patch Changes
- Updated dependencies [5d20c81]
- cojson@0.8.44
- jazz-react-native@0.8.44
- jazz-tools@0.8.44
- jazz-react-native@0.8.44
- jazz-tools@0.8.44
## 0.8.43
## 1.0.30
### Patch Changes
- cdc7f9f: Fixing react-native examples
- jazz-react-native@0.8.41
- jazz-tools@0.8.41
## 0.8.41
### Patch Changes
- Updated dependencies [3252502]
- Updated dependencies [6370348]
- Updated dependencies [ac216b9]
- cojson@0.8.41
- jazz-react-native@0.8.41
- jazz-tools@0.8.41
## 0.8.39
## 1.0.29
### Patch Changes
- Updated dependencies [0c6b0f3]
- Updated dependencies [249eecb]
- Updated dependencies [3121551]
- jazz-react-native@0.8.39
- jazz-tools@0.8.39
- cojson@0.8.39
## 0.8.38
## 1.0.28
### Patch Changes
- Updated dependencies [b00ee91]
- Updated dependencies [f488c09]
- cojson@0.8.38
- jazz-react-native@0.8.38
- jazz-tools@0.8.38
- jazz-react-native@0.8.38
- jazz-tools@0.8.38
## 0.8.37
## 1.0.27
### Patch Changes
- Updated dependencies [3d9f12e]
- cojson@0.8.37
- jazz-react-native@0.8.37
- jazz-tools@0.8.37
- jazz-react-native@0.8.37
- jazz-tools@0.8.37
## 0.8.36
## 1.0.26
### Patch Changes
- c84764a: feat: added jazz-react-native-auth-clerk package
- Updated dependencies [c84764a]
- Updated dependencies [441fe27]
- jazz-react-native@0.8.36
- cojson@0.8.36
- jazz-tools@0.8.36
## 1.0.25
### Patch Changes
- Updated dependencies [8b87117]
- jazz-tools@0.8.35
- jazz-react-native@0.8.35
## 1.0.24
### Patch Changes
- jazz-react-native@0.8.34
- jazz-tools@0.8.34
## 1.0.23
### Patch Changes
- Updated dependencies [df42b2b]
- jazz-tools@0.8.32
- jazz-react-native@0.8.32
## 1.0.22
### Patch Changes
- jazz-react-native@0.8.31
- jazz-tools@0.8.31
## 1.0.21
### Patch Changes
- jazz-react-native@0.8.30
- jazz-tools@0.8.30
## 1.0.20
### Patch Changes
- jazz-react-native@0.8.29
- jazz-tools@0.8.29
## 1.0.19
### Patch Changes
- jazz-react-native@0.8.28
- jazz-tools@0.8.28
## 1.0.18
### Patch Changes
- jazz-react-native@0.8.27
- jazz-tools@0.8.27
## 1.0.17
### Patch Changes
- Updated dependencies [d348c2d]
- Updated dependencies [6902b5b]
- Updated dependencies [1a0cd3d]
- jazz-tools@0.8.23
- jazz-react-native@0.8.23
## 1.0.16
### Patch Changes
- Updated dependencies [149ca97]
- jazz-tools@0.8.21
- jazz-react-native@0.8.21
## 1.0.15
### Patch Changes
- Updated dependencies [3ef3ff3]
- jazz-react-native@0.8.20
## 1.0.14
### Patch Changes
- jazz-react-native@0.8.19
- jazz-tools@0.8.19
## 1.0.13
### Patch Changes
- jazz-react-native@0.8.18
- jazz-tools@0.8.18
## 1.0.12
### Patch Changes
- jazz-react-native@0.8.17
- jazz-tools@0.8.17
## 1.0.11
### Patch Changes
- jazz-react-native@0.8.16
- jazz-tools@0.8.16
## 1.0.10
### Patch Changes
- Updated dependencies [cce679b]
- jazz-tools@0.8.15
- jazz-react-native@0.8.15
## 1.0.9
### Patch Changes
- Updated dependencies [36273b3]
- jazz-tools@0.8.14
- jazz-react-native@0.8.14
## 1.0.8
### Patch Changes
- Updated dependencies [fd011d7]
- jazz-tools@0.8.13
- jazz-react-native@0.8.13
## 1.0.7
### Patch Changes
- jazz-react-native@0.8.12
- jazz-tools@0.8.12
## 1.0.6
### Patch Changes
- jazz-react-native@0.8.11
- jazz-tools@0.8.11
## 1.0.5
### Patch Changes
- b7639cf: feat(react-native): replaced react-native-mmkv with expo-secure-store and initialize it by default as kvStore in createJazzRNApp() (BREAKING)
- Updated dependencies [b7639cf]
- jazz-react-native@0.8.8
## 1.0.4
### Patch Changes
- Updated dependencies [32b05b6]
- jazz-react-native@0.8.7
## 1.0.3
### Patch Changes
- jazz-react-native@0.8.6
## 1.0.2
### Patch Changes
- Updated dependencies [c3f4e6b]
- Updated dependencies [d9152ed]
- jazz-react-native@0.8.5
- jazz-tools@0.8.5
## 1.0.1
### Patch Changes
- Updated dependencies
- jazz-react-native@0.8.3
- jazz-tools@0.8.3

View File

@@ -0,0 +1,24 @@
# 🎷 Jazz + Expo + `react-navigation` + Demo Auth
## 🚀 How to Run
### 1. Inside the Workspace Root
First, install dependencies and build the project:
```bash
pnpm i
pnpm run build
```
### 2. Inside the `examples/chat-rn-expo` Directory
Next, navigate to the specific example project and run the following commands:
```bash
pnpm expo prebuild
pnpx pod-install
pnpm expo run:ios
```
This will set up and launch the app on iOS. For Android, you can replace the last command with `pnpm expo run:android`.

View File

@@ -0,0 +1,34 @@
{
"expo": {
"name": "jazz-chat-rn-expo",
"scheme": "jazz-chat-rn-expo",
"slug": "jazz-chat-rn-expo",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.jazz.chatrn"
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"package": "com.jazz.chatrn"
},
"plugins": ["expo-secure-store", "expo-sqlite", "expo-build-properties"],
"extra": {
"eas": {
"projectId": "e0e61872-1906-4c84-b9d8-9be77355cad0"
}
},
"owner": "paxx"
}
}

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -0,0 +1,9 @@
module.exports = function (api) {
api.cache(true);
return {
presets: [
["babel-preset-expo", { jsxImportSource: "nativewind" }],
"nativewind/babel",
],
};
};

View File

@@ -0,0 +1,35 @@
// Learn more https://docs.expo.dev/guides/monorepos
const { getDefaultConfig } = require("expo/metro-config");
const { withNativeWind } = require("nativewind/metro");
const { FileStore } = require("metro-cache");
const path = require("path");
// eslint-disable-next-line no-undef
const projectRoot = __dirname;
const workspaceRoot = path.resolve(projectRoot, "../..");
const config = getDefaultConfig(projectRoot, { isCSSEnabled: true });
// Since we are using pnpm, we have to setup the monorepo manually for Metro
// #1 - Watch all files in the monorepo
config.watchFolders = [workspaceRoot];
// #2 - Try resolving with project modules first, then workspace modules
config.resolver.nodeModulesPaths = [
path.resolve(projectRoot, "node_modules"),
path.resolve(workspaceRoot, "node_modules"),
];
config.resolver.sourceExts = ["mjs", "js", "json", "ts", "tsx"];
config.resolver.requireCycleIgnorePatterns = [
/(^|\/|\\)node_modules($|\/|\\)/,
/(^|\/|\\)packages($|\/|\\)/,
];
// Use turborepo to restore the cache when possible
config.cacheStores = [
new FileStore({
root: path.join(projectRoot, "node_modules", ".cache", "metro"),
}),
];
// module.exports = config;
module.exports = withNativeWind(config, { input: "./global.css" });

View File

@@ -0,0 +1,51 @@
{
"name": "chat-rn-expo",
"version": "1.0.81",
"main": "index.js",
"scripts": {
"build": "expo export -p ios",
"start": "expo start",
"format-and-lint": "biome check .",
"format-and-lint:fix": "biome check . --write",
"android": "expo run:android",
"ios": "expo prebuild && pnpx pod-install && expo run:ios",
"web": "expo start --web"
},
"dependencies": {
"@azure/core-asynciterator-polyfill": "^1.0.2",
"@bacons/text-decoder": "0.0.0",
"@craftzdog/react-native-buffer": "6.0.5",
"@react-native-community/netinfo": "11.4.1",
"@react-navigation/native": "7.0.19",
"@react-navigation/native-stack": "7.2.1",
"clsx": "^2.0.0",
"expo": "52.0.42",
"expo-build-properties": "~0.13.1",
"expo-clipboard": "~7.0.0",
"expo-constants": "~17.0.8",
"expo-dev-client": "~5.0.16",
"expo-linking": "~7.0.5",
"expo-secure-store": "~14.0.0",
"expo-sqlite": "15.1.3",
"expo-status-bar": "~2.0.1",
"expo-web-browser": "~14.0.1",
"jazz-expo": "workspace:*",
"jazz-tools": "workspace:*",
"nativewind": "^4.1.21",
"react": "18.3.1",
"react-dom": "18.3.1",
"react-native": "0.76.7",
"react-native-get-random-values": "^1.11.0",
"react-native-safe-area-context": "4.12.0",
"react-native-screens": "4.4.0",
"react-native-url-polyfill": "^2.0.0",
"readable-stream": "4.7.0"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@types/react": "~18.3.12",
"tailwindcss": "^3.4.17",
"typescript": "~5.6.2"
},
"private": true
}

View File

@@ -0,0 +1,72 @@
import "../global.css";
import {
NavigationContainer,
useNavigationContainerRef,
} from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import * as Linking from "expo-linking";
import React, { StrictMode, useEffect, useState } from "react";
import HandleInviteScreen from "./invite";
import { JazzProvider } from "jazz-expo";
import { apiKey } from "./apiKey";
import ChatScreen from "./chat";
const Stack = createNativeStackNavigator();
const prefix = Linking.createURL("/");
const linking = {
prefixes: [prefix],
config: {
screens: {
HandleInviteScreen: {
path: "router/invite/:valueHint?/:valueID/:inviteSecret",
},
},
},
};
function App() {
const [initialRoute, setInitialRoute] = useState<
"ChatScreen" | "HandleInviteScreen"
>("ChatScreen");
const navigationRef = useNavigationContainerRef();
useEffect(() => {
Linking.getInitialURL().then((url) => {
if (url) {
if (url && url.includes("invite")) {
setInitialRoute("HandleInviteScreen");
}
}
});
}, []);
return (
<StrictMode>
<JazzProvider
sync={{
peer: `wss://cloud.jazz.tools/?key=${apiKey}`,
}}
>
<NavigationContainer linking={linking} ref={navigationRef}>
<Stack.Navigator initialRouteName={initialRoute}>
<Stack.Screen
options={{ title: "Jazz Chat" }}
name="ChatScreen"
// @ts-ignore
component={ChatScreen}
/>
<Stack.Screen
name="HandleInviteScreen"
component={HandleInviteScreen}
/>
</Stack.Navigator>
</NavigationContainer>
</JazzProvider>
</StrictMode>
);
}
export default App;

View File

@@ -0,0 +1 @@
export const apiKey = "chat-rn-expo-example-jazz@garden.co";

View File

@@ -0,0 +1,213 @@
import clsx from "clsx";
import * as Clipboard from "expo-clipboard";
import { Group, ID, Profile } from "jazz-tools";
import { useEffect, useState } from "react";
import React, {
Button,
FlatList,
KeyboardAvoidingView,
SafeAreaView,
Text,
TextInput,
TouchableOpacity,
View,
Alert,
} from "react-native";
import { useAccount, useCoState } from "jazz-expo";
import { Chat, Message } from "./schema";
export default function ChatScreen({ navigation }: { navigation: any }) {
const { me, logOut } = useAccount();
const [chatId, setChatId] = useState<ID<Chat>>();
const loadedChat = useCoState(Chat, chatId, { resolve: { $each: true } });
const [message, setMessage] = useState("");
const profile = useCoState(Profile, me._refs.profile?.id, {});
function handleLogOut() {
setChatId(undefined);
logOut();
}
useEffect(() => {
navigation.setOptions({
headerRight: () => <Button onPress={handleLogOut} title="Logout" />,
headerLeft: () =>
loadedChat ? (
<Button
onPress={() => {
if (loadedChat?.id) {
Clipboard.setStringAsync(
`https://chat.jazz.tools/#/chat/${loadedChat.id}`,
);
Alert.alert("Copied to clipboard", `Chat ID: ${loadedChat.id}`);
}
}}
title="Share"
/>
) : null,
});
}, [navigation, loadedChat]);
const createChat = () => {
const group = Group.create({ owner: me });
group.addMember("everyone", "writer");
const chat = Chat.create([], { owner: group });
setChatId(chat.id);
};
const joinChat = () => {
Alert.prompt(
"Join Chat",
"Enter the Chat ID (example: co_zBGEHYvRfGuT2YSBraY3njGjnde)",
[
{
text: "Cancel",
style: "cancel",
},
{
text: "Join",
onPress: (chatId) => {
if (chatId) {
setChatId(chatId as ID<Chat>);
} else {
Alert.alert("Error", "Chat ID cannot be empty.");
}
},
},
],
"plain-text",
);
};
const sendMessage = () => {
if (!loadedChat) return;
if (message.trim()) {
loadedChat.push(
Message.create({ text: message }, { owner: loadedChat?._owner }),
);
setMessage("");
}
};
const renderMessageItem = ({ item }: { item: Message }) => {
const isMe = item._edits?.text?.by?.isMe;
return (
<View
className={clsx(
`rounded-lg p-1 px-1.5 max-w-[80%] `,
isMe ? `bg-gray-200 self-end text-right` : `bg-gray-300 self-start `,
)}
>
{!isMe ? (
<Text
className={clsx(
`text-xs text-gray-500`,
isMe ? "text-right" : "text-left",
)}
>
{item?._edits?.text?.by?.profile?.name}
</Text>
) : null}
<View
className={clsx(
"flex relative items-end justify-between",
isMe ? "flex-row" : "flex-row",
)}
>
<Text className={clsx(`text-black text-md max-w-[85%]`)}>
{item.text}
</Text>
<Text
className={clsx(
"text-[10px] text-gray-500 text-right ml-2",
!isMe ? "mt-2" : "mt-1",
)}
>
{item?._edits?.text?.madeAt?.getHours().toString().padStart(2, "0")}
:
{item?._edits?.text?.madeAt
?.getMinutes()
.toString()
.padStart(2, "0")}
</Text>
</View>
</View>
);
};
return (
<View className="flex flex-col h-full">
{!loadedChat ? (
<View className="flex flex-col h-full items-center justify-center">
<Text className="text-m font-bold mb-6">Username</Text>
<TextInput
className="rounded h-12 p-2 mb-12 w-40 border border-gray-200 block"
value={profile?.name ?? ""}
onChangeText={(value) => {
if (profile) {
profile.name = value;
}
}}
textAlignVertical="center"
onSubmitEditing={sendMessage}
testID="username-input"
/>
<TouchableOpacity
onPress={createChat}
className="bg-blue-500 p-4 rounded-md"
>
<Text className="text-white font-semibold">Start new chat</Text>
</TouchableOpacity>
<TouchableOpacity
onPress={joinChat}
className="bg-green-500 p-4 rounded-md mt-4"
>
<Text className="text-white font-semibold">Join chat</Text>
</TouchableOpacity>
</View>
) : (
<>
<FlatList
contentContainerStyle={{
flexGrow: 1,
flex: 1,
gap: 6,
padding: 8,
}}
className="flex"
data={loadedChat}
keyExtractor={(item) => item.id}
renderItem={renderMessageItem}
/>
<KeyboardAvoidingView
keyboardVerticalOffset={110}
behavior="padding"
className="p-3 bg-white border-t border-gray-300"
>
<SafeAreaView className="flex flex-row items-center gap-2">
<TextInput
className="rounded-full h-8 py-0 px-2 border border-gray-200 block flex-1"
value={message}
onChangeText={setMessage}
placeholder="Type a message..."
textAlignVertical="center"
onSubmitEditing={sendMessage}
testID="message-input"
/>
<TouchableOpacity
onPress={sendMessage}
className="bg-gray-300 text-white rounded-full h-8 w-8 items-center justify-center"
testID="send-button"
>
<Text></Text>
</TouchableOpacity>
</SafeAreaView>
</KeyboardAvoidingView>
</>
)}
</View>
);
}

View File

@@ -0,0 +1,18 @@
import { useAcceptInvite } from "jazz-expo";
import React, { Text } from "react-native";
import { Chat } from "./schema";
export default function HandleInviteScreen({
navigation,
}: {
navigation: any;
}) {
useAcceptInvite({
invitedObjectSchema: Chat,
onAccept: async (chatId) => {
navigation.navigate("ChatScreen", { chatId });
},
});
return <Text>Accepting invite...</Text>;
}

View File

@@ -0,0 +1,7 @@
import { CoList, CoMap, co } from "jazz-tools";
export class Message extends CoMap {
text = co.string;
}
export class Chat extends CoList.Of(co.ref(Message)) {}

View File

@@ -0,0 +1,2 @@
BUNDLE_PATH: "vendor/bundle"
BUNDLE_FORCE_RUBY_PLATFORM: 1

View File

@@ -0,0 +1,5 @@
module.exports = {
root: true,
extends: ["@react-native", "plugin:prettier/recommended"],
plugins: ["prettier"],
};

View File

@@ -1,38 +1,75 @@
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
# OSX
#
.DS_Store
# dependencies
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
**/.xcode.env.local
# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
*.hprof
.cxx/
*.keystore
!debug.keystore
.kotlin/
# node.js
#
node_modules/
npm-debug.log
yarn-error.log
# Expo
.expo/
dist/
web-build/
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/
# Native
*.orig.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision
**/fastlane/report.xml
**/fastlane/Preview.html
**/fastlane/screenshots
**/fastlane/test_output
# Metro
# Bundle artifact
*.jsbundle
# Ruby / CocoaPods
**/Pods/
/vendor/bundle/
# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*
# debug
npm-debug.*
yarn-debug.*
yarn-error.*
# testing
/coverage
# macOS
.DS_Store
*.pem
# local env files
.env*.local
# typescript
*.tsbuildinfo
ios
android
# Yarn
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

View File

@@ -0,0 +1,2 @@
ios
android

View File

@@ -0,0 +1,7 @@
module.exports = {
arrowParens: "avoid",
bracketSameLine: true,
bracketSpacing: true,
singleQuote: false,
trailingComma: "all",
};

View File

@@ -0,0 +1 @@
{}

View File

@@ -1,679 +1,21 @@
# chat-rn
## 1.0.87
## 1.0.90
### Patch Changes
- jazz-react-native@0.12.1
- jazz-tools@0.12.1
- Updated dependencies [63a7aa0]
- jazz-react-native@0.13.1
## 1.0.86
## 1.0.89
### Patch Changes
- Updated dependencies [01523dc]
- Updated dependencies [4ea87dc]
- Updated dependencies [1e6da19]
- Updated dependencies [b6c6a0a]
- jazz-tools@0.12.0
- jazz-react-native@0.12.0
## 1.0.85
### Patch Changes
- jazz-react-native@0.11.8
- jazz-tools@0.11.8
## 1.0.84
### Patch Changes
- Updated dependencies [a140f55]
- Updated dependencies [2b0d1b0]
- jazz-tools@0.11.7
- jazz-react-native@0.11.7
## 1.0.83
### Patch Changes
- Updated dependencies [e7c85b7]
- jazz-react-native@0.11.6
- jazz-tools@0.11.6
## 1.0.82
### Patch Changes
- jazz-react-native@0.11.5
- jazz-tools@0.11.5
## 1.0.81
### Patch Changes
- Updated dependencies [57a3dbe]
- Updated dependencies [a717754]
- Updated dependencies [a91f343]
- jazz-tools@0.11.4
- jazz-react-native@0.11.4
## 1.0.80
### Patch Changes
- jazz-react-native@0.11.3
- jazz-tools@0.11.3
## 1.0.79
### Patch Changes
- Updated dependencies [6892dc6]
- jazz-tools@0.11.2
- jazz-react-native@0.11.2
## 1.0.78
### Patch Changes
- jazz-react-native@0.11.1
## 1.0.77
### Patch Changes
- Updated dependencies [6a96d8b]
- Updated dependencies [a35249a]
- Updated dependencies [b9d194a]
- Updated dependencies [a4713df]
- Updated dependencies [34cbdc3]
- Updated dependencies [f039e8f]
- Updated dependencies [e22de9f]
- jazz-tools@0.11.0
- jazz-react-native@0.11.0
## 1.0.76
### Patch Changes
- Updated dependencies [2f99de0]
- jazz-tools@0.10.15
- jazz-react-native@0.10.15
## 1.0.75
### Patch Changes
- Updated dependencies [75211e3]
- jazz-tools@0.10.14
- jazz-react-native@0.10.14
## 1.0.74
### Patch Changes
- Updated dependencies [07feedd]
- jazz-tools@0.10.13
- jazz-react-native@0.10.13
## 1.0.73
### Patch Changes
- Updated dependencies [4612e05]
- jazz-tools@0.10.12
- jazz-react-native@0.10.12
## 1.0.72
### Patch Changes
- Updated dependencies [5a54e4a]
- jazz-react-native@0.10.11
## 1.0.71
### Patch Changes
- Updated dependencies [3405d8f]
- jazz-react-native@0.10.10
## 1.0.70
### Patch Changes
- Updated dependencies [2fb6428]
- jazz-tools@0.10.8
- jazz-react-native@0.10.8
## 1.0.69
### Patch Changes
- Updated dependencies [1136d9b]
- Updated dependencies [0eed228]
- jazz-react-native@0.10.7
- jazz-tools@0.10.7
## 1.0.68
### Patch Changes
- Updated dependencies [ada802b]
- jazz-tools@0.10.6
- jazz-react-native@0.10.6
## 1.0.67
### Patch Changes
- Updated dependencies [59ff77e]
- jazz-tools@0.10.5
- jazz-react-native@0.10.5
## 1.0.66
### Patch Changes
- jazz-react-native@0.10.4
- jazz-tools@0.10.4
## 1.0.65
### Patch Changes
- Updated dependencies [d8582fc]
- jazz-tools@0.10.3
- jazz-react-native@0.10.3
## 1.0.64
### Patch Changes
- jazz-react-native@0.10.2
- jazz-tools@0.10.2
## 1.0.63
### Patch Changes
- Updated dependencies [5a63cba]
- jazz-tools@0.10.1
- jazz-react-native@0.10.1
## 1.0.62
### Patch Changes
- Updated dependencies [498954f]
- Updated dependencies [d42c2aa]
- Updated dependencies [dd03464]
- Updated dependencies [b426342]
- jazz-react-native@0.10.0
- jazz-tools@0.10.0
## 1.0.61
### Patch Changes
- jazz-react-native@0.9.23
- jazz-tools@0.9.23
## 1.0.60
### Patch Changes
- jazz-react-native@0.9.22
## 1.0.59
### Patch Changes
- Updated dependencies [1be017d]
- jazz-tools@0.9.21
- jazz-react-native@0.9.21
## 1.0.58
### Patch Changes
- Updated dependencies [b01cc1f]
- jazz-tools@0.9.20
- jazz-react-native@0.9.20
## 1.0.57
### Patch Changes
- jazz-react-native@0.9.19
- jazz-tools@0.9.19
## 1.0.56
### Patch Changes
- jazz-react-native@0.9.18
- jazz-tools@0.9.18
## 1.0.55
### Patch Changes
- Updated dependencies [c2ca1fe]
- Updated dependencies [1227047]
- jazz-tools@0.9.17
- jazz-react-native@0.9.17
## 1.0.54
### Patch Changes
- Updated dependencies [24b3b6a]
- jazz-tools@0.9.16
- jazz-react-native@0.9.16
## 1.0.53
### Patch Changes
- Updated dependencies [7491711]
- jazz-tools@0.9.15
- jazz-react-native@0.9.15
## 1.0.52
### Patch Changes
- Updated dependencies [3df93cc]
- jazz-tools@0.9.14
- jazz-react-native@0.9.14
## 1.0.51
### Patch Changes
- jazz-react-native@0.9.13
- jazz-tools@0.9.13
## 1.0.50
### Patch Changes
- jazz-react-native@0.9.12
- jazz-tools@0.9.12
## 1.0.49
### Patch Changes
- jazz-react-native@0.9.11
- jazz-tools@0.9.11
## 1.0.48
### Patch Changes
- Updated dependencies [f76274c]
- Updated dependencies [5e83864]
- jazz-react-native@0.9.10
- jazz-tools@0.9.10
## 1.0.47
### Patch Changes
- Updated dependencies [8eb9247]
- jazz-tools@0.9.9
- jazz-react-native@0.9.9
## 1.0.46
### Patch Changes
- Updated dependencies [d1d773b]
- jazz-tools@0.9.8
- jazz-react-native@0.9.8
## 1.0.45
### Patch Changes
- Updated dependencies [8a390d2]
- jazz-react-native@0.9.6
## 1.0.44
### Patch Changes
- Updated dependencies [c871912]
- jazz-react-native@0.9.5
## 1.0.43
### Patch Changes
- jazz-react-native@0.9.4
## 1.0.42
### Patch Changes
- Updated dependencies [7cd691f]
- jazz-react-native@0.9.3
## 1.0.41
### Patch Changes
- Updated dependencies [80fd3e9]
- jazz-react-native@0.9.2
## 1.0.40
### Patch Changes
- Updated dependencies [1b71969]
- jazz-tools@0.9.1
- jazz-react-native@0.9.1
## 1.0.39
### Patch Changes
- Updated dependencies [1da4d55]
- Updated dependencies [8eda792]
- Updated dependencies [1e5e3a1]
- jazz-react-native@0.9.0
- jazz-tools@0.9.0
## 1.0.38
### Patch Changes
- Updated dependencies [dc62b95]
- Updated dependencies [1de26f8]
- jazz-tools@0.8.51
- jazz-react-native@0.8.51
## 1.0.37
### Patch Changes
- jazz-react-native@0.8.50
- jazz-tools@0.8.50
## 1.0.36
### Patch Changes
- jazz-react-native@0.8.49
- jazz-tools@0.8.49
## 1.0.35
### Patch Changes
- Updated dependencies [635e824]
- Updated dependencies [0a85982]
- jazz-tools@0.8.48
- jazz-react-native@0.8.48
## 1.0.34
### Patch Changes
- Updated dependencies [33ef9c4]
- jazz-react-native@0.8.47
## 1.0.33
### Patch Changes
- Updated dependencies [ab4ffbd]
- jazz-react-native@0.8.46
## 1.0.32
### Patch Changes
- Updated dependencies [7701307]
- Updated dependencies [fa41f8e]
- Updated dependencies [88d7d9a]
- Updated dependencies [60e35ea]
- jazz-react-native@0.8.45
- jazz-tools@0.8.45
## 1.0.31
### Patch Changes
- jazz-react-native@0.8.44
- jazz-tools@0.8.44
## 1.0.30
### Patch Changes
- jazz-react-native@0.8.41
- jazz-tools@0.8.41
## 1.0.29
### Patch Changes
- Updated dependencies [0c6b0f3]
- Updated dependencies [249eecb]
- jazz-react-native@0.8.39
- jazz-tools@0.8.39
## 1.0.28
### Patch Changes
- jazz-react-native@0.8.38
- jazz-tools@0.8.38
## 1.0.27
### Patch Changes
- jazz-react-native@0.8.37
- jazz-tools@0.8.37
## 1.0.26
### Patch Changes
- Updated dependencies [c84764a]
- Updated dependencies [441fe27]
- jazz-react-native@0.8.36
- jazz-tools@0.8.36
## 1.0.25
### Patch Changes
- Updated dependencies [8b87117]
- jazz-tools@0.8.35
- jazz-react-native@0.8.35
## 1.0.24
### Patch Changes
- jazz-react-native@0.8.34
- jazz-tools@0.8.34
## 1.0.23
### Patch Changes
- Updated dependencies [df42b2b]
- jazz-tools@0.8.32
- jazz-react-native@0.8.32
## 1.0.22
### Patch Changes
- jazz-react-native@0.8.31
- jazz-tools@0.8.31
## 1.0.21
### Patch Changes
- jazz-react-native@0.8.30
- jazz-tools@0.8.30
## 1.0.20
### Patch Changes
- jazz-react-native@0.8.29
- jazz-tools@0.8.29
## 1.0.19
### Patch Changes
- jazz-react-native@0.8.28
- jazz-tools@0.8.28
## 1.0.18
### Patch Changes
- jazz-react-native@0.8.27
- jazz-tools@0.8.27
## 1.0.17
### Patch Changes
- Updated dependencies [d348c2d]
- Updated dependencies [6902b5b]
- Updated dependencies [1a0cd3d]
- jazz-tools@0.8.23
- jazz-react-native@0.8.23
## 1.0.16
### Patch Changes
- Updated dependencies [149ca97]
- jazz-tools@0.8.21
- jazz-react-native@0.8.21
## 1.0.15
### Patch Changes
- Updated dependencies [3ef3ff3]
- jazz-react-native@0.8.20
## 1.0.14
### Patch Changes
- jazz-react-native@0.8.19
- jazz-tools@0.8.19
## 1.0.13
### Patch Changes
- jazz-react-native@0.8.18
- jazz-tools@0.8.18
## 1.0.12
### Patch Changes
- jazz-react-native@0.8.17
- jazz-tools@0.8.17
## 1.0.11
### Patch Changes
- jazz-react-native@0.8.16
- jazz-tools@0.8.16
## 1.0.10
### Patch Changes
- Updated dependencies [cce679b]
- jazz-tools@0.8.15
- jazz-react-native@0.8.15
## 1.0.9
### Patch Changes
- Updated dependencies [36273b3]
- jazz-tools@0.8.14
- jazz-react-native@0.8.14
## 1.0.8
### Patch Changes
- Updated dependencies [fd011d7]
- jazz-tools@0.8.13
- jazz-react-native@0.8.13
## 1.0.7
### Patch Changes
- jazz-react-native@0.8.12
- jazz-tools@0.8.12
## 1.0.6
### Patch Changes
- jazz-react-native@0.8.11
- jazz-tools@0.8.11
## 1.0.5
### Patch Changes
- b7639cf: feat(react-native): replaced react-native-mmkv with expo-secure-store and initialize it by default as kvStore in createJazzRNApp() (BREAKING)
- Updated dependencies [b7639cf]
- jazz-react-native@0.8.8
## 1.0.4
### Patch Changes
- Updated dependencies [32b05b6]
- jazz-react-native@0.8.7
## 1.0.3
### Patch Changes
- jazz-react-native@0.8.6
## 1.0.2
### Patch Changes
- Updated dependencies [c3f4e6b]
- Updated dependencies [d9152ed]
- jazz-react-native@0.8.5
- jazz-tools@0.8.5
## 1.0.1
### Patch Changes
- Updated dependencies
- jazz-react-native@0.8.3
- jazz-tools@0.8.3
- Updated dependencies [a013538]
- Updated dependencies [bce3bcc]
- Updated dependencies [afd1374]
- Updated dependencies [bce3bcc]
- cojson@0.13.0
- jazz-react-native@0.13.0
- jazz-tools@0.13.0
- cojson-transport-ws@0.13.0

11
examples/chat-rn/Gemfile Normal file
View File

@@ -0,0 +1,11 @@
source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"
# Exclude problematic versions of cocoapods and activesupport that causes build failures.
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
gem 'xcodeproj', '< 1.26.0'
gem 'concurrent-ruby', '< 1.3.4'
gem "bigdecimal", "~> 3.1"

View File

@@ -0,0 +1,111 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.7)
base64
nkf
rexml
activesupport (6.1.7.10)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
base64 (0.2.0)
bigdecimal (3.1.9)
claide (1.1.0)
cocoapods (1.15.2)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.15.2)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 2.1, < 3.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.6.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (>= 2.3.0, < 3.0)
gh_inspector (~> 1.0)
molinillo (~> 0.8.0)
nap (~> 1.0)
ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.23.0, < 2.0)
cocoapods-core (1.15.2)
activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
netrc (~> 0.11)
public_suffix (~> 4.0)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (2.1)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
cocoapods-trunk (1.6.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored2 (3.1.2)
concurrent-ruby (1.3.3)
escape (0.0.4)
ethon (0.16.0)
ffi (>= 1.15.0)
ffi (1.17.1)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.9.0)
mutex_m
i18n (1.14.7)
concurrent-ruby (~> 1.0)
json (2.7.6)
minitest (5.25.4)
molinillo (0.8.0)
mutex_m (0.3.0)
nanaimo (0.3.0)
nap (1.1.0)
netrc (0.11.0)
nkf (0.2.0)
public_suffix (4.0.7)
rexml (3.4.1)
ruby-macho (2.5.1)
typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
xcodeproj (1.25.1)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (>= 3.3.6, < 4.0)
zeitwerk (2.6.18)
PLATFORMS
ruby
DEPENDENCIES
activesupport (>= 6.1.7.5, != 7.1.0)
bigdecimal (~> 3.1)
cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
concurrent-ruby (< 1.3.4)
xcodeproj (< 1.26.0)
RUBY VERSION
ruby 2.6.10p210
BUNDLED WITH
2.3.25

View File

@@ -1,14 +1,13 @@
# 🎷 Jazz + Expo + `react-navigation` + Demo Auth
# 🎷 Jazz + React Native + Demo Auth
## 🚀 How to Run
### 1. Inside the Workspace Root
First, install dependencies and build the project:
First, install dependencies for the project:
```bash
pnpm i
pnpm run build
```
### 2. Inside the `examples/chat-rn` Directory
@@ -16,9 +15,18 @@ pnpm run build
Next, navigate to the specific example project and run the following commands:
```bash
pnpm expo prebuild
npx pod-install
pnpm expo run:ios
pnpm pods
pnpm ios
```
This will set up and launch the app on iOS. For Android, you can replace the last command with `pnpm expo run:android`.
This will set up and launch the app on iOS. For Android, you can skip `pnpm pods` and replace the last command with `pnpm android`.
## Creation
This was created using the following command:
```bash
pnpx @react-native-community/cli init chat-rn --version 0.76.7 --install-pods true --skip-git-init true --package-name com.chatrn --directory chat-rn
```
Then change package name in `package.json`, and begin build instructions above.

View File

@@ -0,0 +1,119 @@
apply plugin: "com.android.application"
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"
/**
* This is the configuration block to customize your React Native Android app.
* By default you don't need to apply any configuration, just uncomment the lines you need.
*/
react {
/* Folders */
// The root of your project, i.e. where "package.json" lives. Default is '../..'
// root = file("../../")
// The folder where the react-native NPM package is. Default is ../../node_modules/react-native
// reactNativeDir = file("../../node_modules/react-native")
// The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
// codegenDir = file("../../node_modules/@react-native/codegen")
// The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
// cliFile = file("../../node_modules/react-native/cli.js")
/* Variants */
// The list of variants to that are debuggable. For those we're going to
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
// If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
// debuggableVariants = ["liteDebug", "prodDebug"]
/* Bundling */
// A list containing the node command and its flags. Default is just 'node'.
// nodeExecutableAndArgs = ["node"]
//
// The command to run when bundling. By default is 'bundle'
// bundleCommand = "ram-bundle"
//
// The path to the CLI configuration file. Default is empty.
// bundleConfig = file(../rn-cli.config.js)
//
// The name of the generated asset file containing your JS bundle
// bundleAssetName = "MyApplication.android.bundle"
//
// The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
// entryFile = file("../js/MyApplication.android.js")
//
// A list of extra flags to pass to the 'bundle' commands.
// See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
// extraPackagerArgs = []
/* Hermes Commands */
// The hermes compiler command to run. By default it is 'hermesc'
// hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
//
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
// hermesFlags = ["-O", "-output-source-map"]
/* Autolinking */
autolinkLibrariesWithApp()
}
/**
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
*/
def enableProguardInReleaseBuilds = false
/**
* The preferred build flavor of JavaScriptCore (JSC)
*
* For example, to use the international variant, you can use:
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
*
* The international variant includes ICU i18n library and necessary data
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
* give correct results when using with locales other than en-US. Note that
* this variant is about 6MiB larger per architecture than default.
*/
def jscFlavor = 'org.webkit:android-jsc:+'
android {
ndkVersion rootProject.ext.ndkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
compileSdk rootProject.ext.compileSdkVersion
namespace "com.chatrn"
defaultConfig {
applicationId "com.chatrn"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://reactnative.dev/docs/signed-apk-android.
signingConfig signingConfigs.debug
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
}
dependencies {
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
implementation jscFlavor
}
}

Binary file not shown.

View File

@@ -0,0 +1,10 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:usesCleartextTraffic="true"
tools:targetApi="28"
tools:ignore="GoogleAppIndexingWarning"/>
</manifest>

View File

@@ -0,0 +1,26 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme"
android:supportsRtl="true">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

View File

@@ -0,0 +1,22 @@
package com.chatrn
import com.facebook.react.ReactActivity
import com.facebook.react.ReactActivityDelegate
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
import com.facebook.react.defaults.DefaultReactActivityDelegate
class MainActivity : ReactActivity() {
/**
* Returns the name of the main component registered from JavaScript. This is used to schedule
* rendering of the component.
*/
override fun getMainComponentName(): String = "ChatRN"
/**
* Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
* which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
*/
override fun createReactActivityDelegate(): ReactActivityDelegate =
DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
}

View File

@@ -0,0 +1,44 @@
package com.chatrn
import android.app.Application
import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactHost
import com.facebook.react.ReactNativeHost
import com.facebook.react.ReactPackage
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
import com.facebook.react.defaults.DefaultReactNativeHost
import com.facebook.react.soloader.OpenSourceMergedSoMapping
import com.facebook.soloader.SoLoader
class MainApplication : Application(), ReactApplication {
override val reactNativeHost: ReactNativeHost =
object : DefaultReactNativeHost(this) {
override fun getPackages(): List<ReactPackage> =
PackageList(this).packages.apply {
// Packages that cannot be autolinked yet can be added manually here, for example:
// add(MyReactNativePackage())
}
override fun getJSMainModuleName(): String = "index"
override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
}
override val reactHost: ReactHost
get() = getDefaultReactHost(applicationContext, reactNativeHost)
override fun onCreate() {
super.onCreate()
SoLoader.init(this, OpenSourceMergedSoMapping)
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// If you opted-in for the New Architecture, we load the native entry point for this app.
load()
}
}
}

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
android:insetTop="@dimen/abc_edit_text_inset_top_material"
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"
>
<selector>
<!--
This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
-->
<item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
</selector>
</inset>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Some files were not shown because too many files have changed in this diff Show More