Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

feat(vision): add "save result as json/csv" buttons #6158

Merged
merged 4 commits into from
May 8, 2024

Conversation

RostiMelk
Copy link
Member

@RostiMelk RostiMelk commented Apr 2, 2024

Description

Added "save result as" buttons to Vision result when a result is present. See bottom right corner of screenshot.

image

What to review

  • Check that result is properly formatted before saving
  • Show we say "Download as" or "Save as"?
  • Are i18n names up to satisfaction?

Testing

  • Query a document type
  • Click save as ...

Notes for release

You can now save the Sanity vision result as JSON and CSV after querying

@RostiMelk RostiMelk requested a review from a team as a code owner April 2, 2024 09:37
@RostiMelk RostiMelk requested review from rexxars and removed request for a team April 2, 2024 09:37
Copy link

vercel bot commented Apr 2, 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 27, 2024 1:00am
test-next-studio ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 27, 2024 1:00am
test-studio ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 27, 2024 1:00am
1 Ignored Deployment
Name Status Preview Comments Updated (UTC)
studio-workshop ⬜️ Ignored (Inspect) Visit Preview Apr 27, 2024 1:00am

Copy link
Contributor

github-actions bot commented Apr 2, 2024

No changes to documentation

Copy link
Contributor

github-actions bot commented Apr 2, 2024

Component Testing Report Updated Apr 27, 2024 1:04 AM (UTC)

File Status Duration Passed Skipped Failed
comments/CommentInput.spec.tsx ✅ Passed (Inspect) 35s 15 0 0
formBuilder/ArrayInput.spec.tsx ✅ Passed (Inspect) 6s 3 0 0
formBuilder/inputs/PortableText/Annotations.spec.tsx ✅ Passed (Inspect) 27s 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 4s 15 0 0
formBuilder/inputs/PortableText/ObjectBlock.spec.tsx ✅ Passed (Inspect) 1m 6s 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) 22s 9 0 0

@sjelfull
Copy link
Member

sjelfull commented Apr 2, 2024

Looks great! I noticed that CSV exports breaks if a column includes something non-string, like an object. Could you test it with different types of data and make sure they are encoded correctly?

perf/tests/package.json Outdated Show resolved Hide resolved
Copy link

socket-security bot commented Apr 4, 2024

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

Package New capabilities Transitives Size Publisher

🚮 Removed packages: npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected], npm/[email protected]

View full report↗︎

Copy link

socket-security bot commented Apr 4, 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↗︎

Copy link
Member

@rexxars rexxars left a comment

Choose a reason for hiding this comment

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

I think using blob urls is a little safer here than using data URLs (especially when not base64 encoded). I've made a PR that changes to using those instead - let me know what you think.

There is one change I'd like to see here; we do not encourage splitting internationalized strings into different parts, which we do here:

  1. "Save result as"
  2. "CSV" / "JSON"

The rationale is that some languages may need to put the format at the start or middle of the sentence, which this does not allow for.

What we can do is use the <Translate> component and pass in the format download button as a component, eg:

<Translate
  components={{DownloadFormatButton: JsonButton /* or CsvButton */}}
  i18nKey="result.save-result-as-format"
  t={t}
/>

And have the resource key be:

{
  // ...
  'result.save-result-as-format': 'Save result as <DownloadFormatButton/>'
}

This will allow translators to use the format anywhere they want in the string.

This will need a bit of CSS tweaking, however, since the button would be inline with the rest of the string

@RostiMelk
Copy link
Member Author

@rexxars I've updated the PR with your suggestions now and ended up with the following structure:

<Translate
  components={{
    SaveResultButtons: () => (
      <>
        <SaveJsonButton blobUrl={jsonUrl} />
        <SaveCsvButton blobUrl={csvUrl} />
      </>
    ),
  }}
  i18nKey="result.save-result-as-format"
  t={t}
/>

For the buttons I ended up using a static string (CSV, JSON), as these are file extensions and afaik should not differ between languages(?)

Let me know what you think

@RostiMelk RostiMelk requested a review from rexxars April 16, 2024 12:17
@rexxars rexxars force-pushed the feat/vision/save-result-to-file branch from e1c2145 to 6ff433d Compare April 27, 2024 00:52
@rexxars rexxars added this pull request to the merge queue May 8, 2024
Merged via the queue into next with commit ed88f42 May 8, 2024
39 checks passed
@rexxars rexxars deleted the feat/vision/save-result-to-file branch May 8, 2024 15:39
jordanl17 pushed a commit that referenced this pull request May 10, 2024
* feat(vision): add download as json/csv buttons

* fix(vision): use blob urls for downloads (#6213)

* fix(vision): use Translate component to avoid splitting i18n strings

* fix(vision): clean up i18n resources for result saving feature

---------

Co-authored-by: Espen Hovlandsdal <[email protected]>
ricokahler pushed a commit that referenced this pull request May 14, 2024
* feat(vision): add download as json/csv buttons

* fix(vision): use blob urls for downloads (#6213)

* fix(vision): use Translate component to avoid splitting i18n strings

* fix(vision): clean up i18n resources for result saving feature

---------

Co-authored-by: Espen Hovlandsdal <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request May 20, 2024
* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* fix(studio): adding tooltip to read-only bool inputs (#6580)

* fix(studio): adding tooltip to read-only bool inputs

* fix(studio): testing for tooltip on boolean read-only inputs

* fix(studio): removing memoisation as it was useless

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

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

* feat: add canHandleIntent to Structure Builder component (#6516)

* feat: add canHandleIntent to S.component

* fix: properly type canHandleIntent

* Update packages/sanity/src/structure/structureBuilder/Component.ts

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

---------

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

* {wip} saved 2024-05-8 16:18

* fix(structure): use case insensitive search for inspect dialog (#6588)

* test(core): await publish action to prevent test flakiness (#6609)

* fix(deps): update dependency get-it to ^8.4.29 (#6603)

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

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(vision): add "save result as json/csv" buttons (#6158)

* feat(vision): add download as json/csv buttons

* fix(vision): use blob urls for downloads (#6213)

* fix(vision): use Translate component to avoid splitting i18n strings

* fix(vision): clean up i18n resources for result saving feature

---------

Co-authored-by: Espen Hovlandsdal <[email protected]>

* fix(core/form): prevent onFocus for root object paths being called by editing form (#6610)

This will prevent any input calling element.onFocus() on any opened block or inline-object
inside the PT-input, as that will close the editing modal for them (through DocumentPaneProvider)

* feat(core): add useEditStateList hook

* feat(sheet-list): add table view

* feat(structure): rendering columns in sheet list

* Merge branch 'edx-1284' into EDX-1308

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* test(core, desk): add tests for keyvalue storage (#6587)

* test(core): add tests for document list sort and display

* test(structure): add test for inspect dialog

* test(core): add tests for saved searches

* v3.41.0

* test(core): fixes flaky test with document publish (#6595)

* test(core): fixes flaky test with document publish

* test(core): use more realistic fix for flaky test

* chore(deps): update linters (#6590)

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

* chore(deps): update dependency styled-components to ^6.1.10 (#6585)

* chore(deps): update dependency styled-components to ^6.1.10

* chore: update test snapshot

---------

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

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

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

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

* fix(presentation): regression causing a crash when in an embedded studio (#6606)

* v3.41.1

* fix(studio): adding tooltip to read-only bool inputs (#6580)

* fix(studio): adding tooltip to read-only bool inputs

* fix(studio): testing for tooltip on boolean read-only inputs

* fix(studio): removing memoisation as it was useless

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

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

* feat: add canHandleIntent to Structure Builder component (#6516)

* feat: add canHandleIntent to S.component

* fix: properly type canHandleIntent

* Update packages/sanity/src/structure/structureBuilder/Component.ts

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

---------

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

* fix(structure): use case insensitive search for inspect dialog (#6588)

* test(core): await publish action to prevent test flakiness (#6609)

* fix(deps): update dependency get-it to ^8.4.29 (#6603)

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

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(vision): add "save result as json/csv" buttons (#6158)

* feat(vision): add download as json/csv buttons

* fix(vision): use blob urls for downloads (#6213)

* fix(vision): use Translate component to avoid splitting i18n strings

* fix(vision): clean up i18n resources for result saving feature

---------

Co-authored-by: Espen Hovlandsdal <[email protected]>

* fix(core/form): prevent onFocus for root object paths being called by editing form (#6610)

This will prevent any input calling element.onFocus() on any opened block or inline-object
inside the PT-input, as that will close the editing modal for them (through DocumentPaneProvider)

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* v3.41.0

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

* fix(presentation): regression causing a crash when in an embedded studio (#6606)

* v3.41.1

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

* feat(sheet-list): add paginated sheet list view

* feat(structure): control column visibility in sheet list

* feat(structure): control column visibility in sheet list

* feat(structure): control column visibility in sheet list

* feat(structure): row selection

* chore(bundle): remove unnecessary bundles and make root imports index (#6616)

* chore(bundle): remove unnecessary bundles and make root imports index

* chore: remove unnecessary depcheck updates

* feat(pte): add `hideToolbar` and `fullscreen` props to `PortableTextInput` (#6621)

* feat(form/inputs): add prop to hide the toolbar in PT-input

* feat(form/inputs): control PT-input fullscreen from props

* chore(test-studio): add example document type with custom block editor variants

* refactor: rename `fullscreen` to `initialFullscreen`

* refactor: don't unnecessarily alias `initialFullscreen` prop

---------

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

* fix(pte): don't render the PTE block extras container when not in use, disable pointer events on highlights (#6620)

* fix(pte): don't unnecessarily render PTE block actions container

* fix: remove pointer-events from validation + change highlight blocks

* chore(lockfile): update dependency @sanity/assist to v3.0.4 (#6601)

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

* skip recalling invokePrepare (#6608)

* feat(structure): only showing the column select for hideable columns

* fix(core): update test snapshots (#6629)

* fix(e2e): support headless/headful env var toggle (#6558)

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

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

* feat(structure): booleans render as selects

* feat: add icon to BlockStyleDefinition (#6613)

* feat(pte): initial support for `renderEditable` in portable text inputs (#6627)

* feat(form/inputs): support rendering PTE Editable through PortableTextInput

* fix(form/inputs): render with props, but without defaultRender

defaultRender is not part of the PortableTextEditor's Editable props

* refactor: rename useSpellcheck hook for consistency

* refactor: prefer importing react MutableRefObject type directly

* chore(test-studio): update custom block editor schema

* chore: mark renderEditable as hidden and in beta

---------

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

* chore(ci): add a circleci config to bundle packages (#6446)

* chore(ci): add a circleci config to bundle packages

* fix: store escaped package names in the manifest

* chore: run job only on current

* chore(lockfile): update dependency esbuild to v0.21.2 (#6602)

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

* feat(structure): add virtualised documentSheetList and sheetListStore

* feat(core): add useEditStateList hook

* feat(sheet-list): add table view

* feat(sheet-list): add paginated sheet list view

* feat(structure): clean files and implement paginated sheet list with filter

* fix(core): remove useEditStateList hook

* chore(core): refactor search elements for export and reusability

* feat(structure): adding columns control back in

* fix(structure): update documentSheetList test

* chore(structure): rename useDocumentSheetListStore properties

* feat(structure): refactor for cols control

* feat(structure): always require 1 column visible

* feat(structure): testing for Columns Control

* feat(structure): spreadsheet styling on sheetlistcell

* fix(deps): Update dev-non-major (#6659)

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

* fix(scheduled-publishing): don't include it if it's the only plugin available (#6530)

* fix(scheduled-publishing): don't include the tool if it's the plugin available

* chore(core): add tests for resolve default plugins

* feat(structure): add virtualised documentSheetList and sheetListStore

* feat(core): add useEditStateList hook

* feat(sheet-list): add table view

* feat(sheet-list): add paginated sheet list view

* feat(structure): clean files and implement paginated sheet list with filter

* fix(core): remove useEditStateList hook

* chore(core): refactor search elements for export and reusability

* fix(structure): update documentSheetList test

* chore(structure): rename useDocumentSheetListStore properties

* chore(structure): rename documentSheet* to documentSheetList*

* Merge branch 'edx-1284' into EDX-1308

* Merge branch 'edx-1284' into EDX-1308

* Merge branch 'edx-1284' into EDX-1308

* feat(structure): removing changes to book schema

* fix(structure): remove useEffect and set table columns as initial state (#6712)

* fix(structure): remove useEffect and set table columns as initial state

* fix(structure): use resetColumnVisibility() helper

* feat(structure): testing for useDocumentSheetColumns with initial cols

* feat(structure): PR comments to improve types and remove WIP

* feat(structure): fixing broken test for init col visibilities

---------

Co-authored-by: ecospark[bot] <128108030+ecospark[bot]@users.noreply.github.com>
Co-authored-by: juice49 <[email protected]>
Co-authored-by: Carolina Gonzalez <[email protected]>
Co-authored-by: Ash <[email protected]>
Co-authored-by: Pedro Bonamin <[email protected]>
Co-authored-by: Espen Hovlandsdal <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Rostislav Melkumyan <[email protected]>
Co-authored-by: Per-Kristian Nordnes <[email protected]>
Co-authored-by: Binoy Patel <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Cody Olsen <[email protected]>
Co-authored-by: Cody Olsen <[email protected]>
Co-authored-by: Robin Pyon <[email protected]>
Co-authored-by: Evensix <[email protected]>
Co-authored-by: Bjørge Næss <[email protected]>
Co-authored-by: Pedro Bonamin <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request May 22, 2024
* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* fix(studio): adding tooltip to read-only bool inputs (#6580)

* fix(studio): adding tooltip to read-only bool inputs

* fix(studio): testing for tooltip on boolean read-only inputs

* fix(studio): removing memoisation as it was useless

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

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

* feat: add canHandleIntent to Structure Builder component (#6516)

* feat: add canHandleIntent to S.component

* fix: properly type canHandleIntent

* Update packages/sanity/src/structure/structureBuilder/Component.ts

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

---------

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

* {wip} saved 2024-05-8 16:18

* fix(structure): use case insensitive search for inspect dialog (#6588)

* test(core): await publish action to prevent test flakiness (#6609)

* fix(deps): update dependency get-it to ^8.4.29 (#6603)

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

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(vision): add "save result as json/csv" buttons (#6158)

* feat(vision): add download as json/csv buttons

* fix(vision): use blob urls for downloads (#6213)

* fix(vision): use Translate component to avoid splitting i18n strings

* fix(vision): clean up i18n resources for result saving feature

---------

Co-authored-by: Espen Hovlandsdal <[email protected]>

* fix(core/form): prevent onFocus for root object paths being called by editing form (#6610)

This will prevent any input calling element.onFocus() on any opened block or inline-object
inside the PT-input, as that will close the editing modal for them (through DocumentPaneProvider)

* feat(core): add useEditStateList hook

* feat(sheet-list): add table view

* feat(structure): rendering columns in sheet list

* Merge branch 'edx-1284' into EDX-1308

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* test(core, desk): add tests for keyvalue storage (#6587)

* test(core): add tests for document list sort and display

* test(structure): add test for inspect dialog

* test(core): add tests for saved searches

* v3.41.0

* test(core): fixes flaky test with document publish (#6595)

* test(core): fixes flaky test with document publish

* test(core): use more realistic fix for flaky test

* chore(deps): update linters (#6590)

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

* chore(deps): update dependency styled-components to ^6.1.10 (#6585)

* chore(deps): update dependency styled-components to ^6.1.10

* chore: update test snapshot

---------

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

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

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

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

* fix(presentation): regression causing a crash when in an embedded studio (#6606)

* v3.41.1

* fix(studio): adding tooltip to read-only bool inputs (#6580)

* fix(studio): adding tooltip to read-only bool inputs

* fix(studio): testing for tooltip on boolean read-only inputs

* fix(studio): removing memoisation as it was useless

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

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

* feat: add canHandleIntent to Structure Builder component (#6516)

* feat: add canHandleIntent to S.component

* fix: properly type canHandleIntent

* Update packages/sanity/src/structure/structureBuilder/Component.ts

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

---------

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

* fix(structure): use case insensitive search for inspect dialog (#6588)

* test(core): await publish action to prevent test flakiness (#6609)

* fix(deps): update dependency get-it to ^8.4.29 (#6603)

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

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(vision): add "save result as json/csv" buttons (#6158)

* feat(vision): add download as json/csv buttons

* fix(vision): use blob urls for downloads (#6213)

* fix(vision): use Translate component to avoid splitting i18n strings

* fix(vision): clean up i18n resources for result saving feature

---------

Co-authored-by: Espen Hovlandsdal <[email protected]>

* fix(core/form): prevent onFocus for root object paths being called by editing form (#6610)

This will prevent any input calling element.onFocus() on any opened block or inline-object
inside the PT-input, as that will close the editing modal for them (through DocumentPaneProvider)

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* v3.41.0

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

* fix(presentation): regression causing a crash when in an embedded studio (#6606)

* v3.41.1

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

* feat(sheet-list): add paginated sheet list view

* feat(structure): control column visibility in sheet list

* feat(structure): control column visibility in sheet list

* feat(structure): control column visibility in sheet list

* feat(structure): row selection

* chore(bundle): remove unnecessary bundles and make root imports index (#6616)

* chore(bundle): remove unnecessary bundles and make root imports index

* chore: remove unnecessary depcheck updates

* feat(pte): add `hideToolbar` and `fullscreen` props to `PortableTextInput` (#6621)

* feat(form/inputs): add prop to hide the toolbar in PT-input

* feat(form/inputs): control PT-input fullscreen from props

* chore(test-studio): add example document type with custom block editor variants

* refactor: rename `fullscreen` to `initialFullscreen`

* refactor: don't unnecessarily alias `initialFullscreen` prop

---------

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

* fix(pte): don't render the PTE block extras container when not in use, disable pointer events on highlights (#6620)

* fix(pte): don't unnecessarily render PTE block actions container

* fix: remove pointer-events from validation + change highlight blocks

* featu(strucuture): allowing shift selecting across multiple sheet list rows

* chore(lockfile): update dependency @sanity/assist to v3.0.4 (#6601)

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

* skip recalling invokePrepare (#6608)

* feat(structure): only showing the column select for hideable columns

* fix(core): update test snapshots (#6629)

* fix(e2e): support headless/headful env var toggle (#6558)

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

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

* feat(structure): booleans render as selects

* feat: add icon to BlockStyleDefinition (#6613)

* feat(pte): initial support for `renderEditable` in portable text inputs (#6627)

* feat(form/inputs): support rendering PTE Editable through PortableTextInput

* fix(form/inputs): render with props, but without defaultRender

defaultRender is not part of the PortableTextEditor's Editable props

* refactor: rename useSpellcheck hook for consistency

* refactor: prefer importing react MutableRefObject type directly

* chore(test-studio): update custom block editor schema

* chore: mark renderEditable as hidden and in beta

---------

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

* chore(ci): add a circleci config to bundle packages (#6446)

* chore(ci): add a circleci config to bundle packages

* fix: store escaped package names in the manifest

* chore: run job only on current

* chore(lockfile): update dependency esbuild to v0.21.2 (#6602)

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

* feat(structure): add virtualised documentSheetList and sheetListStore

* feat(core): add useEditStateList hook

* feat(sheet-list): add table view

* feat(sheet-list): add paginated sheet list view

* feat(structure): clean files and implement paginated sheet list with filter

* fix(core): remove useEditStateList hook

* chore(core): refactor search elements for export and reusability

* feat(structure): adding columns control back in

* fix(structure): update documentSheetList test

* chore(structure): rename useDocumentSheetListStore properties

* feat(structure): refactor for cols control

* feat(structure): always require 1 column visible

* feat(structure): testing for Columns Control

* feat(structure): spreadsheet styling on sheetlistcell

* fix(deps): Update dev-non-major (#6659)

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

* fix(scheduled-publishing): don't include it if it's the only plugin available (#6530)

* fix(scheduled-publishing): don't include the tool if it's the plugin available

* chore(core): add tests for resolve default plugins

* feat(structure): add virtualised documentSheetList and sheetListStore

* feat(core): add useEditStateList hook

* feat(sheet-list): add table view

* feat(sheet-list): add paginated sheet list view

* feat(structure): clean files and implement paginated sheet list with filter

* fix(core): remove useEditStateList hook

* chore(core): refactor search elements for export and reusability

* fix(structure): update documentSheetList test

* chore(structure): rename useDocumentSheetListStore properties

* chore(structure): rename documentSheet* to documentSheetList*

* Merge branch 'edx-1284' into EDX-1308

* Merge branch 'edx-1284' into EDX-1308

* Merge branch 'edx-1284' into EDX-1308

* feat(structure): removing changes to book schema

* feat(structure): state for selected anchor

* fix(structure): remove useEffect and set table columns as initial state (#6712)

* fix(structure): remove useEffect and set table columns as initial state

* fix(structure): use resetColumnVisibility() helper

* feat(structure): testing for useDocumentSheetColumns with initial cols

* feat(structure): fixing import of afterAll

* feat(structure): PR comments to improve types and remove WIP

* feat(structure): fixing broken test for init col visibilities

* feat(structure): redirectory of sheet list modules

* feat(structure): testing row selector

* feat(structure): refactor of additional selection rows

* feat(structure): refactor of additional selection rows

* feat(structure): fixing issue with nested fields and separator

* fix(structure): fixing incorrect way of setting col visibility

* feat(structure): removing incorrectly placed hook

* feat(structure): codeowners for doc list

* feat(structure): fixing type issue

* feat(structure): rename of options.meta fnc

---------

Co-authored-by: ecospark[bot] <128108030+ecospark[bot]@users.noreply.github.com>
Co-authored-by: juice49 <[email protected]>
Co-authored-by: Carolina Gonzalez <[email protected]>
Co-authored-by: Ash <[email protected]>
Co-authored-by: Pedro Bonamin <[email protected]>
Co-authored-by: Espen Hovlandsdal <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Rostislav Melkumyan <[email protected]>
Co-authored-by: Per-Kristian Nordnes <[email protected]>
Co-authored-by: Binoy Patel <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Cody Olsen <[email protected]>
Co-authored-by: Cody Olsen <[email protected]>
Co-authored-by: Robin Pyon <[email protected]>
Co-authored-by: Evensix <[email protected]>
Co-authored-by: Bjørge Næss <[email protected]>
Co-authored-by: Pedro Bonamin <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request May 24, 2024
* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* fix(studio): adding tooltip to read-only bool inputs (#6580)

* fix(studio): adding tooltip to read-only bool inputs

* fix(studio): testing for tooltip on boolean read-only inputs

* fix(studio): removing memoisation as it was useless

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

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

* feat: add canHandleIntent to Structure Builder component (#6516)

* feat: add canHandleIntent to S.component

* fix: properly type canHandleIntent

* Update packages/sanity/src/structure/structureBuilder/Component.ts

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

---------

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

* {wip} saved 2024-05-8 16:18

* fix(structure): use case insensitive search for inspect dialog (#6588)

* test(core): await publish action to prevent test flakiness (#6609)

* fix(deps): update dependency get-it to ^8.4.29 (#6603)

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

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(vision): add "save result as json/csv" buttons (#6158)

* feat(vision): add download as json/csv buttons

* fix(vision): use blob urls for downloads (#6213)

* fix(vision): use Translate component to avoid splitting i18n strings

* fix(vision): clean up i18n resources for result saving feature

---------

Co-authored-by: Espen Hovlandsdal <[email protected]>

* fix(core/form): prevent onFocus for root object paths being called by editing form (#6610)

This will prevent any input calling element.onFocus() on any opened block or inline-object
inside the PT-input, as that will close the editing modal for them (through DocumentPaneProvider)

* feat(core): add useEditStateList hook

* feat(sheet-list): add table view

* feat(structure): rendering columns in sheet list

* Merge branch 'edx-1284' into EDX-1308

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* test(core, desk): add tests for keyvalue storage (#6587)

* test(core): add tests for document list sort and display

* test(structure): add test for inspect dialog

* test(core): add tests for saved searches

* v3.41.0

* test(core): fixes flaky test with document publish (#6595)

* test(core): fixes flaky test with document publish

* test(core): use more realistic fix for flaky test

* chore(deps): update linters (#6590)

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

* chore(deps): update dependency styled-components to ^6.1.10 (#6585)

* chore(deps): update dependency styled-components to ^6.1.10

* chore: update test snapshot

---------

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

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

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

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

* fix(presentation): regression causing a crash when in an embedded studio (#6606)

* v3.41.1

* fix(studio): adding tooltip to read-only bool inputs (#6580)

* fix(studio): adding tooltip to read-only bool inputs

* fix(studio): testing for tooltip on boolean read-only inputs

* fix(studio): removing memoisation as it was useless

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

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

* feat: add canHandleIntent to Structure Builder component (#6516)

* feat: add canHandleIntent to S.component

* fix: properly type canHandleIntent

* Update packages/sanity/src/structure/structureBuilder/Component.ts

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

---------

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

* fix(structure): use case insensitive search for inspect dialog (#6588)

* test(core): await publish action to prevent test flakiness (#6609)

* fix(deps): update dependency get-it to ^8.4.29 (#6603)

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

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(vision): add "save result as json/csv" buttons (#6158)

* feat(vision): add download as json/csv buttons

* fix(vision): use blob urls for downloads (#6213)

* fix(vision): use Translate component to avoid splitting i18n strings

* fix(vision): clean up i18n resources for result saving feature

---------

Co-authored-by: Espen Hovlandsdal <[email protected]>

* fix(core/form): prevent onFocus for root object paths being called by editing form (#6610)

This will prevent any input calling element.onFocus() on any opened block or inline-object
inside the PT-input, as that will close the editing modal for them (through DocumentPaneProvider)

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* v3.41.0

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

* fix(presentation): regression causing a crash when in an embedded studio (#6606)

* v3.41.1

* fix(deps): update dependency @sanity/client to ^6.18.0 (#6604)

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

* feat(core, structure) sheet list menu option (#6593)

* feat(structure): Rendering sheet list layout option in test-studio

* feat(structure): branching the rendering of different document list panes

* feat(structure): renaming of generic pane components

* feat(structure): fixing typing for new sheetList

* feat(structure): resolving a default export to named

* feat(structure): testing sheet view pane display logcic

* fix(structure): resolving testing for useStructureTool

* chore(lockfile): update dependency zod to v3.23.7 (#6527)

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

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

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

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

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

* feat(sheet-list): add paginated sheet list view

* feat(structure): control column visibility in sheet list

* feat(structure): control column visibility in sheet list

* feat(structure): control column visibility in sheet list

* feat(structure): row selection

* chore(bundle): remove unnecessary bundles and make root imports index (#6616)

* chore(bundle): remove unnecessary bundles and make root imports index

* chore: remove unnecessary depcheck updates

* feat(pte): add `hideToolbar` and `fullscreen` props to `PortableTextInput` (#6621)

* feat(form/inputs): add prop to hide the toolbar in PT-input

* feat(form/inputs): control PT-input fullscreen from props

* chore(test-studio): add example document type with custom block editor variants

* refactor: rename `fullscreen` to `initialFullscreen`

* refactor: don't unnecessarily alias `initialFullscreen` prop

---------

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

* fix(pte): don't render the PTE block extras container when not in use, disable pointer events on highlights (#6620)

* fix(pte): don't unnecessarily render PTE block actions container

* fix: remove pointer-events from validation + change highlight blocks

* chore(lockfile): update dependency @sanity/assist to v3.0.4 (#6601)

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

* skip recalling invokePrepare (#6608)

* feat(structure): only showing the column select for hideable columns

* fix(core): update test snapshots (#6629)

* fix(e2e): support headless/headful env var toggle (#6558)

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

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

* feat(structure): booleans render as selects

* feat: add icon to BlockStyleDefinition (#6613)

* feat(pte): initial support for `renderEditable` in portable text inputs (#6627)

* feat(form/inputs): support rendering PTE Editable through PortableTextInput

* fix(form/inputs): render with props, but without defaultRender

defaultRender is not part of the PortableTextEditor's Editable props

* refactor: rename useSpellcheck hook for consistency

* refactor: prefer importing react MutableRefObject type directly

* chore(test-studio): update custom block editor schema

* chore: mark renderEditable as hidden and in beta

---------

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

* chore(ci): add a circleci config to bundle packages (#6446)

* chore(ci): add a circleci config to bundle packages

* fix: store escaped package names in the manifest

* chore: run job only on current

* chore(lockfile): update dependency esbuild to v0.21.2 (#6602)

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

* feat(structure): add virtualised documentSheetList and sheetListStore

* feat(core): add useEditStateList hook

* feat(sheet-list): add table view

* feat(sheet-list): add paginated sheet list view

* feat(structure): clean files and implement paginated sheet list with filter

* fix(core): remove useEditStateList hook

* chore(core): refactor search elements for export and reusability

* feat(structure): adding columns control back in

* fix(structure): update documentSheetList test

* chore(structure): rename useDocumentSheetListStore properties

* feat(structure): refactor for cols control

* feat(structure): always require 1 column visible

* feat(structure): testing for Columns Control

* feat(structure): spreadsheet styling on sheetlistcell

* feat(structure): POC for cell value copy/paste

* feat(structure): handling up and down selection of cells

* feat(structure): handling up and down selection of cells

* feat(structure): handling up and down selection of cells

* feat(structure): handling up and down selection of cells

* feat(structure): handling up and down selection of cells

* feat(structure): simplifying handler for keyDown

* feat(structure): return types for SheetListContext

* feat(structure): fixing all key down issue on focused cell

* feat(structure): starting support for left and right arrows

* feat(structure): starting to branch on double clicks

* feat(structure): supporting arrow right/left for col navigation

* feat(structure): using singleton alias import

* feat(structure): merge with latest next

* feat(structure): handling enter clicks

* feat(structure): handling enter clicks

* feat(structure): single cell paste

* feat(structure): handling batch pastes

* feat(structure): handling copy when selected

* feat(structure): copy only handled in addition to default on anchor select

* feat(structure): improvement to readability; enter to blur and submit

* feat(structure): testing for keyboard nav on cells

* feat(structure): testing for keyboard nav on cells

* feat(structure): fixing mock for pane test

* feat(structure): fixing mock for pane test

* feat(structure): fixing for react compiler

* feat(structure): refactor of name for selection provider

* feat(structure): supporting keyboard on select; refactor of provider name

---------

Co-authored-by: ecospark[bot] <128108030+ecospark[bot]@users.noreply.github.com>
Co-authored-by: juice49 <[email protected]>
Co-authored-by: Carolina Gonzalez <[email protected]>
Co-authored-by: Ash <[email protected]>
Co-authored-by: Pedro Bonamin <[email protected]>
Co-authored-by: Espen Hovlandsdal <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Rostislav Melkumyan <[email protected]>
Co-authored-by: Per-Kristian Nordnes <[email protected]>
Co-authored-by: Binoy Patel <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Cody Olsen <[email protected]>
Co-authored-by: Cody Olsen <[email protected]>
Co-authored-by: Robin Pyon <[email protected]>
Co-authored-by: Evensix <[email protected]>
Co-authored-by: Bjørge Næss <[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.

4 participants