@comapeo/core-react 6.1.1 → 6.2.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.
- package/dist/commonjs/hooks/projects.d.ts +41 -0
- package/dist/commonjs/hooks/projects.js +23 -0
- package/dist/commonjs/index.d.ts +1 -1
- package/dist/commonjs/index.js +2 -1
- package/dist/commonjs/lib/react-query/projects.d.ts +14 -1
- package/dist/commonjs/lib/react-query/projects.js +17 -0
- package/dist/esm/hooks/projects.d.ts +41 -0
- package/dist/esm/hooks/projects.js +23 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/react-query/projects.d.ts +14 -1
- package/dist/esm/lib/react-query/projects.js +16 -0
- package/package.json +5 -4
|
@@ -430,6 +430,47 @@ export declare function useUpdateProjectSettings({ projectId }: {
|
|
|
430
430
|
reset: () => void;
|
|
431
431
|
status: "pending" | "success" | "idle";
|
|
432
432
|
};
|
|
433
|
+
/**
|
|
434
|
+
* Change a project member's role.
|
|
435
|
+
*
|
|
436
|
+
* @param opts.projectId Project public ID
|
|
437
|
+
*
|
|
438
|
+
* @example
|
|
439
|
+
* ```tsx
|
|
440
|
+
* function BasicExample() {
|
|
441
|
+
* const { mutate } = useChangeMemberRole({ projectId: '...' })
|
|
442
|
+
* // Use one of: COORDINATOR_ROLE_ID, MEMBER_ROLE_ID, BLOCKED_ROLE_ID
|
|
443
|
+
* mutate({ deviceId: '...', roleId: COORDINATOR_ROLE_ID })
|
|
444
|
+
* }
|
|
445
|
+
* ```
|
|
446
|
+
*/
|
|
447
|
+
export declare function useChangeMemberRole({ projectId }: {
|
|
448
|
+
projectId: string;
|
|
449
|
+
}): {
|
|
450
|
+
error: Error;
|
|
451
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
|
|
452
|
+
deviceId: string;
|
|
453
|
+
roleId: import("@comapeo/core", { with: { "resolution-mode": "import" } }).MemberApi.RoleIdAssignableToOthers;
|
|
454
|
+
}, unknown>;
|
|
455
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
|
|
456
|
+
deviceId: string;
|
|
457
|
+
roleId: import("@comapeo/core", { with: { "resolution-mode": "import" } }).MemberApi.RoleIdAssignableToOthers;
|
|
458
|
+
}, unknown>;
|
|
459
|
+
reset: () => void;
|
|
460
|
+
status: "error";
|
|
461
|
+
} | {
|
|
462
|
+
error: null;
|
|
463
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
|
|
464
|
+
deviceId: string;
|
|
465
|
+
roleId: import("@comapeo/core", { with: { "resolution-mode": "import" } }).MemberApi.RoleIdAssignableToOthers;
|
|
466
|
+
}, unknown>;
|
|
467
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
|
|
468
|
+
deviceId: string;
|
|
469
|
+
roleId: import("@comapeo/core", { with: { "resolution-mode": "import" } }).MemberApi.RoleIdAssignableToOthers;
|
|
470
|
+
}, unknown>;
|
|
471
|
+
reset: () => void;
|
|
472
|
+
status: "pending" | "success" | "idle";
|
|
473
|
+
};
|
|
433
474
|
/**
|
|
434
475
|
* Create a blob for a project.
|
|
435
476
|
*
|
|
@@ -15,6 +15,7 @@ exports.useCreateProject = useCreateProject;
|
|
|
15
15
|
exports.useLeaveProject = useLeaveProject;
|
|
16
16
|
exports.useImportProjectConfig = useImportProjectConfig;
|
|
17
17
|
exports.useUpdateProjectSettings = useUpdateProjectSettings;
|
|
18
|
+
exports.useChangeMemberRole = useChangeMemberRole;
|
|
18
19
|
exports.useCreateBlob = useCreateBlob;
|
|
19
20
|
exports.useSyncState = useSyncState;
|
|
20
21
|
exports.useDataSyncProgress = useDataSyncProgress;
|
|
@@ -368,6 +369,28 @@ function useUpdateProjectSettings({ projectId }) {
|
|
|
368
369
|
? { error, mutate, mutateAsync, reset, status }
|
|
369
370
|
: { error: null, mutate, mutateAsync, reset, status };
|
|
370
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* Change a project member's role.
|
|
374
|
+
*
|
|
375
|
+
* @param opts.projectId Project public ID
|
|
376
|
+
*
|
|
377
|
+
* @example
|
|
378
|
+
* ```tsx
|
|
379
|
+
* function BasicExample() {
|
|
380
|
+
* const { mutate } = useChangeMemberRole({ projectId: '...' })
|
|
381
|
+
* // Use one of: COORDINATOR_ROLE_ID, MEMBER_ROLE_ID, BLOCKED_ROLE_ID
|
|
382
|
+
* mutate({ deviceId: '...', roleId: COORDINATOR_ROLE_ID })
|
|
383
|
+
* }
|
|
384
|
+
* ```
|
|
385
|
+
*/
|
|
386
|
+
function useChangeMemberRole({ projectId }) {
|
|
387
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
388
|
+
const { data: projectApi } = useSingleProject({ projectId });
|
|
389
|
+
const { error, mutate, mutateAsync, reset, status } = (0, react_query_1.useMutation)((0, projects_js_1.changeMemberRoleMutationOptions)({ projectApi, projectId, queryClient }));
|
|
390
|
+
return status === 'error'
|
|
391
|
+
? { error, mutate, mutateAsync, reset, status }
|
|
392
|
+
: { error: null, mutate, mutateAsync, reset, status };
|
|
393
|
+
}
|
|
371
394
|
/**
|
|
372
395
|
* Create a blob for a project.
|
|
373
396
|
*
|
package/dist/commonjs/index.d.ts
CHANGED
|
@@ -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, useManyInvites, useRejectInvite, useRequestCancelInvite, useSendInvite, useSetUpInvitesListeners, useSingleInvite, } from './hooks/invites.js';
|
|
5
5
|
export { useMapStyleUrl } from './hooks/maps.js';
|
|
6
|
-
export { useAddServerPeer, useAttachmentUrl, useConnectSyncServers, useCreateBlob, useCreateProject, useDataSyncProgress, useDisconnectSyncServers, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useRemoveServerPeer, useSetAutostopDataSyncTimeout, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, useExportGeoJSON, useExportZipFile, } from './hooks/projects.js';
|
|
6
|
+
export { useAddServerPeer, useAttachmentUrl, useConnectSyncServers, useCreateBlob, useCreateProject, useDataSyncProgress, useDisconnectSyncServers, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useRemoveServerPeer, useSetAutostopDataSyncTimeout, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, useChangeMemberRole, useExportGeoJSON, useExportZipFile, } 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/commonjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useExportZipFile = exports.useExportGeoJSON = exports.useUpdateProjectSettings = exports.useSyncState = exports.useStopSync = exports.useStartSync = exports.useSingleProject = exports.useSingleMember = exports.useSetAutostopDataSyncTimeout = exports.useRemoveServerPeer = exports.useProjectSettings = exports.useOwnRoleInProject = exports.useManyProjects = exports.useManyMembers = exports.useLeaveProject = exports.useImportProjectConfig = exports.useIconUrl = exports.useDocumentCreatedBy = exports.useDisconnectSyncServers = exports.useDataSyncProgress = exports.useCreateProject = exports.useCreateBlob = exports.useConnectSyncServers = exports.useAttachmentUrl = exports.useAddServerPeer = exports.useMapStyleUrl = exports.useSingleInvite = exports.useSetUpInvitesListeners = exports.useSendInvite = exports.useRequestCancelInvite = exports.useRejectInvite = exports.useManyInvites = 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.useExportZipFile = exports.useExportGeoJSON = exports.useChangeMemberRole = exports.useUpdateProjectSettings = exports.useSyncState = exports.useStopSync = exports.useStartSync = exports.useSingleProject = exports.useSingleMember = exports.useSetAutostopDataSyncTimeout = exports.useRemoveServerPeer = exports.useProjectSettings = exports.useOwnRoleInProject = exports.useManyProjects = exports.useManyMembers = exports.useLeaveProject = exports.useImportProjectConfig = exports.useIconUrl = exports.useDocumentCreatedBy = exports.useDisconnectSyncServers = exports.useDataSyncProgress = exports.useCreateProject = exports.useCreateBlob = exports.useConnectSyncServers = exports.useAttachmentUrl = exports.useAddServerPeer = exports.useMapStyleUrl = exports.useSingleInvite = exports.useSetUpInvitesListeners = exports.useSendInvite = exports.useRequestCancelInvite = exports.useRejectInvite = exports.useManyInvites = 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; } });
|
|
@@ -51,5 +51,6 @@ Object.defineProperty(exports, "useStartSync", { enumerable: true, get: function
|
|
|
51
51
|
Object.defineProperty(exports, "useStopSync", { enumerable: true, get: function () { return projects_js_1.useStopSync; } });
|
|
52
52
|
Object.defineProperty(exports, "useSyncState", { enumerable: true, get: function () { return projects_js_1.useSyncState; } });
|
|
53
53
|
Object.defineProperty(exports, "useUpdateProjectSettings", { enumerable: true, get: function () { return projects_js_1.useUpdateProjectSettings; } });
|
|
54
|
+
Object.defineProperty(exports, "useChangeMemberRole", { enumerable: true, get: function () { return projects_js_1.useChangeMemberRole; } });
|
|
54
55
|
Object.defineProperty(exports, "useExportGeoJSON", { enumerable: true, get: function () { return projects_js_1.useExportGeoJSON; } });
|
|
55
56
|
Object.defineProperty(exports, "useExportZipFile", { enumerable: true, get: function () { return projects_js_1.useExportZipFile; } });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BlobApi } from '@comapeo/core' with { 'resolution-mode': 'import' };
|
|
1
|
+
import type { BlobApi, MemberApi } from '@comapeo/core' with { 'resolution-mode': 'import' };
|
|
2
2
|
import type { MapeoClientApi, MapeoProjectApi } from '@comapeo/ipc' with { 'resolution-mode': 'import' };
|
|
3
3
|
import type { ProjectSettings } from '@comapeo/schema' with { 'resolution-mode': 'import' };
|
|
4
4
|
import { type QueryClient, type UnusedSkipTokenOptions } from '@tanstack/react-query';
|
|
@@ -186,6 +186,19 @@ export declare function updateProjectSettingsMutationOptions({ projectApi, query
|
|
|
186
186
|
networkMode: "always";
|
|
187
187
|
retry: false;
|
|
188
188
|
};
|
|
189
|
+
export declare function changeMemberRoleMutationOptions({ projectApi, projectId, queryClient, }: {
|
|
190
|
+
projectApi: MapeoProjectApi;
|
|
191
|
+
projectId: string;
|
|
192
|
+
queryClient: QueryClient;
|
|
193
|
+
}): {
|
|
194
|
+
mutationFn: ({ deviceId, roleId }: {
|
|
195
|
+
deviceId: string;
|
|
196
|
+
roleId: MemberApi.RoleIdAssignableToOthers;
|
|
197
|
+
}) => Promise<void>;
|
|
198
|
+
onSuccess: () => void;
|
|
199
|
+
networkMode: "always";
|
|
200
|
+
retry: false;
|
|
201
|
+
};
|
|
189
202
|
export declare function createBlobMutationOptions({ projectApi, }: {
|
|
190
203
|
projectApi: MapeoProjectApi;
|
|
191
204
|
}): {
|
|
@@ -22,6 +22,7 @@ exports.createProjectMutationOptions = createProjectMutationOptions;
|
|
|
22
22
|
exports.leaveProjectMutationOptions = leaveProjectMutationOptions;
|
|
23
23
|
exports.importProjectConfigMutationOptions = importProjectConfigMutationOptions;
|
|
24
24
|
exports.updateProjectSettingsMutationOptions = updateProjectSettingsMutationOptions;
|
|
25
|
+
exports.changeMemberRoleMutationOptions = changeMemberRoleMutationOptions;
|
|
25
26
|
exports.createBlobMutationOptions = createBlobMutationOptions;
|
|
26
27
|
exports.startSyncMutationOptions = startSyncMutationOptions;
|
|
27
28
|
exports.stopSyncMutationOptions = stopSyncMutationOptions;
|
|
@@ -247,6 +248,22 @@ function updateProjectSettingsMutationOptions({ projectApi, queryClient, }) {
|
|
|
247
248
|
},
|
|
248
249
|
};
|
|
249
250
|
}
|
|
251
|
+
function changeMemberRoleMutationOptions({ projectApi, projectId, queryClient, }) {
|
|
252
|
+
return {
|
|
253
|
+
...(0, shared_js_1.baseMutationOptions)(),
|
|
254
|
+
mutationFn: async ({ deviceId, roleId }) => {
|
|
255
|
+
return projectApi.$member.assignRole(deviceId, roleId);
|
|
256
|
+
},
|
|
257
|
+
onSuccess: () => {
|
|
258
|
+
queryClient.invalidateQueries({
|
|
259
|
+
queryKey: getMembersQueryKey({ projectId }),
|
|
260
|
+
});
|
|
261
|
+
queryClient.invalidateQueries({
|
|
262
|
+
queryKey: getProjectRoleQueryKey({ projectId }),
|
|
263
|
+
});
|
|
264
|
+
},
|
|
265
|
+
};
|
|
266
|
+
}
|
|
250
267
|
function createBlobMutationOptions({ projectApi, }) {
|
|
251
268
|
return {
|
|
252
269
|
...(0, shared_js_1.baseMutationOptions)(),
|
|
@@ -430,6 +430,47 @@ export declare function useUpdateProjectSettings({ projectId }: {
|
|
|
430
430
|
reset: () => void;
|
|
431
431
|
status: "pending" | "success" | "idle";
|
|
432
432
|
};
|
|
433
|
+
/**
|
|
434
|
+
* Change a project member's role.
|
|
435
|
+
*
|
|
436
|
+
* @param opts.projectId Project public ID
|
|
437
|
+
*
|
|
438
|
+
* @example
|
|
439
|
+
* ```tsx
|
|
440
|
+
* function BasicExample() {
|
|
441
|
+
* const { mutate } = useChangeMemberRole({ projectId: '...' })
|
|
442
|
+
* // Use one of: COORDINATOR_ROLE_ID, MEMBER_ROLE_ID, BLOCKED_ROLE_ID
|
|
443
|
+
* mutate({ deviceId: '...', roleId: COORDINATOR_ROLE_ID })
|
|
444
|
+
* }
|
|
445
|
+
* ```
|
|
446
|
+
*/
|
|
447
|
+
export declare function useChangeMemberRole({ projectId }: {
|
|
448
|
+
projectId: string;
|
|
449
|
+
}): {
|
|
450
|
+
error: Error;
|
|
451
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
|
|
452
|
+
deviceId: string;
|
|
453
|
+
roleId: import("@comapeo/core").MemberApi.RoleIdAssignableToOthers;
|
|
454
|
+
}, unknown>;
|
|
455
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
|
|
456
|
+
deviceId: string;
|
|
457
|
+
roleId: import("@comapeo/core").MemberApi.RoleIdAssignableToOthers;
|
|
458
|
+
}, unknown>;
|
|
459
|
+
reset: () => void;
|
|
460
|
+
status: "error";
|
|
461
|
+
} | {
|
|
462
|
+
error: null;
|
|
463
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<void, Error, {
|
|
464
|
+
deviceId: string;
|
|
465
|
+
roleId: import("@comapeo/core").MemberApi.RoleIdAssignableToOthers;
|
|
466
|
+
}, unknown>;
|
|
467
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<void, Error, {
|
|
468
|
+
deviceId: string;
|
|
469
|
+
roleId: import("@comapeo/core").MemberApi.RoleIdAssignableToOthers;
|
|
470
|
+
}, unknown>;
|
|
471
|
+
reset: () => void;
|
|
472
|
+
status: "pending" | "success" | "idle";
|
|
473
|
+
};
|
|
433
474
|
/**
|
|
434
475
|
* Create a blob for a project.
|
|
435
476
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMutation, useQueryClient, useSuspenseQuery, } from '@tanstack/react-query';
|
|
2
2
|
import { useSyncExternalStore } from 'react';
|
|
3
|
-
import { addServerPeerMutationOptions, connectSyncServersMutationOptions, createBlobMutationOptions, createProjectMutationOptions, disconnectSyncServersMutationOptions, documentCreatedByQueryOptions, exportGeoJSONMutationOptions, exportZipFileMutationOptions, importProjectConfigMutationOptions, leaveProjectMutationOptions, mediaServerOriginQueryOptions, projectByIdQueryOptions, projectMemberByIdQueryOptions, projectMembersQueryOptions, projectOwnRoleQueryOptions, projectSettingsQueryOptions, projectsQueryOptions, removeServerPeerMutationOptions, setAutostopDataSyncTimeoutMutationOptions, startSyncMutationOptions, stopSyncMutationOptions, updateProjectSettingsMutationOptions, } from '../lib/react-query/projects.js';
|
|
3
|
+
import { addServerPeerMutationOptions, changeMemberRoleMutationOptions, connectSyncServersMutationOptions, createBlobMutationOptions, createProjectMutationOptions, disconnectSyncServersMutationOptions, documentCreatedByQueryOptions, exportGeoJSONMutationOptions, exportZipFileMutationOptions, importProjectConfigMutationOptions, leaveProjectMutationOptions, mediaServerOriginQueryOptions, projectByIdQueryOptions, projectMemberByIdQueryOptions, projectMembersQueryOptions, projectOwnRoleQueryOptions, projectSettingsQueryOptions, projectsQueryOptions, removeServerPeerMutationOptions, setAutostopDataSyncTimeoutMutationOptions, startSyncMutationOptions, stopSyncMutationOptions, updateProjectSettingsMutationOptions, } from '../lib/react-query/projects.js';
|
|
4
4
|
import { SyncStore } from '../lib/sync.js';
|
|
5
5
|
import { getBlobUrl, getIconUrl } from '../lib/urls.js';
|
|
6
6
|
import { useClientApi } from './client.js';
|
|
@@ -341,6 +341,28 @@ export function useUpdateProjectSettings({ projectId }) {
|
|
|
341
341
|
? { error, mutate, mutateAsync, reset, status }
|
|
342
342
|
: { error: null, mutate, mutateAsync, reset, status };
|
|
343
343
|
}
|
|
344
|
+
/**
|
|
345
|
+
* Change a project member's role.
|
|
346
|
+
*
|
|
347
|
+
* @param opts.projectId Project public ID
|
|
348
|
+
*
|
|
349
|
+
* @example
|
|
350
|
+
* ```tsx
|
|
351
|
+
* function BasicExample() {
|
|
352
|
+
* const { mutate } = useChangeMemberRole({ projectId: '...' })
|
|
353
|
+
* // Use one of: COORDINATOR_ROLE_ID, MEMBER_ROLE_ID, BLOCKED_ROLE_ID
|
|
354
|
+
* mutate({ deviceId: '...', roleId: COORDINATOR_ROLE_ID })
|
|
355
|
+
* }
|
|
356
|
+
* ```
|
|
357
|
+
*/
|
|
358
|
+
export function useChangeMemberRole({ projectId }) {
|
|
359
|
+
const queryClient = useQueryClient();
|
|
360
|
+
const { data: projectApi } = useSingleProject({ projectId });
|
|
361
|
+
const { error, mutate, mutateAsync, reset, status } = useMutation(changeMemberRoleMutationOptions({ projectApi, projectId, queryClient }));
|
|
362
|
+
return status === 'error'
|
|
363
|
+
? { error, mutate, mutateAsync, reset, status }
|
|
364
|
+
: { error: null, mutate, mutateAsync, reset, status };
|
|
365
|
+
}
|
|
344
366
|
/**
|
|
345
367
|
* Create a blob for a project.
|
|
346
368
|
*
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -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, useManyInvites, useRejectInvite, useRequestCancelInvite, useSendInvite, useSetUpInvitesListeners, useSingleInvite, } from './hooks/invites.js';
|
|
5
5
|
export { useMapStyleUrl } from './hooks/maps.js';
|
|
6
|
-
export { useAddServerPeer, useAttachmentUrl, useConnectSyncServers, useCreateBlob, useCreateProject, useDataSyncProgress, useDisconnectSyncServers, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useRemoveServerPeer, useSetAutostopDataSyncTimeout, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, useExportGeoJSON, useExportZipFile, } from './hooks/projects.js';
|
|
6
|
+
export { useAddServerPeer, useAttachmentUrl, useConnectSyncServers, useCreateBlob, useCreateProject, useDataSyncProgress, useDisconnectSyncServers, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useRemoveServerPeer, useSetAutostopDataSyncTimeout, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, useChangeMemberRole, useExportGeoJSON, useExportZipFile, } 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, useManyInvites, useRejectInvite, useRequestCancelInvite, useSendInvite, useSetUpInvitesListeners, useSingleInvite, } from './hooks/invites.js';
|
|
5
5
|
export { useMapStyleUrl } from './hooks/maps.js';
|
|
6
|
-
export { useAddServerPeer, useAttachmentUrl, useConnectSyncServers, useCreateBlob, useCreateProject, useDataSyncProgress, useDisconnectSyncServers, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useRemoveServerPeer, useSetAutostopDataSyncTimeout, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, useExportGeoJSON, useExportZipFile, } from './hooks/projects.js';
|
|
6
|
+
export { useAddServerPeer, useAttachmentUrl, useConnectSyncServers, useCreateBlob, useCreateProject, useDataSyncProgress, useDisconnectSyncServers, useDocumentCreatedBy, useIconUrl, useImportProjectConfig, useLeaveProject, useManyMembers, useManyProjects, useOwnRoleInProject, useProjectSettings, useRemoveServerPeer, useSetAutostopDataSyncTimeout, useSingleMember, useSingleProject, useStartSync, useStopSync, useSyncState, useUpdateProjectSettings, useChangeMemberRole, useExportGeoJSON, useExportZipFile, } from './hooks/projects.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BlobApi } from '@comapeo/core' with { 'resolution-mode': 'import' };
|
|
1
|
+
import type { BlobApi, MemberApi } from '@comapeo/core' with { 'resolution-mode': 'import' };
|
|
2
2
|
import type { MapeoClientApi, MapeoProjectApi } from '@comapeo/ipc' with { 'resolution-mode': 'import' };
|
|
3
3
|
import type { ProjectSettings } from '@comapeo/schema' with { 'resolution-mode': 'import' };
|
|
4
4
|
import { type QueryClient, type UnusedSkipTokenOptions } from '@tanstack/react-query';
|
|
@@ -186,6 +186,19 @@ export declare function updateProjectSettingsMutationOptions({ projectApi, query
|
|
|
186
186
|
networkMode: "always";
|
|
187
187
|
retry: false;
|
|
188
188
|
};
|
|
189
|
+
export declare function changeMemberRoleMutationOptions({ projectApi, projectId, queryClient, }: {
|
|
190
|
+
projectApi: MapeoProjectApi;
|
|
191
|
+
projectId: string;
|
|
192
|
+
queryClient: QueryClient;
|
|
193
|
+
}): {
|
|
194
|
+
mutationFn: ({ deviceId, roleId }: {
|
|
195
|
+
deviceId: string;
|
|
196
|
+
roleId: MemberApi.RoleIdAssignableToOthers;
|
|
197
|
+
}) => Promise<void>;
|
|
198
|
+
onSuccess: () => void;
|
|
199
|
+
networkMode: "always";
|
|
200
|
+
retry: false;
|
|
201
|
+
};
|
|
189
202
|
export declare function createBlobMutationOptions({ projectApi, }: {
|
|
190
203
|
projectApi: MapeoProjectApi;
|
|
191
204
|
}): {
|
|
@@ -215,6 +215,22 @@ export function updateProjectSettingsMutationOptions({ projectApi, queryClient,
|
|
|
215
215
|
},
|
|
216
216
|
};
|
|
217
217
|
}
|
|
218
|
+
export function changeMemberRoleMutationOptions({ projectApi, projectId, queryClient, }) {
|
|
219
|
+
return {
|
|
220
|
+
...baseMutationOptions(),
|
|
221
|
+
mutationFn: async ({ deviceId, roleId }) => {
|
|
222
|
+
return projectApi.$member.assignRole(deviceId, roleId);
|
|
223
|
+
},
|
|
224
|
+
onSuccess: () => {
|
|
225
|
+
queryClient.invalidateQueries({
|
|
226
|
+
queryKey: getMembersQueryKey({ projectId }),
|
|
227
|
+
});
|
|
228
|
+
queryClient.invalidateQueries({
|
|
229
|
+
queryKey: getProjectRoleQueryKey({ projectId }),
|
|
230
|
+
});
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
}
|
|
218
234
|
export function createBlobMutationOptions({ projectApi, }) {
|
|
219
235
|
return {
|
|
220
236
|
...baseMutationOptions(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comapeo/core-react",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0",
|
|
4
4
|
"description": "React wrapper for working with @comapeo/core",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -57,16 +57,16 @@
|
|
|
57
57
|
"types": "tsc"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
|
-
"@comapeo/core": "^4.
|
|
60
|
+
"@comapeo/core": "^4.3.0",
|
|
61
61
|
"@comapeo/ipc": "^5.0.0",
|
|
62
62
|
"@comapeo/schema": "*",
|
|
63
63
|
"@tanstack/react-query": "^5",
|
|
64
64
|
"react": "^18 || ^19"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@comapeo/core": "4.
|
|
67
|
+
"@comapeo/core": "4.3.0",
|
|
68
68
|
"@comapeo/ipc": "5.0.0",
|
|
69
|
-
"@comapeo/schema": "2.
|
|
69
|
+
"@comapeo/schema": "2.1.1",
|
|
70
70
|
"@eslint/compat": "1.3.0",
|
|
71
71
|
"@eslint/js": "9.29.0",
|
|
72
72
|
"@ianvs/prettier-plugin-sort-imports": "4.4.2",
|
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
"eslint-plugin-testing-library": "7.5.3",
|
|
85
85
|
"fastify": "4.29.1",
|
|
86
86
|
"globals": "16.2.0",
|
|
87
|
+
"happy-dom": "18.0.1",
|
|
87
88
|
"husky": "9.1.7",
|
|
88
89
|
"lint-staged": "15.5.1",
|
|
89
90
|
"npm-run-all2": "7.0.2",
|