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

chore(lint): add certain unicorn eslint rules #6352

Merged
merged 2 commits into from
Apr 26, 2024
Merged

Conversation

rexxars
Copy link
Member

@rexxars rexxars commented Apr 12, 2024

Description

This adds a few more ESLint rules that should mostly be uncontroversial:

  • Prefer string.slice() over string.substring() and string.substr() - slice is consistent with array.slice(), so just seems easier to reason about
  • Prefer node: prefix on node.js imports. This is a follow-up to chore: use node: prefix for node module imports #6321 and was what prompted me to add these new rules.
  • Prefer the use of event.key for keyboard events, instead of .keyCode which is deprecated
  • Enforce correct use of Error constructor

What to review

  • Rules make sense
  • .substring() replacements make sense

Testing

The linter is the test ;)

Notes for release

None

@rexxars rexxars requested a review from a team as a code owner April 12, 2024 21:48
@rexxars rexxars requested review from bjoerge and removed request for a team April 12, 2024 21:48
Copy link

vercel bot commented Apr 12, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
performance-studio ✅ Ready (Inspect) Visit Preview Apr 26, 2024 5:14pm
test-next-studio ❌ Failed (Inspect) Apr 26, 2024 5:14pm
test-studio ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 26, 2024 5:14pm
1 Ignored Deployment
Name Status Preview Comments Updated (UTC)
studio-workshop ⬜️ Ignored (Inspect) Visit Preview Apr 26, 2024 5:14pm

Copy link
Contributor

No changes to documentation

Copy link
Contributor

github-actions bot commented Apr 12, 2024

Component Testing Report Updated Apr 26, 2024 5:19 PM (UTC)

File Status Duration Passed Skipped Failed
comments/CommentInput.spec.tsx ✅ Passed (Inspect) 34s 15 0 0
formBuilder/ArrayInput.spec.tsx ✅ Passed (Inspect) 6s 3 0 0
formBuilder/inputs/PortableText/Annotations.spec.tsx ✅ Passed (Inspect) 25s 6 0 0
formBuilder/inputs/PortableText/copyPaste/CopyPaste.spec.tsx ✅ Passed (Inspect) 13s 4 2 0
formBuilder/inputs/PortableText/Decorators.spec.tsx ✅ Passed (Inspect) 14s 6 0 0
formBuilder/inputs/PortableText/FocusTracking.spec.tsx ✅ Passed (Inspect) 35s 15 0 0
formBuilder/inputs/PortableText/Input.spec.tsx ✅ Passed (Inspect) 1m 6s 14 0 0
formBuilder/inputs/PortableText/ObjectBlock.spec.tsx ✅ Passed (Inspect) 1m 4s 18 0 0
formBuilder/inputs/PortableText/RangeDecoration.spec.tsx ✅ Passed (Inspect) 20s 9 0 0
formBuilder/inputs/PortableText/Styles.spec.tsx ✅ Passed (Inspect) 14s 6 0 0
formBuilder/inputs/PortableText/Toolbar.spec.tsx ✅ Passed (Inspect) 21s 9 0 0

Copy link
Member

@bjoerge bjoerge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Copy link
Member

@bjoerge bjoerge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, there's actually a lint error here:

/home/runner/work/sanity/sanity/packages/@sanity/schema/example/test.js
1:20 error Prefer node:assert over assert unicorn/prefer-node-protocol

Would be great to have that fixed before merge :)

Copy link

socket-security bot commented Apr 15, 2024

👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report↗︎

@rexxars rexxars force-pushed the chore/unicorn-eslint-rules branch from f3b7b0e to 880b02f Compare April 26, 2024 17:09
Copy link

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@lezer/[email protected] None +1 336 kB marijn
npm/@node-ipc/[email protected] filesystem, network +1 140 kB aarondewes
npm/@playwright/[email protected] Transitive: environment +1 76 kB yurys
npm/@playwright/[email protected] None 0 25.3 kB yurys
npm/@portabletext/[email protected] None +1 170 kB sanity-io
npm/@portabletext/[email protected] None +1 169 kB sanity-io
npm/@react-three/[email protected] Transitive: unsafe +3 5.02 MB isaacmason
npm/@react-three/[email protected] environment +5 860 kB codyjasonbennett
npm/@rexxars/[email protected] environment, filesystem 0 4.52 kB rexxars
npm/@rexxars/[email protected] None 0 25.5 kB rexxars
npm/@rexxars/[email protected] None 0 56 kB rexxars
npm/@rollup/[email protected] filesystem +3 200 kB shellscape
npm/@sanity/[email protected] environment 0 363 kB rexxars
npm/@sanity/[email protected] network +2 4.69 MB sanity-io
npm/@sanity/[email protected] None 0 59.7 kB bjoerge
npm/@sanity/[email protected] None 0 2.13 MB sanity-io
npm/@sanity/[email protected] None 0 171 kB sanity-io
npm/@sanity/[email protected] None 0 533 kB sanity-io
npm/@sanity/[email protected] None +2 280 kB ricokahler
npm/@sanity/[email protected] Transitive: unsafe +3 394 kB sanity-io
npm/@sanity/[email protected] None +2 20.3 kB sanity-io
npm/@sanity/[email protected] filesystem +2 606 kB ricokahler
npm/@sanity/[email protected] None 0 5.25 kB rexxars
npm/@sanity/[email protected] None +2 2.9 MB sanity-io
npm/@sanity/[email protected] None 0 1.27 MB sanity-io
npm/@sanity/[email protected] None 0 166 kB rexxars
npm/@sanity/[email protected] filesystem, network +1 922 kB rexxars
npm/@sanity/[email protected] None 0 1.03 MB sanity-io
npm/@sanity/[email protected] None 0 950 kB sanity-io
npm/@sanity/[email protected] None 0 951 kB sanity-io
npm/@sanity/[email protected] None 0 972 kB sanity-io
npm/@sanity/[email protected] None 0 957 kB sanity-io
npm/@sanity/[email protected] None +1 1.16 MB sanity-io
npm/@sanity/[email protected] None 0 8.4 kB sanity-io
npm/@sanity/[email protected] None 0 115 kB sanity-io
npm/@sanity/[email protected] None 0 116 kB bjoerge
npm/@sanity/[email protected] environment 0 73 kB sanity-io
npm/@sanity/[email protected] environment +1 3.53 MB sanity-io
npm/@sanity/[email protected] None +4 4.94 MB sanity-io
npm/@sanity/[email protected] None +1 10.1 kB rexxars
npm/@tanstack/[email protected] Transitive: environment +1 600 kB tannerlinsley
npm/@testing-library/[email protected] None +5 950 kB testing-library-bot
npm/@testing-library/[email protected] environment +9 7.52 MB testing-library-bot
npm/@testing-library/[email protected] Transitive: environment +9 3.18 MB testing-library-bot
npm/@turf/[email protected] None 0 93.6 kB rowanwins
npm/@turf/[email protected] None +4 372 kB deniscarriere
npm/@types/[email protected] None +1 15.1 kB types
npm/@types/[email protected] None 0 5.13 kB types
npm/@types/[email protected] None 0 1.72 kB types
npm/@types/[email protected] None +2 1.92 MB types
npm/@types/[email protected] None 0 11.4 kB types
npm/@types/[email protected] None 0 3.88 kB types
npm/@types/[email protected] None 0 84.1 kB types
npm/@types/[email protected] None 0 6 kB types
npm/@types/[email protected] None +5 76.4 kB types
npm/@types/[email protected] None 0 5.66 kB types
npm/@types/[email protected] None +1 9.65 kB types
npm/@types/[email protected] None 0 4.81 kB types
npm/@types/[email protected] None +5 77 kB types
npm/@types/[email protected] None +9 107 kB types
npm/@types/[email protected] None +1 19.1 kB types
npm/@types/[email protected] None +1 73.4 kB types
npm/@types/[email protected] None +1 35.8 kB types
npm/@types/[email protected] None 0 862 kB types
npm/@types/[email protected] None 0 2.7 kB types
npm/@types/[email protected] None 0 6.27 kB types
npm/@types/[email protected] None 0 508 B types
npm/@types/[email protected] None 0 20.6 kB types
npm/@types/[email protected] None 0 1.97 MB types
npm/@types/[email protected] None 0 6.05 kB types
npm/@types/[email protected] None 0 2.85 kB types
npm/@types/[email protected] None 0 4.36 kB types
npm/@types/[email protected] None +1 47 kB types
npm/@types/[email protected] None 0 3.04 kB types
npm/@types/[email protected] None 0 7.5 kB types
npm/@types/[email protected] None 0 2.97 kB types
npm/@types/[email protected] None 0 13.5 kB types
npm/@types/[email protected] None 0 23.3 kB types
npm/@types/[email protected] None 0 2.86 kB types
npm/@types/[email protected] None 0 3.96 kB types
npm/@types/[email protected] None 0 5.96 kB types
npm/@types/[email protected] None 0 7.85 kB types
npm/@types/[email protected] None 0 30.2 kB types
npm/@types/[email protected] None +2 926 kB types
npm/@types/[email protected] None 0 3.29 kB types
npm/@types/[email protected] None 0 5.2 kB types
npm/@types/[email protected] None 0 6.06 kB types
npm/@types/[email protected] None 0 21.7 kB types
npm/@types/[email protected] None +1 68.8 kB types
npm/@typescript-eslint/[email protected] None +9 5.32 MB jameshenry
npm/@typescript-eslint/[email protected] None +4 1.37 MB jameshenry
npm/@uiw/[email protected] None +4 1.16 MB wcjiang
npm/@vercel/[email protected] filesystem Transitive: eval +1 312 kB vercel-release-bot
npm/@vercel/[email protected] environment, filesystem, shell +2 277 kB vercel-release-bot
npm/@vercel/[email protected] None 0 25.4 kB vercel-release-bot
npm/@vitejs/[email protected] None +3 64.1 kB vitebot
npm/@vvo/[email protected] None 0 175 kB vvo
npm/[email protected] filesystem +3 880 kB ctalkington
npm/[email protected] None 0 54.7 kB dirtyhairy
npm/[email protected] None +4 77.5 kB sindresorhus
npm/[email protected] None 0 81.8 kB egoist
npm/[email protected] environment, filesystem +2 149 kB paulmillr

View full report↗︎

@rexxars rexxars added this pull request to the merge queue Apr 26, 2024
Merged via the queue into next with commit 52be8a7 Apr 26, 2024
38 of 39 checks passed
@rexxars rexxars deleted the chore/unicorn-eslint-rules branch April 26, 2024 20:16
rexxars added a commit that referenced this pull request Apr 26, 2024
* chore(lint): add certain unicorn eslint rules

* chore: fix lint errors
jordanl17 pushed a commit that referenced this pull request Apr 29, 2024
* chore(lint): add certain unicorn eslint rules

* chore: fix lint errors
github-merge-queue bot added a commit that referenced this pull request Apr 29, 2024
* fix: statusButton requires provided aria-label

* fix: commenting on the new translation mapping added

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <[email protected]>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(cli): mock matchMedia window function (#6472)

* chore: add perf runner to workspace (#6427)

* fix(typegen): fixes a bug where we imported the wrong relative path (#6457)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(typegen): also search for queries in app and sanity folders (#6475)

* feat(typegen): also search for queries in app and sanity folders

* feat(typegen): format generated types with prettier

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency date-fns-tz to v2.0.1 (#6467)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @types/react-is to v18.3.0 (#6491)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* fix(test): remove hydrateroot warning test (#6494)

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* feat: set print width to 40 (#6068)

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency turbo to ^1.13.3 (#6497)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(cli): remove comments from moviedb template, hide location field (#6488)

* fix(search): revert to old search API for now (#6503)

* v3.39.1

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <[email protected]>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add perf runner to workspace (#6427)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(core): implement presence cursors (#6081)

* feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): add tests for range decorations rendering

* fixup! feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): improve some minor test things

* fix(core): update z-index on PTE activate overlay

* feat(core): extend presence data model with `selection`

* feat(structure): include `selection` in presence data

* feat(core): implement presence cursors in PTE

* test(core): add presence cursor workshop story

* refactor(core): use `getTheme_v2` to access theme values

* fix(core): introduce `OnPathFocusPayload` to improve typing

* fix(form/inputs): perf optimization for PT-input decorators

* refactor(form/inputs): also display user presence when user is selecting a range, but only the focus point of it

* fix(core): render presence cursors inline instead of in a portal

* fix(core): broken workshop story

* feat(core): reset presence selection on blur in PTE

* fix(structure): add accidentially removed setFocusPath (DocumentPaneProvider)

This seems to have been lost in a rebase.

* fix(core): use `useFormFieldPresence` in `usePresenceCursorDecorations`

* fix(core): set `focusPath` when receiving a mutation event if there are pending patches

* fix(form/inputs): break don't return

* fix(form/inputs): remove ref that should not be set here

This ref is supposed to be set elsewhere (on the PTE Editable component)
See eca960e

* fix(form/inputs): sort hook deps list

* fix(form/inputs): reconcile presence decorations for PT-Input

Make sure these objects stays as stable as possible in order to not
redraw any range decorations unnecessary.

* fix(form/inputs): return early if focusPath is already selected in PT-Input

* refactor(form/inputs): throttle reporting of focusPath and presence updates for PT-input

* fix(core): import of `FormNodePresence`

* fix(form/inputs): remove lastActive as dep for PT-presence range decorations uniqueness

We are not using this value anyway, and it complicates the reconciliation of the presence decorators

* test(core): add presence cursor workshop story

* fix(core): remove unnecessary z-index in PTE activate overlay

* fix(core): prevent presence cursor user name from being selected

* fix(form/inputs): fix issue where perf opt on focusPath tracking broke tests

This perf opt. broke some tests. It's not clear if it is a problem with the test
or the func. so restoring the old behaviour for now.

* test(core): update snapshots in `Studio.test`

* refactor(core): move presence decorations according to user edits

Use a own state for this.

* refactor(core/form): remove complexity from PortableTextInput

Handle debouncing in the DocumentProvider instead. Setting focusPath must be synchronous

* refactor(structure): announce presence throttled

When we introduced presence in the PortableTextInput, we risk calling the presence updates very often.
There should be no reason for not doing this throttled, as long as we have leading true.

* refactor(core): clean up presence cursors code + add comments

---------

Co-authored-by: Per-Kristian Nordnes <[email protected]>

* fix(deps): Update react monorepo (#6502)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lint): add certain unicorn eslint rules (#6352)

* chore(lint): add certain unicorn eslint rules

* chore: fix lint errors

* test: increase timeout for cross-dataset reference test

* chore: fix incorrect path used in workshop story

* chore(deps): dedupe pnpm-lock.yaml (#6506)

Co-authored-by: rexxars <[email protected]>

* fix(structure): uncaught error while swapping images in array in PTE (#6399)

* chore(test-studio): add schema for fix

* fix(structure): console error for when selection is zero

* chore(test-studio): update test schema

* chore(core): remove try catch

* test(pte): add test for usecase

* chore(sanity): remove ? since it will always be defined

Co-authored-by: Pedro Bonamin <[email protected]>

* chore(test): fix test file to have .spec.

---------

Co-authored-by: Pedro Bonamin <[email protected]>

* chore(deps): update dependency @types/react to v18.3.1 (#6507)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* v3.39.1

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <[email protected]>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add perf runner to workspace (#6427)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(core): implement presence cursors (#6081)

* feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): add tests for range decorations rendering

* fixup! feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): improve some minor test things

* fix(core): update z-index on PTE activate overlay

* feat(core): extend presence data model with `selection`

* feat(structure): include `selection` in presence data

* feat(core): implement presence cursors in PTE

* test(core): add presence cursor workshop story

* refactor(core): use `getTheme_v2` to access theme values

* fix(core): introduce `OnPathFocusPayload` to improve typing

* fix(form/inputs): perf optimization for PT-input decorators

* refactor(form/inputs): also display user presence when user is selecting a range, but only the focus point of it

* fix(core): render presence cursors inline instead of in a portal

* fix(core): broken workshop story

* feat(core): reset presence selection on blur in PTE

* fix(structure): add accidentially removed setFocusPath (DocumentPaneProvider)

This seems to have been lost in a rebase.

* fix(core): use `useFormFieldPresence` in `usePresenceCursorDecorations`

* fix(core): set `focusPath` when receiving a mutation event if there are pending patches

* fix(form/inputs): break don't return

* fix(form/inputs): remove ref that should not be set here

This ref is supposed to be set elsewhere (on the PTE Editable component)
See eca960e

* fix(form/inputs): sort hook deps list

* fix(form/inputs): reconcile presence decorations for PT-Input

Make sure these objects stays as stable as possible in order to not
redraw any range decorations unnecessary.

* fix(form/inputs): return early if focusPath is already selected in PT-Input

* refactor(form/inputs): throttle reporting of focusPath and presence updates for PT-input

* fix(core): import of `FormNodePresence`

* fix(form/inputs): remove lastActive as dep for PT-presence range decorations uniqueness

We are not using this value anyway, and it complicates the reconciliation of the presence decorators

* test(core): add presence cursor workshop story

* fix(core): remove unnecessary z-index in PTE activate overlay

* fix(core): prevent presence cursor user name from being selected

* fix(form/inputs): fix issue where perf opt on focusPath tracking broke tests

This perf opt. broke some tests. It's not clear if it is a problem with the test
or the func. so restoring the old behaviour for now.

* test(core): update snapshots in `Studio.test`

* refactor(core): move presence decorations according to user edits

Use a own state for this.

* refactor(core/form): remove complexity from PortableTextInput

Handle debouncing in the DocumentProvider instead. Setting focusPath must be synchronous

* refactor(structure): announce presence throttled

When we introduced presence in the PortableTextInput, we risk calling the presence updates very often.
There should be no reason for not doing this throttled, as long as we have leading true.

* refactor(core): clean up presence cursors code + add comments

---------

Co-authored-by: Per-Kristian Nordnes <[email protected]>

* fix(deps): Update react monorepo (#6502)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: fix incorrect path used in workshop story

* chore(deps): dedupe pnpm-lock.yaml (#6506)

Co-authored-by: rexxars <[email protected]>

* chore(deps): update dependency @types/react to v18.3.1 (#6507)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

---------

Co-authored-by: ecospark[bot] <128108030+ecospark[bot]@users.noreply.github.com>
Co-authored-by: cngonzalez <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Sindre Gulseth <[email protected]>
Co-authored-by: Bjørge Næss <[email protected]>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Co-authored-by: Cody Olsen <[email protected]>
Co-authored-by: Rostislav Melkumyan <[email protected]>
Co-authored-by: Espen Hovlandsdal <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Herman Wikner <[email protected]>
Co-authored-by: Per-Kristian Nordnes <[email protected]>
Co-authored-by: rexxars <[email protected]>
Co-authored-by: RitaDias <[email protected]>
Co-authored-by: Pedro Bonamin <[email protected]>
cngonzalez pushed a commit that referenced this pull request May 8, 2024
* chore(lint): add certain unicorn eslint rules

* chore: fix lint errors
cngonzalez added a commit that referenced this pull request May 8, 2024
* fix: statusButton requires provided aria-label

* fix: commenting on the new translation mapping added

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <[email protected]>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(cli): mock matchMedia window function (#6472)

* chore: add perf runner to workspace (#6427)

* fix(typegen): fixes a bug where we imported the wrong relative path (#6457)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(typegen): also search for queries in app and sanity folders (#6475)

* feat(typegen): also search for queries in app and sanity folders

* feat(typegen): format generated types with prettier

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency date-fns-tz to v2.0.1 (#6467)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @types/react-is to v18.3.0 (#6491)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* fix(test): remove hydrateroot warning test (#6494)

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* feat: set print width to 40 (#6068)

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency turbo to ^1.13.3 (#6497)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(cli): remove comments from moviedb template, hide location field (#6488)

* fix(search): revert to old search API for now (#6503)

* v3.39.1

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <[email protected]>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add perf runner to workspace (#6427)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(core): implement presence cursors (#6081)

* feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): add tests for range decorations rendering

* fixup! feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): improve some minor test things

* fix(core): update z-index on PTE activate overlay

* feat(core): extend presence data model with `selection`

* feat(structure): include `selection` in presence data

* feat(core): implement presence cursors in PTE

* test(core): add presence cursor workshop story

* refactor(core): use `getTheme_v2` to access theme values

* fix(core): introduce `OnPathFocusPayload` to improve typing

* fix(form/inputs): perf optimization for PT-input decorators

* refactor(form/inputs): also display user presence when user is selecting a range, but only the focus point of it

* fix(core): render presence cursors inline instead of in a portal

* fix(core): broken workshop story

* feat(core): reset presence selection on blur in PTE

* fix(structure): add accidentially removed setFocusPath (DocumentPaneProvider)

This seems to have been lost in a rebase.

* fix(core): use `useFormFieldPresence` in `usePresenceCursorDecorations`

* fix(core): set `focusPath` when receiving a mutation event if there are pending patches

* fix(form/inputs): break don't return

* fix(form/inputs): remove ref that should not be set here

This ref is supposed to be set elsewhere (on the PTE Editable component)
See eca960e

* fix(form/inputs): sort hook deps list

* fix(form/inputs): reconcile presence decorations for PT-Input

Make sure these objects stays as stable as possible in order to not
redraw any range decorations unnecessary.

* fix(form/inputs): return early if focusPath is already selected in PT-Input

* refactor(form/inputs): throttle reporting of focusPath and presence updates for PT-input

* fix(core): import of `FormNodePresence`

* fix(form/inputs): remove lastActive as dep for PT-presence range decorations uniqueness

We are not using this value anyway, and it complicates the reconciliation of the presence decorators

* test(core): add presence cursor workshop story

* fix(core): remove unnecessary z-index in PTE activate overlay

* fix(core): prevent presence cursor user name from being selected

* fix(form/inputs): fix issue where perf opt on focusPath tracking broke tests

This perf opt. broke some tests. It's not clear if it is a problem with the test
or the func. so restoring the old behaviour for now.

* test(core): update snapshots in `Studio.test`

* refactor(core): move presence decorations according to user edits

Use a own state for this.

* refactor(core/form): remove complexity from PortableTextInput

Handle debouncing in the DocumentProvider instead. Setting focusPath must be synchronous

* refactor(structure): announce presence throttled

When we introduced presence in the PortableTextInput, we risk calling the presence updates very often.
There should be no reason for not doing this throttled, as long as we have leading true.

* refactor(core): clean up presence cursors code + add comments

---------

Co-authored-by: Per-Kristian Nordnes <[email protected]>

* fix(deps): Update react monorepo (#6502)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lint): add certain unicorn eslint rules (#6352)

* chore(lint): add certain unicorn eslint rules

* chore: fix lint errors

* test: increase timeout for cross-dataset reference test

* chore: fix incorrect path used in workshop story

* chore(deps): dedupe pnpm-lock.yaml (#6506)

Co-authored-by: rexxars <[email protected]>

* fix(structure): uncaught error while swapping images in array in PTE (#6399)

* chore(test-studio): add schema for fix

* fix(structure): console error for when selection is zero

* chore(test-studio): update test schema

* chore(core): remove try catch

* test(pte): add test for usecase

* chore(sanity): remove ? since it will always be defined

Co-authored-by: Pedro Bonamin <[email protected]>

* chore(test): fix test file to have .spec.

---------

Co-authored-by: Pedro Bonamin <[email protected]>

* chore(deps): update dependency @types/react to v18.3.1 (#6507)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* v3.39.1

* chore(deps): dedupe pnpm-lock.yaml (#6463)

Co-authored-by: cngonzalez <[email protected]>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.4 (#6460)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: add perf runner to workspace (#6427)

* chore(deps): update dependency @sanity/tsdoc to v1.0.39 (#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: upgrade groq-js (#6474)

* chore: upgrade groq-js

* chore: always bump groq-js

* chore(deps): dedupe pnpm-lock.yaml (#6476)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.15 (#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.14 (#6466)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency i18next to v23.11.2 (#6468)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency zod to v3.23.4 (#6470)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency next to v14.2.2 (#6469)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency react-focus-lock to v2.12.1 (#6471)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.6 (#6482)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo (#6484)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/tsdoc to v1.0.40 (#6483)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.8 (#6485)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update react monorepo to ^18.3.0 (#6490)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: setup next test that embeds the test studio (#6487)

* chore: setup next test that embeds the test studio

* chore: support HMR same way test-studio does

* refactor: replace deprecated `empty()` with `EMPTY`

* refactor: shorter `pnpm dev:next-studio` alias

* chore: add `dev:turbo-studio` to test with turbopack

* chore: remove unused

* chore(deps): dedupe pnpm-lock.yaml (#6493)

Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/pkg-utils to v6.8.7 (#6496)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/logos to v2.1.11 (#6498)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(lockfile): update dependency @sanity/react-loader to v1.9.15 (#6499)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @sanity/visual-editing to v1.8.16 (#6500)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix(deps): update dependency @sanity/presentation to v1.12.10 (#6501)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat(core): implement presence cursors (#6081)

* feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): add tests for range decorations rendering

* fixup! feat(portable-text-editor): improve range decorations perf by comparing prev values

* test(portable-text-editor): improve some minor test things

* fix(core): update z-index on PTE activate overlay

* feat(core): extend presence data model with `selection`

* feat(structure): include `selection` in presence data

* feat(core): implement presence cursors in PTE

* test(core): add presence cursor workshop story

* refactor(core): use `getTheme_v2` to access theme values

* fix(core): introduce `OnPathFocusPayload` to improve typing

* fix(form/inputs): perf optimization for PT-input decorators

* refactor(form/inputs): also display user presence when user is selecting a range, but only the focus point of it

* fix(core): render presence cursors inline instead of in a portal

* fix(core): broken workshop story

* feat(core): reset presence selection on blur in PTE

* fix(structure): add accidentially removed setFocusPath (DocumentPaneProvider)

This seems to have been lost in a rebase.

* fix(core): use `useFormFieldPresence` in `usePresenceCursorDecorations`

* fix(core): set `focusPath` when receiving a mutation event if there are pending patches

* fix(form/inputs): break don't return

* fix(form/inputs): remove ref that should not be set here

This ref is supposed to be set elsewhere (on the PTE Editable component)
See eca960e

* fix(form/inputs): sort hook deps list

* fix(form/inputs): reconcile presence decorations for PT-Input

Make sure these objects stays as stable as possible in order to not
redraw any range decorations unnecessary.

* fix(form/inputs): return early if focusPath is already selected in PT-Input

* refactor(form/inputs): throttle reporting of focusPath and presence updates for PT-input

* fix(core): import of `FormNodePresence`

* fix(form/inputs): remove lastActive as dep for PT-presence range decorations uniqueness

We are not using this value anyway, and it complicates the reconciliation of the presence decorators

* test(core): add presence cursor workshop story

* fix(core): remove unnecessary z-index in PTE activate overlay

* fix(core): prevent presence cursor user name from being selected

* fix(form/inputs): fix issue where perf opt on focusPath tracking broke tests

This perf opt. broke some tests. It's not clear if it is a problem with the test
or the func. so restoring the old behaviour for now.

* test(core): update snapshots in `Studio.test`

* refactor(core): move presence decorations according to user edits

Use a own state for this.

* refactor(core/form): remove complexity from PortableTextInput

Handle debouncing in the DocumentProvider instead. Setting focusPath must be synchronous

* refactor(structure): announce presence throttled

When we introduced presence in the PortableTextInput, we risk calling the presence updates very often.
There should be no reason for not doing this throttled, as long as we have leading true.

* refactor(core): clean up presence cursors code + add comments

---------

Co-authored-by: Per-Kristian Nordnes <[email protected]>

* fix(deps): Update react monorepo (#6502)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore: fix incorrect path used in workshop story

* chore(deps): dedupe pnpm-lock.yaml (#6506)

Co-authored-by: rexxars <[email protected]>

* chore(deps): update dependency @types/react to v18.3.1 (#6507)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

---------

Co-authored-by: ecospark[bot] <128108030+ecospark[bot]@users.noreply.github.com>
Co-authored-by: cngonzalez <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Sindre Gulseth <[email protected]>
Co-authored-by: Bjørge Næss <[email protected]>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Co-authored-by: Cody Olsen <[email protected]>
Co-authored-by: Rostislav Melkumyan <[email protected]>
Co-authored-by: Espen Hovlandsdal <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Herman Wikner <[email protected]>
Co-authored-by: Per-Kristian Nordnes <[email protected]>
Co-authored-by: rexxars <[email protected]>
Co-authored-by: RitaDias <[email protected]>
Co-authored-by: Pedro Bonamin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants