chore: temporarily hide link invitation (#9193)

close AF-1992 AF-1995 AF-1979 AF-1997

chore: temporarily hide link invitation

fix(core): only team workspace can assign admin

fix(core): member options in member list do not match expectations
This commit is contained in:
JimmFly
2024-12-18 07:26:41 +00:00
parent e13f9d3885
commit cbb52c69b2
5 changed files with 42 additions and 11 deletions

View File

@@ -102,6 +102,30 @@ export const MemberList = ({
);
};
const getShouldShow = ({
member,
currentAccountId,
isOwner,
isAdmin,
}: {
member: Member;
currentAccountId: string;
isOwner: boolean;
isAdmin: boolean;
}) => {
if (
member.id === currentAccountId ||
member.permission === Permission.Owner
) {
return false;
} else if (isOwner) {
return true;
} else if (isAdmin) {
return member.permission !== Permission.Admin;
}
return false;
};
const MemberItem = ({
member,
isOwner,
@@ -122,7 +146,16 @@ const MemberItem = ({
const permission = useService(WorkspacePermissionService).permission;
const isEquals = workspaceName === inputValue;
const show = isOwner && currentAccount.id !== member.id;
const show = useMemo(
() =>
getShouldShow({
member,
currentAccountId: currentAccount.id,
isOwner,
isAdmin,
}),
[member, currentAccount, isOwner, isAdmin]
);
const handleOpenAssignModal = useCallback(() => {
setInputValue('');

View File

@@ -6,7 +6,7 @@ import {
} from '@affine/core/modules/permissions';
import { Permission, WorkspaceMemberStatus } from '@affine/graphql';
import { useI18n } from '@affine/i18n';
import { useService } from '@toeverything/infra';
import { useLiveData, useService } from '@toeverything/infra';
import { useCallback, useMemo } from 'react';
export const MemberOptions = ({
@@ -23,6 +23,7 @@ export const MemberOptions = ({
const t = useI18n();
const membersService = useService(WorkspaceMembersService);
const permission = useService(WorkspacePermissionService).permission;
const isTeam = useLiveData(permission.isTeam$);
const { openConfirmModal } = useConfirmModal();
const openRemoveConfirmModal = useCallback(
@@ -207,6 +208,7 @@ export const MemberOptions = ({
label: t['com.affine.payment.member.team.change.admin'](),
onClick: handleChangeToAdmin,
show:
isTeam &&
isOwner &&
member.permission !== Permission.Owner &&
member.permission !== Permission.Admin &&
@@ -228,6 +230,7 @@ export const MemberOptions = ({
handleRevoke,
isAdmin,
isOwner,
isTeam,
member,
t,
]);

View File

@@ -42,11 +42,6 @@ export class Subscription extends Entity {
? subscriptions.find(sub => sub.plan === SubscriptionPlan.AI)
: null
);
team$ = this.subscription$.map(subscriptions =>
subscriptions
? subscriptions.find(sub => sub.plan === SubscriptionPlan.Team)
: null
);
isBeliever$ = this.pro$.map(
sub => sub?.recurring === SubscriptionRecurring.Lifetime
);