fix(core): handle invitation failure (#11195)

This commit is contained in:
JimmFly
2025-03-26 04:31:58 +00:00
parent 96fa1ffe6f
commit 96e83a2141
3 changed files with 24 additions and 10 deletions

View File

@@ -355,6 +355,7 @@ const InvitationNotificationItem = ({
// ignore if the user is already in the workspace
return true;
}
notify.error(userFriendlyError);
throw err;
})
.then(async value => {

View File

@@ -1,3 +1,4 @@
import { notify } from '@affine/component';
import {
AcceptInvitePage,
ExpiredPage,
@@ -34,6 +35,9 @@ const AcceptInvite = ({ inviteId: targetInviteId }: { inviteId: string }) => {
const workspaces = useLiveData(workspacesService.list.workspaces$);
const navigateHelper = useNavigateHelper();
const [accepted, setAccepted] = useState(false);
const [acceptError, setAcceptError] = useState<UserFriendlyError | null>(
null
);
const openWorkspace = useAsyncCallback(async () => {
if (!inviteInfo?.workspace.id) {
@@ -70,6 +74,8 @@ const AcceptInvite = ({ inviteId: targetInviteId }: { inviteId: string }) => {
if (err.is('ALREADY_IN_SPACE')) {
return openWorkspace();
}
setAcceptError(err);
notify.error(err);
});
}, [invitationService, openWorkspace, targetInviteId]);
@@ -85,8 +91,10 @@ const AcceptInvite = ({ inviteId: targetInviteId }: { inviteId: string }) => {
return <ExpiredPage onOpenAffine={onOpenAffine} />;
}
if (error) {
return <JoinFailedPage inviteInfo={inviteInfo} error={error} />;
if (error || acceptError) {
return (
<JoinFailedPage inviteInfo={inviteInfo} error={error || acceptError} />
);
}
// for email invite