Comments (4)
Based on @vinodsantharam feedback and some investigation, it's possible to use @liveblocks/client
and @liveblocks/react
with React native, but it requires some work. I'm reopening this issue to keep track of what could be improved to officially support React native.
Here are the necessary work around as of v0.14.1
:
- use a polyfill for
atob
(used to parse jwt token)
import {decode, encode} from 'base-64';
if (!global.btoa) {
global.btoa = encode;
}
if (!global.atob) {
global.atob = decode;
}
- Patch
window.addEventListener
to not crash onwindow.addEventListener("online")
.
window.addEventListener = () => {};
To officially support it, we need to:
- Not crash on
window.addEventListener
. - Give a clear error message when atob is not defined.
- Optional but it would great to use
@react-native-community/netinfo
to reconnect faster instead of waiting for the heartbeat. - And of course, official documentation
from liveblocks.
We now have an official example: https://github.com/liveblocks/liveblocks/tree/main/examples/react-native-todo-list
from liveblocks.
Hi @dynamichny,
To be completely transparent with you, we didn't try @liveblocks/client
and @livebocks/react
with react native, but my understanding is that it should work since we only depend on fetch
and WebSocket
. If it does not work for some reason, we will make sure to fix the issues to make it work!
from liveblocks.
for the online listener, maybe you could do what react-query does, and let people register their own listener.
from liveblocks.
Related Issues (20)
- Minor type error in Awareness.states
- React `useThreads` incorrect usage of `useSyncExternalStoreWithSelector` triggers infinite re-renders HOT 1
- Fix to the error: Type `LiveObject<Layer>` does not satisfy the constraint `Lson` HOT 2
- Ensure useSyncExternalStoreWithSelector usage are stable
- Ghost Websocket Connections! HOT 4
- Support comments mention containing `@` HOT 1
- Simplify `liveblocks.config.ts` generics for the common case HOT 1
- The Zustand middleware's `set` cannot safely be nested inside `batch`
- `Storage` type issue in `createRoomContext` in `liveblocks.config.ts` HOT 1
- Type error: Type `Storage` does not satisfy the constraint `LsonObject`. in `liveblocks.config.ts`
- Does `react-native-todo-list` need updating?
- Value changes many time in instantly when using the multiple move method of LiveList quickly HOT 3
- Removing thread metadata via `useThreadMetadata` results in metadata being removed followed by a quick flash of the old metadata
- Updating from v1.10.0 to v1.10.1 throws "process is not defined" error HOT 5
- process is undefined error on Vite project HOT 6
- EnsureJson is failing on a particular interface HOT 4
- Circular Reference in JSON HOT 2
- Using an async call in an event handler HOT 1
- RangeError: Maximum call stack size exceeded HOT 1
- Please explain how to update Yjs document from the backend with streaming AND keeping the formatting.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from liveblocks.