diff --git a/packages/app/src/hooks/use-workspace-helper.ts b/packages/app/src/hooks/use-workspace-helper.ts
index f1dee901d3..480ba409c1 100644
--- a/packages/app/src/hooks/use-workspace-helper.ts
+++ b/packages/app/src/hooks/use-workspace-helper.ts
@@ -64,6 +64,14 @@ export const useWorkspaceHelper = () => {
currentWorkspace && (await dataCenter.leaveWorkspace(currentWorkspace?.id));
};
+ const acceptInvite = async (inviteCode: string) => {
+ let inviteInfo;
+ if (inviteCode) {
+ inviteInfo = await dataCenter.acceptInvitation(inviteCode);
+ }
+ return inviteInfo;
+ };
+
return {
createWorkspace,
publishWorkspace,
@@ -71,5 +79,6 @@ export const useWorkspaceHelper = () => {
enableWorkspace,
deleteWorkSpace,
leaveWorkSpace,
+ acceptInvite,
};
};
diff --git a/packages/app/src/pages/invite/[invite_code].tsx b/packages/app/src/pages/invite/[invite_code].tsx
index e007a6cd25..342fa7c481 100644
--- a/packages/app/src/pages/invite/[invite_code].tsx
+++ b/packages/app/src/pages/invite/[invite_code].tsx
@@ -1,44 +1,37 @@
+import { useWorkspaceHelper } from '@/hooks/use-workspace-helper';
+import { useAppState } from '@/providers/app-state-provider';
import { styled } from '@/styles';
import { Empty } from '@/ui/empty';
-import { Avatar } from '@mui/material';
-// import { getDataCenter } from '@affine/datacenter';
+// import { Avatar } from '@mui/material';
import { useRouter } from 'next/router';
import { useEffect, useState } from 'react';
-const User = ({ name, avatar }: { name: string; avatar?: string }) => {
- return (
-
- {avatar ? (
-
- ) : (
- {name.slice(0, 1)}
- )}
- {name}
-
- );
-};
+// const User = ({ name, avatar }: { name: string; avatar?: string }) => {
+// return (
+//
+// {avatar ? (
+//
+// ) : (
+// {name.slice(0, 1)}
+// )}
+// {name}
+//
+// );
+// };
export default function DevPage() {
const router = useRouter();
const [successInvited, setSuccessInvited] = useState(false);
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- const [inviteData, setInviteData] = useState(null);
+ const { acceptInvite } = useWorkspaceHelper();
+ const { user } = useAppState();
useEffect(() => {
- // getDataCenter()
- // .then(dc =>
- // dc.apis.acceptInviting({
- // invitingCode: router.query.invite_code as string,
- // })
- // )
- // .then(data => {
- // setSuccessInvited(true);
- // setInviteData(data);
- // })
- // .catch(err => {
- // console.log('err: ', err);
- // });
- setSuccessInvited(true);
- setInviteData(null);
+ router.query.invite_code &&
+ acceptInvite(router.query.invite_code as string).then(data => {
+ if (data && data.accepted) {
+ setSuccessInvited(true);
+ user && router.push(`/workspace/${data.workspace_id}`);
+ }
+ });
}, [router.query.invite_code]);
return (
@@ -47,11 +40,12 @@ export default function DevPage() {
- invited
- you to join
- invited */}
+ {/* you to join */}
+ {/*
+ > */}
{successInvited ? (