mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-27 19:02:23 +08:00
feat(core): add tracking events to doc role management (#10221)
This commit is contained in:
@@ -4,6 +4,7 @@ import { DocGrantedUsersService } from '@affine/core/modules/permissions';
|
||||
import { ShareInfoService } from '@affine/core/modules/share-doc';
|
||||
import { DocRole } from '@affine/graphql';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import { track } from '@affine/track';
|
||||
import { InformationIcon } from '@blocksuite/icons/rc';
|
||||
import { useLiveData, useService } from '@toeverything/infra';
|
||||
import clsx from 'clsx';
|
||||
@@ -48,6 +49,7 @@ export const MembersPermission = ({
|
||||
docDefaultRole === DocRole.Reader || docDefaultRole === DocRole.Editor;
|
||||
const changePermission = useCallback(
|
||||
async (docRole: DocRole) => {
|
||||
track.$.sharePanel.$.modifyDocDefaultRole();
|
||||
await docGrantedUsersService.updateDocDefaultRole(docRole);
|
||||
shareInfoService.shareInfo.revalidate();
|
||||
},
|
||||
|
||||
@@ -20,6 +20,7 @@ import {
|
||||
WorkspaceMemberStatus,
|
||||
} from '@affine/graphql';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import { track } from '@affine/track';
|
||||
import { ArrowLeftBigIcon } from '@blocksuite/icons/rc';
|
||||
import { useLiveData, useService } from '@toeverything/infra';
|
||||
import clsx from 'clsx';
|
||||
@@ -100,6 +101,7 @@ export const InviteMemberEditor = ({
|
||||
|
||||
const onInvite = useAsyncCallback(async () => {
|
||||
const selectedMemberIds = selectedMembers.map(member => member.id);
|
||||
track.$.sharePanel.$.inviteUserDocRole({ control: 'member list' });
|
||||
try {
|
||||
await docGrantedUsersService.grantUsersRole(
|
||||
selectedMemberIds,
|
||||
|
||||
@@ -19,6 +19,7 @@ import {
|
||||
} from '@affine/core/modules/permissions';
|
||||
import { DocRole, UserFriendlyError } from '@affine/graphql';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import track from '@affine/track';
|
||||
import { useLiveData, useService } from '@toeverything/infra';
|
||||
import clsx from 'clsx';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
@@ -148,6 +149,7 @@ const Options = ({
|
||||
|
||||
const updateUserRole = useCallback(
|
||||
async (userId: string, role: DocRole) => {
|
||||
track.$.sharePanel.$.modifyUserDocRole({ control: role });
|
||||
try {
|
||||
const res = await docGrantedUsersService.updateUserRole(userId, role);
|
||||
if (res) {
|
||||
@@ -214,6 +216,7 @@ const Options = ({
|
||||
}, [changeToOwner, openConfirmModal, t]);
|
||||
|
||||
const removeMember = useAsyncCallback(async () => {
|
||||
track.$.sharePanel.$.modifyUserDocRole({ control: 'Remove' });
|
||||
try {
|
||||
await docGrantedUsersService.revokeUsersRole(userId);
|
||||
docGrantedUsersService.loadMore();
|
||||
|
||||
Reference in New Issue
Block a user