feat(core): add tracking events to doc role management (#10221)

This commit is contained in:
JimmFly
2025-02-19 16:39:50 +08:00
committed by GitHub
parent bc34516e6c
commit e5a1595980
4 changed files with 35 additions and 1 deletions

View File

@@ -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();
},

View File

@@ -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,

View File

@@ -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();