UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

1 lines 6.69 kB
{"version":3,"file":"PostMessageRefreshMutations.mjs","sources":["../../src/presentation/editor/PostMessageRefreshMutations.tsx"],"sourcesContent":["import {memo, startTransition, useEffect, useMemo, useState} from 'react'\nimport {getPublishedId, type SanityDocument, useEditState, usePerspective} from 'sanity'\n\nimport {type ConnectionStatus, type VisualEditingConnection} from '../types'\n\nexport interface PostMessageRefreshMutationsProps {\n id: string\n type: string\n comlink: VisualEditingConnection\n previewKitConnection: ConnectionStatus\n loadersConnection: ConnectionStatus\n}\n\nfunction PostMessageRefreshMutations(props: PostMessageRefreshMutationsProps): React.ReactNode {\n const {comlink, type, previewKitConnection, loadersConnection} = props\n const id = useMemo(() => getPublishedId(props.id), [props.id])\n const {selectedReleaseId} = usePerspective()\n const {draft, published, ready, version} = useEditState(id, type, 'low', selectedReleaseId)\n const livePreviewEnabled =\n previewKitConnection === 'connected' || loadersConnection === 'connected'\n\n if ((ready && draft) || published) {\n return (\n <PostMessageRefreshMutationsInner\n key={id}\n comlink={comlink}\n draft={draft}\n livePreviewEnabled={livePreviewEnabled}\n published={published}\n version={version}\n />\n )\n }\n\n return null\n}\n\ninterface PostMessageRefreshMutationsInnerProps\n extends Pick<PostMessageRefreshMutationsProps, 'comlink'> {\n livePreviewEnabled: boolean\n draft: SanityDocument | null\n published: SanityDocument | null\n version: SanityDocument | null\n}\nfunction PostMessageRefreshMutationsInner(props: PostMessageRefreshMutationsInnerProps) {\n const {comlink, draft, published, livePreviewEnabled, version} = props\n const [prevDraft, setPrevDraft] = useState(draft)\n const [prevPublished, setPrevPublished] = useState(published)\n const [prevVersion, setPrevVersion] = useState(version)\n\n useEffect(() => {\n if (prevVersion?._rev !== version?._rev) {\n startTransition(() => setPrevVersion(version))\n if (version) {\n comlink?.post('presentation/refresh', {\n source: 'mutation',\n livePreviewEnabled,\n document: parseDocument(version),\n })\n }\n }\n if (prevDraft?._rev !== draft?._rev) {\n startTransition(() => setPrevDraft(draft))\n if (draft) {\n comlink?.post('presentation/refresh', {\n source: 'mutation',\n livePreviewEnabled,\n document: parseDocument(draft),\n })\n }\n }\n if (prevPublished?._rev !== published?._rev) {\n startTransition(() => setPrevPublished(published))\n if (published) {\n comlink?.post('presentation/refresh', {\n source: 'mutation',\n livePreviewEnabled,\n document: parseDocument(published),\n })\n }\n }\n }, [\n comlink,\n draft,\n livePreviewEnabled,\n prevDraft?._rev,\n prevPublished?._rev,\n published,\n prevVersion?._rev,\n version,\n ])\n\n return null\n}\n\nfunction parseDocument(document: SanityDocument & {slug?: {current?: string | null}}): {\n _id: string\n _type: string\n _rev: string\n slug?: {current?: string | null}\n} {\n const {_id, _type, _rev, slug} = document\n return {_id, _type, _rev, slug}\n}\n\nexport default memo(PostMessageRefreshMutations)\n"],"names":["PostMessageRefreshMutations","props","$","_c","comlink","type","previewKitConnection","loadersConnection","t0","t1","id","getPublishedId","selectedReleaseId","usePerspective","draft","published","ready","version","useEditState","livePreviewEnabled","t2","PostMessageRefreshMutationsInner","prevDraft","setPrevDraft","useState","prevPublished","setPrevPublished","prevVersion","setPrevVersion","_rev","startTransition","post","source","document","parseDocument","t3","t4","useEffect","_id","_type","slug","memo"],"mappings":"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"}