Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
285 changes: 194 additions & 91 deletions docs/API.md

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions src/hooks/documents.ts → src/hooks/docs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import { useMemo } from 'react'

import { getPresetsSelection } from '../lib/presets.js'
import {
createDocumentMutationOptions,
deleteDocumentMutationOptions,
documentByDocumentIdQueryOptions,
documentByVersionIdQueryOptions,
documentsQueryOptions,
updateDocumentMutationOptions,
} from '../lib/react-query/documents.js'
import type { WriteableDocumentType } from '../lib/types.js'
createDocMutationOptions,
deleteDocMutationOptions,
docByDocIdQueryOptions,
docByVersionIdQueryOptions,
docsQueryOptions,
updateDocMutationOptions,
} from '../lib/react-query/docs.js'
import type { WriteableDocType } from '../lib/types.js'
import { useProjectSettings, useSingleProject } from './projects.js'

/**
Expand All @@ -43,7 +43,7 @@ import { useProjectSettings, useSingleProject } from './projects.js'
* }
* ```
*/
export function useSingleDocByDocId<D extends WriteableDocumentType>({
export function useSingleDocByDocId<D extends WriteableDocType>({
projectId,
docType,
docId,
Expand All @@ -57,7 +57,7 @@ export function useSingleDocByDocId<D extends WriteableDocumentType>({
const { data: projectApi } = useSingleProject({ projectId })

const { data, error, isRefetching } = useSuspenseQuery(
documentByDocumentIdQueryOptions({
docByDocIdQueryOptions({
projectApi,
projectId,
docType,
Expand Down Expand Up @@ -96,7 +96,7 @@ export function useSingleDocByDocId<D extends WriteableDocumentType>({
* }
* ```
*/
export function useSingleDocByVersionId<D extends WriteableDocumentType>({
export function useSingleDocByVersionId<D extends WriteableDocType>({
projectId,
docType,
versionId,
Expand All @@ -110,7 +110,7 @@ export function useSingleDocByVersionId<D extends WriteableDocumentType>({
const { data: projectApi } = useSingleProject({ projectId })

const { data, error, isRefetching } = useSuspenseQuery(
documentByVersionIdQueryOptions({
docByVersionIdQueryOptions({
projectApi,
projectId,
docType,
Expand Down Expand Up @@ -160,7 +160,7 @@ export function useSingleDocByVersionId<D extends WriteableDocumentType>({
* }
* ```
*/
export function useManyDocs<D extends WriteableDocumentType>({
export function useManyDocs<D extends WriteableDocType>({
projectId,
docType,
includeDeleted,
Expand All @@ -174,7 +174,7 @@ export function useManyDocs<D extends WriteableDocumentType>({
const { data: projectApi } = useSingleProject({ projectId })

const { data, error, isRefetching } = useSuspenseQuery(
documentsQueryOptions({
docsQueryOptions({
projectApi,
projectId,
docType,
Expand All @@ -196,7 +196,7 @@ export function useManyDocs<D extends WriteableDocumentType>({
* @param opts.docType Document type to create.
* @param opts.projectId Public ID of project to create document for.
*/
export function useCreateDocument<D extends WriteableDocumentType>({
export function useCreateDoc<D extends WriteableDocType>({
docType,
projectId,
}: {
Expand All @@ -207,7 +207,7 @@ export function useCreateDocument<D extends WriteableDocumentType>({
const { data: projectApi } = useSingleProject({ projectId })

const { error, mutate, mutateAsync, reset, status } = useMutation(
createDocumentMutationOptions({
createDocMutationOptions({
docType,
projectApi,
projectId,
Expand All @@ -226,7 +226,7 @@ export function useCreateDocument<D extends WriteableDocumentType>({
* @param opts.docType Document type to update.
* @param opts.projectId Public ID of project document belongs to.
*/
export function useUpdateDocument<D extends WriteableDocumentType>({
export function useUpdateDoc<D extends WriteableDocType>({
docType,
projectId,
}: {
Expand All @@ -237,7 +237,7 @@ export function useUpdateDocument<D extends WriteableDocumentType>({
const { data: projectApi } = useSingleProject({ projectId })

const { error, mutate, mutateAsync, reset, status } = useMutation(
updateDocumentMutationOptions({
updateDocMutationOptions({
docType,
projectApi,
projectId,
Expand All @@ -256,7 +256,7 @@ export function useUpdateDocument<D extends WriteableDocumentType>({
* @param opts.docType Document type to delete.
* @param opts.projectId Public ID of project document belongs to.
*/
export function useDeleteDocument<D extends WriteableDocumentType>({
export function useDeleteDoc<D extends WriteableDocType>({
docType,
projectId,
}: {
Expand All @@ -267,7 +267,7 @@ export function useDeleteDocument<D extends WriteableDocumentType>({
const { data: projectApi } = useSingleProject({ projectId })

const { error, mutate, mutateAsync, reset, status } = useMutation(
deleteDocumentMutationOptions({
deleteDocMutationOptions({
docType,
projectApi,
projectId,
Expand Down
36 changes: 0 additions & 36 deletions src/hooks/projects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import {
createBlobMutationOptions,
createProjectMutationOptions,
disconnectSyncServersMutationOptions,
documentCreatedByQueryOptions,
exportGeoJSONMutationOptions,
exportZipFileMutationOptions,
getMembersQueryKey,
Expand Down Expand Up @@ -345,41 +344,6 @@ function useMediaServerOrigin({ projectApi }: { projectApi: MapeoProjectApi }) {
return { data, error, isRefetching }
}

// TODO: Eventually remove in favor of this information being provided by the backend when retrieving documents
/**
* Retrieve the device ID that created a document.
*
* @param opts.projectId Project public ID
* @param opts.originalVersionId Version ID of document
*
* @example
* ```tsx
* function BasicExample() {
* const { data } = useDocumentCreatedBy({
* projectId: '...',
* originalVersionId: '...',
* })
* }
* ```
*
* @deprecated Use `createdBy` field from document read hooks.
*/
export function useDocumentCreatedBy({
projectId,
originalVersionId,
}: {
projectId: string
originalVersionId: string
}) {
const { data: projectApi } = useSingleProject({ projectId })

const { data, error, isRefetching } = useSuspenseQuery(
documentCreatedByQueryOptions({ projectApi, projectId, originalVersionId }),
)

return { data, error, isRefetching }
}

/**
* Get the role for the current device in a specified project.
* This is a more convenient alternative to using the `useOwnDeviceInfo` and `useManyMembers` hooks.
Expand Down
13 changes: 6 additions & 7 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ export {
useSetOwnDeviceInfo,
} from './hooks/client.js'
export {
useCreateDocument,
useDeleteDocument,
useCreateDoc,
useDeleteDoc,
useManyDocs,
usePresetsSelection,
useSingleDocByDocId,
useSingleDocByVersionId,
useUpdateDocument,
} from './hooks/documents.js'
useUpdateDoc,
} from './hooks/docs.js'
export {
useAcceptInvite,
useManyInvites,
Expand All @@ -32,7 +32,6 @@ export {
useCreateProject,
useDataSyncProgress,
useDisconnectSyncServers,
useDocumentCreatedBy,
useIconUrl,
useImportProjectCategories,
useImportProjectConfig,
Expand All @@ -57,7 +56,7 @@ export {
} from './hooks/projects.js'
export { type SyncState } from './lib/sync.js'
export {
type WriteableDocument,
type WriteableDocumentType,
type WriteableDoc,
type WriteableDocType,
type WriteableValue,
} from './lib/types.js'
54 changes: 24 additions & 30 deletions src/lib/react-query/documents.ts → src/lib/react-query/docs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import {
} from '@tanstack/react-query'

import type {
WriteableDocument,
WriteableDocumentType,
WriteableDoc,
WriteableDocType,
WriteableValue,
} from '../types.js'
import {
Expand All @@ -21,7 +21,7 @@ import {
ROOT_QUERY_KEY,
} from './shared.js'

export function getDocumentsQueryKey<D extends WriteableDocumentType>({
export function getDocsQueryKey<D extends WriteableDocType>({
projectId,
docType,
}: {
Expand All @@ -31,7 +31,7 @@ export function getDocumentsQueryKey<D extends WriteableDocumentType>({
return [ROOT_QUERY_KEY, 'projects', projectId, docType] as const
}

export function getManyDocumentsQueryKey<D extends WriteableDocumentType>({
export function getManyDocsQueryKey<D extends WriteableDocType>({
projectId,
docType,
includeDeleted,
Expand All @@ -51,7 +51,7 @@ export function getManyDocumentsQueryKey<D extends WriteableDocumentType>({
] as const
}

export function getDocumentByDocIdQueryKey<D extends WriteableDocumentType>({
export function getDocByDocIdQueryKey<D extends WriteableDocType>({
projectId,
docType,
docId,
Expand All @@ -72,9 +72,7 @@ export function getDocumentByDocIdQueryKey<D extends WriteableDocumentType>({
] as const
}

export function getDocumentByVersionIdQueryKey<
D extends WriteableDocumentType,
>({
export function getDocByVersionIdQueryKey<D extends WriteableDocType>({
projectId,
docType,
versionId,
Expand All @@ -95,7 +93,7 @@ export function getDocumentByVersionIdQueryKey<
] as const
}

export function documentsQueryOptions<D extends WriteableDocumentType>({
export function docsQueryOptions<D extends WriteableDocType>({
projectApi,
projectId,
docType,
Expand All @@ -110,7 +108,7 @@ export function documentsQueryOptions<D extends WriteableDocumentType>({
}) {
return queryOptions({
...baseQueryOptions(),
queryKey: getManyDocumentsQueryKey({
queryKey: getManyDocsQueryKey({
projectId,
docType,
includeDeleted,
Expand All @@ -125,9 +123,7 @@ export function documentsQueryOptions<D extends WriteableDocumentType>({
})
}

export function documentByDocumentIdQueryOptions<
D extends WriteableDocumentType,
>({
export function docByDocIdQueryOptions<D extends WriteableDocType>({
projectApi,
projectId,
docType,
Expand All @@ -142,7 +138,7 @@ export function documentByDocumentIdQueryOptions<
}) {
return queryOptions({
...baseQueryOptions(),
queryKey: getDocumentByDocIdQueryKey({
queryKey: getDocByDocIdQueryKey({
projectId,
docType,
docId,
Expand All @@ -158,9 +154,7 @@ export function documentByDocumentIdQueryOptions<
})
}

export function documentByVersionIdQueryOptions<
D extends WriteableDocumentType,
>({
export function docByVersionIdQueryOptions<D extends WriteableDocType>({
projectApi,
projectId,
docType,
Expand All @@ -175,7 +169,7 @@ export function documentByVersionIdQueryOptions<
}) {
return queryOptions({
...baseQueryOptions(),
queryKey: getDocumentByVersionIdQueryKey({
queryKey: getDocByVersionIdQueryKey({
projectId,
docType,
versionId,
Expand All @@ -187,9 +181,9 @@ export function documentByVersionIdQueryOptions<
})
}

export function createDocumentMutationOptions<
D extends WriteableDocumentType,
Result = WriteableDocument<D> & DerivedDocFields,
export function createDocMutationOptions<
D extends WriteableDocType,
Result = WriteableDoc<D> & DerivedDocFields,
>({
docType,
projectApi,
Expand All @@ -212,7 +206,7 @@ export function createDocumentMutationOptions<
},
onSuccess: () => {
queryClient.invalidateQueries({
queryKey: getDocumentsQueryKey({
queryKey: getDocsQueryKey({
projectId,
docType,
}),
Expand All @@ -225,9 +219,9 @@ export function createDocumentMutationOptions<
>
}

export function updateDocumentMutationOptions<
D extends WriteableDocumentType,
Result = WriteableDocument<D> & DerivedDocFields,
export function updateDocMutationOptions<
D extends WriteableDocType,
Result = WriteableDoc<D> & DerivedDocFields,
>({
docType,
projectApi,
Expand All @@ -247,7 +241,7 @@ export function updateDocumentMutationOptions<
},
onSuccess: () => {
queryClient.invalidateQueries({
queryKey: getDocumentsQueryKey({
queryKey: getDocsQueryKey({
projectId,
docType,
}),
Expand All @@ -260,9 +254,9 @@ export function updateDocumentMutationOptions<
>
}

export function deleteDocumentMutationOptions<
D extends WriteableDocumentType,
Result = WriteableDocument<D> & DerivedDocFields,
export function deleteDocMutationOptions<
D extends WriteableDocType,
Result = WriteableDoc<D> & DerivedDocFields,
>({
docType,
projectApi,
Expand All @@ -282,7 +276,7 @@ export function deleteDocumentMutationOptions<
},
onSuccess: () => {
queryClient.invalidateQueries({
queryKey: getDocumentsQueryKey({
queryKey: getDocsQueryKey({
projectId,
docType,
}),
Expand Down
Loading