@comapeo/core-react 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -250,6 +250,28 @@ export declare function useDocumentCreatedBy({ projectId, originalVersionId, }:
250
250
  error: Error | null;
251
251
  isRefetching: boolean;
252
252
  };
253
+ /**
254
+ * Get the role for the current device in a specified project.
255
+ * This is a more convenient alternative to using the `useOwnDeviceInfo` and `useManyMembers` hooks.
256
+ *
257
+ * @param opts.projectId Project public ID
258
+ *
259
+ * @example
260
+ * ```tsx
261
+ * function BasicExample() {
262
+ * const { data } = useOwnRoleInProject({
263
+ * projectId: '...',
264
+ * })
265
+ * }
266
+ * ```
267
+ */
268
+ export declare function useOwnRoleInProject({ projectId }: {
269
+ projectId: string;
270
+ }): {
271
+ data: import("@comapeo/core/dist/roles.js", { with: { "resolution-mode": "import" } }).Role<"a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "08e4251e36f6e7ed">;
272
+ error: Error | null;
273
+ isRefetching: boolean;
274
+ };
253
275
  export declare function useAddServerPeer({ projectId }: {
254
276
  projectId: string;
255
277
  }): {
@@ -8,6 +8,7 @@ exports.useManyMembers = useManyMembers;
8
8
  exports.useIconUrl = useIconUrl;
9
9
  exports.useAttachmentUrl = useAttachmentUrl;
10
10
  exports.useDocumentCreatedBy = useDocumentCreatedBy;
11
+ exports.useOwnRoleInProject = useOwnRoleInProject;
11
12
  exports.useAddServerPeer = useAddServerPeer;
12
13
  exports.useCreateProject = useCreateProject;
13
14
  exports.useLeaveProject = useLeaveProject;
@@ -268,6 +269,26 @@ function useDocumentCreatedBy({ projectId, originalVersionId, }) {
268
269
  const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)((0, projects_js_1.documentCreatedByQueryOptions)({ projectApi, projectId, originalVersionId }));
269
270
  return { data, error, isRefetching };
270
271
  }
272
+ /**
273
+ * Get the role for the current device in a specified project.
274
+ * This is a more convenient alternative to using the `useOwnDeviceInfo` and `useManyMembers` hooks.
275
+ *
276
+ * @param opts.projectId Project public ID
277
+ *
278
+ * @example
279
+ * ```tsx
280
+ * function BasicExample() {
281
+ * const { data } = useOwnRoleInProject({
282
+ * projectId: '...',
283
+ * })
284
+ * }
285
+ * ```
286
+ */
287
+ function useOwnRoleInProject({ projectId }) {
288
+ const { data: projectApi } = useSingleProject({ projectId });
289
+ const { data, error, isRefetching } = (0, react_query_1.useSuspenseQuery)((0, projects_js_1.projectOwnRoleQueryOptions)({ projectApi, projectId }));
290
+ return { data, error, isRefetching };
291
+ }
271
292
  function useAddServerPeer({ projectId }) {
272
293
  const queryClient = (0, react_query_1.useQueryClient)();
273
294
  const { data: projectApi } = useSingleProject({ projectId });
@@ -3,6 +3,6 @@ export { useClientApi, useIsArchiveDevice, useOwnDeviceInfo, useSetIsArchiveDevi
3
3
  export { useCreateDocument, useDeleteDocument, useManyDocs, useSingleDocByDocId, useSingleDocByVersionId, useUpdateDocument, } from './hooks/documents.js';
4
4
  export { useAcceptInvite, useRejectInvite, useRequestCancelInvite, useSendInvite, } from './hooks/invites.js';
5
5
  export { useMapStyleUrl } from './hooks/maps.js';
6
- export { useAddServerPeer, useAttachmentUrl, useCreateBlob, useCreateProject, useDataSyncProgress, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useProjectSettings, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, } from './hooks/projects.js';
6
+ export { useAddServerPeer, useAttachmentUrl, useCreateBlob, useCreateProject, useDataSyncProgress, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, } from './hooks/projects.js';
7
7
  export { type SyncState } from './lib/sync.js';
8
8
  export { type WriteableDocument, type WriteableDocumentType, type WriteableValue, } from './lib/types.js';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useUpdateProjectSettings = exports.useSyncState = exports.useStopSync = exports.useStartSync = exports.useSingleProject = exports.useSingleMember = exports.useProjectSettings = exports.useManyProjects = exports.useManyMembers = exports.useLeaveProject = exports.useImportProjectConfig = exports.useIconUrl = exports.useDocumentCreatedBy = exports.useDataSyncProgress = exports.useCreateProject = exports.useCreateBlob = exports.useAttachmentUrl = exports.useAddServerPeer = exports.useMapStyleUrl = exports.useSendInvite = exports.useRequestCancelInvite = exports.useRejectInvite = exports.useAcceptInvite = exports.useUpdateDocument = exports.useSingleDocByVersionId = exports.useSingleDocByDocId = exports.useManyDocs = exports.useDeleteDocument = exports.useCreateDocument = exports.useSetOwnDeviceInfo = exports.useSetIsArchiveDevice = exports.useOwnDeviceInfo = exports.useIsArchiveDevice = exports.useClientApi = exports.ClientApiProvider = exports.ClientApiContext = void 0;
3
+ exports.useUpdateProjectSettings = exports.useSyncState = exports.useStopSync = exports.useStartSync = exports.useSingleProject = exports.useSingleMember = exports.useProjectSettings = exports.useOwnRoleInProject = exports.useManyProjects = exports.useManyMembers = exports.useLeaveProject = exports.useImportProjectConfig = exports.useIconUrl = exports.useDocumentCreatedBy = exports.useDataSyncProgress = exports.useCreateProject = exports.useCreateBlob = exports.useAttachmentUrl = exports.useAddServerPeer = exports.useMapStyleUrl = exports.useSendInvite = exports.useRequestCancelInvite = exports.useRejectInvite = exports.useAcceptInvite = exports.useUpdateDocument = exports.useSingleDocByVersionId = exports.useSingleDocByDocId = exports.useManyDocs = exports.useDeleteDocument = exports.useCreateDocument = exports.useSetOwnDeviceInfo = exports.useSetIsArchiveDevice = exports.useOwnDeviceInfo = exports.useIsArchiveDevice = exports.useClientApi = exports.ClientApiProvider = exports.ClientApiContext = void 0;
4
4
  var ClientApi_js_1 = require("./contexts/ClientApi.js");
5
5
  Object.defineProperty(exports, "ClientApiContext", { enumerable: true, get: function () { return ClientApi_js_1.ClientApiContext; } });
6
6
  Object.defineProperty(exports, "ClientApiProvider", { enumerable: true, get: function () { return ClientApi_js_1.ClientApiProvider; } });
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "useImportProjectConfig", { enumerable: true, get
36
36
  Object.defineProperty(exports, "useLeaveProject", { enumerable: true, get: function () { return projects_js_1.useLeaveProject; } });
37
37
  Object.defineProperty(exports, "useManyMembers", { enumerable: true, get: function () { return projects_js_1.useManyMembers; } });
38
38
  Object.defineProperty(exports, "useManyProjects", { enumerable: true, get: function () { return projects_js_1.useManyProjects; } });
39
+ Object.defineProperty(exports, "useOwnRoleInProject", { enumerable: true, get: function () { return projects_js_1.useOwnRoleInProject; } });
39
40
  Object.defineProperty(exports, "useProjectSettings", { enumerable: true, get: function () { return projects_js_1.useProjectSettings; } });
40
41
  Object.defineProperty(exports, "useSingleMember", { enumerable: true, get: function () { return projects_js_1.useSingleMember; } });
41
42
  Object.defineProperty(exports, "useSingleProject", { enumerable: true, get: function () { return projects_js_1.useSingleProject; } });
@@ -250,6 +250,28 @@ export declare function useDocumentCreatedBy({ projectId, originalVersionId, }:
250
250
  error: Error | null;
251
251
  isRefetching: boolean;
252
252
  };
253
+ /**
254
+ * Get the role for the current device in a specified project.
255
+ * This is a more convenient alternative to using the `useOwnDeviceInfo` and `useManyMembers` hooks.
256
+ *
257
+ * @param opts.projectId Project public ID
258
+ *
259
+ * @example
260
+ * ```tsx
261
+ * function BasicExample() {
262
+ * const { data } = useOwnRoleInProject({
263
+ * projectId: '...',
264
+ * })
265
+ * }
266
+ * ```
267
+ */
268
+ export declare function useOwnRoleInProject({ projectId }: {
269
+ projectId: string;
270
+ }): {
271
+ data: import("@comapeo/core/dist/roles.js").Role<"a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "08e4251e36f6e7ed">;
272
+ error: Error | null;
273
+ isRefetching: boolean;
274
+ };
253
275
  export declare function useAddServerPeer({ projectId }: {
254
276
  projectId: string;
255
277
  }): {
@@ -1,6 +1,6 @@
1
1
  import { useMutation, useQueryClient, useSuspenseQuery, } from '@tanstack/react-query';
2
2
  import { useSyncExternalStore } from 'react';
3
- import { addServerPeerMutationOptions, attachmentUrlQueryOptions, createBlobMutationOptions, createProjectMutationOptions, documentCreatedByQueryOptions, iconUrlQueryOptions, importProjectConfigMutationOptions, leaveProjectMutationOptions, projectByIdQueryOptions, projectMemberByIdQueryOptions, projectMembersQueryOptions, projectSettingsQueryOptions, projectsQueryOptions, startSyncMutationOptions, stopSyncMutationOptions, updateProjectSettingsMutationOptions, } from '../lib/react-query/projects.js';
3
+ import { addServerPeerMutationOptions, attachmentUrlQueryOptions, createBlobMutationOptions, createProjectMutationOptions, documentCreatedByQueryOptions, iconUrlQueryOptions, importProjectConfigMutationOptions, leaveProjectMutationOptions, projectByIdQueryOptions, projectMemberByIdQueryOptions, projectMembersQueryOptions, projectOwnRoleQueryOptions, projectSettingsQueryOptions, projectsQueryOptions, startSyncMutationOptions, stopSyncMutationOptions, updateProjectSettingsMutationOptions, } from '../lib/react-query/projects.js';
4
4
  import { SyncStore } from '../lib/sync.js';
5
5
  import { useClientApi } from './client.js';
6
6
  /**
@@ -248,6 +248,26 @@ export function useDocumentCreatedBy({ projectId, originalVersionId, }) {
248
248
  const { data, error, isRefetching } = useSuspenseQuery(documentCreatedByQueryOptions({ projectApi, projectId, originalVersionId }));
249
249
  return { data, error, isRefetching };
250
250
  }
251
+ /**
252
+ * Get the role for the current device in a specified project.
253
+ * This is a more convenient alternative to using the `useOwnDeviceInfo` and `useManyMembers` hooks.
254
+ *
255
+ * @param opts.projectId Project public ID
256
+ *
257
+ * @example
258
+ * ```tsx
259
+ * function BasicExample() {
260
+ * const { data } = useOwnRoleInProject({
261
+ * projectId: '...',
262
+ * })
263
+ * }
264
+ * ```
265
+ */
266
+ export function useOwnRoleInProject({ projectId }) {
267
+ const { data: projectApi } = useSingleProject({ projectId });
268
+ const { data, error, isRefetching } = useSuspenseQuery(projectOwnRoleQueryOptions({ projectApi, projectId }));
269
+ return { data, error, isRefetching };
270
+ }
251
271
  export function useAddServerPeer({ projectId }) {
252
272
  const queryClient = useQueryClient();
253
273
  const { data: projectApi } = useSingleProject({ projectId });
@@ -3,6 +3,6 @@ export { useClientApi, useIsArchiveDevice, useOwnDeviceInfo, useSetIsArchiveDevi
3
3
  export { useCreateDocument, useDeleteDocument, useManyDocs, useSingleDocByDocId, useSingleDocByVersionId, useUpdateDocument, } from './hooks/documents.js';
4
4
  export { useAcceptInvite, useRejectInvite, useRequestCancelInvite, useSendInvite, } from './hooks/invites.js';
5
5
  export { useMapStyleUrl } from './hooks/maps.js';
6
- export { useAddServerPeer, useAttachmentUrl, useCreateBlob, useCreateProject, useDataSyncProgress, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useProjectSettings, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, } from './hooks/projects.js';
6
+ export { useAddServerPeer, useAttachmentUrl, useCreateBlob, useCreateProject, useDataSyncProgress, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, } from './hooks/projects.js';
7
7
  export { type SyncState } from './lib/sync.js';
8
8
  export { type WriteableDocument, type WriteableDocumentType, type WriteableValue, } from './lib/types.js';
package/dist/esm/index.js CHANGED
@@ -3,4 +3,4 @@ export { useClientApi, useIsArchiveDevice, useOwnDeviceInfo, useSetIsArchiveDevi
3
3
  export { useCreateDocument, useDeleteDocument, useManyDocs, useSingleDocByDocId, useSingleDocByVersionId, useUpdateDocument, } from './hooks/documents.js';
4
4
  export { useAcceptInvite, useRejectInvite, useRequestCancelInvite, useSendInvite, } from './hooks/invites.js';
5
5
  export { useMapStyleUrl } from './hooks/maps.js';
6
- export { useAddServerPeer, useAttachmentUrl, useCreateBlob, useCreateProject, useDataSyncProgress, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useProjectSettings, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, } from './hooks/projects.js';
6
+ export { useAddServerPeer, useAttachmentUrl, useCreateBlob, useCreateProject, useDataSyncProgress, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, } from './hooks/projects.js';
package/docs/API.md CHANGED
@@ -14,6 +14,7 @@
14
14
  - [useIconUrl](#useiconurl)
15
15
  - [useAttachmentUrl](#useattachmenturl)
16
16
  - [useDocumentCreatedBy](#usedocumentcreatedby)
17
+ - [useOwnRoleInProject](#useownroleinproject)
17
18
  - [useAddServerPeer](#useaddserverpeer)
18
19
  - [useCreateProject](#usecreateproject)
19
20
  - [useLeaveProject](#useleaveproject)
@@ -377,6 +378,31 @@ function BasicExample() {
377
378
  ```
378
379
 
379
380
 
381
+ ### useOwnRoleInProject
382
+
383
+ Get the role for the current device in a specified project.
384
+ This is a more convenient alternative to using the `useOwnDeviceInfo` and `useManyMembers` hooks.
385
+
386
+ | Function | Type |
387
+ | ---------- | ---------- |
388
+ | `useOwnRoleInProject` | `({ projectId }: { projectId: string; }) => { data: Role<"a12a6702b93bd7ff" or "f7c150f5a3a9a855" or "012fd2d431c0bf60" or "9e6d29263cba36c9" or "8ced989b1904606b" or "08e4251e36f6e7ed">; error: Error or null; isRefetching: boolean; }` |
389
+
390
+ Parameters:
391
+
392
+ * `opts.projectId`: Project public ID
393
+
394
+
395
+ Examples:
396
+
397
+ ```tsx
398
+ function BasicExample() {
399
+ const { data } = useOwnRoleInProject({
400
+ projectId: '...',
401
+ })
402
+ }
403
+ ```
404
+
405
+
380
406
  ### useAddServerPeer
381
407
 
382
408
  | Function | Type |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comapeo/core-react",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "React wrapper for working with @comapeo/core",
5
5
  "repository": {
6
6
  "type": "git",