fix(core): the member list is not refreshed after operating the member status (#9115)

close AF-1939 AF-1938

fix(core): the member list is not refreshed after operating the member status

chore: temporarily remove the workspace AI switch
This commit is contained in:
JimmFly
2024-12-12 06:33:10 +00:00
parent c0e0b12857
commit 01b6e43c1f
5 changed files with 49 additions and 42 deletions

View File

@@ -11,7 +11,6 @@ import { ArrowRightSmallIcon } from '@blocksuite/icons/rc';
import { FrameworkScope } from '@toeverything/infra';
import { useCallback } from 'react';
import { AiSetting } from './ai';
import { DeleteLeaveWorkspace } from './delete-leave-workspace';
import { EnableCloudPanel } from './enable-cloud';
import { DesktopExportPanel } from './export';
@@ -73,7 +72,6 @@ export const WorkspaceSettingDetail = ({
<WorkspaceQuotaPanel />
<MembersPanel onChangeSettingState={onChangeSettingState} />
</SettingWrapper>
<AiSetting />
<SharingPanel />
{BUILD_CONFIG.isElectron && (
<SettingWrapper title={t['Storage and Export']()}>

View File

@@ -8,7 +8,10 @@ import { SettingRow } from '@affine/component/setting-components';
import { useAsyncCallback } from '@affine/core/components/hooks/affine-async-hooks';
import { Upload } from '@affine/core/components/pure/file-upload';
import { ServerService, SubscriptionService } from '@affine/core/modules/cloud';
import { WorkspacePermissionService } from '@affine/core/modules/permissions';
import {
WorkspaceMembersService,
WorkspacePermissionService,
} from '@affine/core/modules/permissions';
import { WorkspaceQuotaService } from '@affine/core/modules/quota';
import { copyTextToClipboard } from '@affine/core/utils/clipboard';
import { emailRegex } from '@affine/core/utils/email-regex';
@@ -50,6 +53,7 @@ export const CloudWorkspaceMembersPanel = ({
const hasPaymentFeature = useLiveData(
serverService.server.features$.map(f => f?.payment)
);
const membersService = useService(WorkspaceMembersService);
const permissionService = useService(WorkspacePermissionService);
const isOwner = useLiveData(permissionService.permission.isOwner$);
const isAdmin = useLiveData(permissionService.permission.isAdmin$);
@@ -111,10 +115,11 @@ export const CloudWorkspaceMembersPanel = ({
message: t['Invitation sent hint'](),
});
setOpen(false);
membersService.members.revalidate();
}
setIsMutating(false);
},
[permissionService.permission, t]
[membersService.members, permissionService.permission, t]
);
const onImportCSV = useAsyncCallback(

View File

@@ -116,6 +116,7 @@ const MemberItem = ({
const t = useI18n();
const [open, setOpen] = useState(false);
const [inputValue, setInputValue] = useState('');
const membersService = useService(WorkspaceMembersService);
const workspace = useService(WorkspaceService).workspace;
const workspaceName = useLiveData(workspace.name$);
const permission = useService(WorkspacePermissionService).permission;
@@ -139,6 +140,7 @@ const MemberItem = ({
name: member.name || member.email || member.id,
}),
});
membersService.members.revalidate();
}
})
.catch(error => {
@@ -147,7 +149,7 @@ const MemberItem = ({
message: error.message,
});
});
}, [permission, member, t]);
}, [permission, member, t, membersService]);
const memberStatus = useMemo(() => getMemberStatus(member), [member]);

View File

@@ -1,6 +1,7 @@
import { MenuItem, notify, useConfirmModal } from '@affine/component';
import {
type Member,
WorkspaceMembersService,
WorkspacePermissionService,
} from '@affine/core/modules/permissions';
import { Permission, WorkspaceMemberStatus } from '@affine/graphql';
@@ -20,6 +21,7 @@ export const MemberOptions = ({
openAssignModal: () => void;
}) => {
const t = useI18n();
const membersService = useService(WorkspaceMembersService);
const permission = useService(WorkspacePermissionService).permission;
const { openConfirmModal } = useConfirmModal();
@@ -44,6 +46,7 @@ export const MemberOptions = ({
title: successNotify.title,
message: successNotify.message,
});
membersService.members.revalidate();
}
})
.catch(error => {
@@ -54,7 +57,7 @@ export const MemberOptions = ({
}),
});
},
[member.id, openConfirmModal, permission, t]
[member, membersService, openConfirmModal, permission, t]
);
const handleAssignOwner = useCallback(() => {
@@ -83,6 +86,7 @@ export const MemberOptions = ({
}
),
});
membersService.members.revalidate();
}
})
.catch(error => {
@@ -91,7 +95,7 @@ export const MemberOptions = ({
message: error.message,
});
});
}, [member, permission, t]);
}, [member, membersService, permission, t]);
const handleDecline = useCallback(() => {
openRemoveConfirmModal({
@@ -124,6 +128,7 @@ export const MemberOptions = ({
name: member.name || member.email || member.id,
}),
});
membersService.members.revalidate();
}
})
.catch(error => {
@@ -132,7 +137,7 @@ export const MemberOptions = ({
message: error.message,
});
});
}, [member, permission, t]);
}, [member, membersService, permission, t]);
const handleChangeToCollaborator = useCallback(() => {
permission
.adjustMemberPermission(member.id, Permission.Write)
@@ -146,6 +151,7 @@ export const MemberOptions = ({
name: member.name || member.email || member.id,
}),
});
membersService.members.revalidate();
}
})
.catch(error => {
@@ -154,7 +160,7 @@ export const MemberOptions = ({
message: error.message,
});
});
}, [member, permission, t]);
}, [member, membersService, permission, t]);
const operationButtonInfo = useMemo(() => {
return [