Commit Graph
9 Commits
Author SHA1 Message Date
Oleg Isonen 11114fe85d fix: allow dynamic JSON-LD values (#5873) 2026-07-13 21:54:45 +02:00
Oleg Isonen b006947a85 feat: WIP realtime collaboration to builder (#5726)
https://github.com/webstudio-is/webstudio/issues/46
2026-04-27 23:19:21 +02:00
Bogdan Chadkin 88a29bfc21 fix: catch iframe errors (#5279) 2025-06-14 18:53:36 +03:00
Bogdan Chadkin e06de5322b refactor: add server as storage to sync engine (#4475)
Another layer in sync engine is composable storage.

Now you can specify a chain of storages. Each can listen transactions to
update some state. Though subscription for state is invoked one by one
until non-undefined is provided.

See tests to understand API.

Here I also migrated our server data loading and synchronization to this
storage api.
2024-12-03 21:43:39 +07:00
Bogdan Chadkin fd2bc2607d refactor: add more tests for nanostores sync object (#4457)
Cleaned up api a little and added more tests for nanostores sync object.
2024-11-24 21:29:04 +07:00
Ivan Starkov 7c3bf00dd0 chore: Use structured clone for transactions (#4456)
## Description

Fixes payloads with File Map Set etc.

## Steps for reproduction

Upload image. see it works

## Code Review

- [ ] hi @kof, I need you to do
  - conceptual review (architecture, feature-correctness)
  - detailed review (read every line)
  - test it on preview

## Before requesting a review

- [ ] made a self-review
- [ ] added inline comments where things may be not obvious (the "why",
not "what")

## Before merging

- [ ] tested locally and on preview environment (preview dev login:
0000)
- [ ] updated [test
cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md)
document
- [ ] added tests
- [ ] if any new env variables are added, added them to `.env` file
2024-11-21 21:57:07 +07:00
Bogdan Chadkin 524f83203e refactor: support nanostores as sync objects (#4454)
Here added support for syncing nanostores atoms
as sync objects. Had to add some tracking of update source though it
seems like a more solid solution than previous variant.

Need to test performance caz stores updates are now synchronous and not
debounced anymore.
2024-11-21 18:17:28 +07:00
Bogdan Chadkin 35ebd60b46 refactor: add sync object pool (#4453)
Sync client is getting some shape. Here I abstracted all immerhin
related api into SyncObject and added SyncObjectPool to combine multiple
objects. Objects are identified by unique name.
2024-11-21 10:41:51 +07:00
Bogdan Chadkin bf574fbc47 refactor: add new way to synchronize immerhin stores (#4451)
Here added SyncClient class which will be base for our new sync engine.
For now it can synchronize one immerhin store.

Event emitter is shared with canvas directly to avoid indirection of
iframe postMessage api.

This also partially fixes the issue with messages pollution and conflict
with react devtools.
2024-11-20 21:15:00 +07:00