feat: add invite info

This commit is contained in:
DiamondThree
2023-01-12 18:36:57 +08:00
parent 826a4bf381
commit 32a5788504
2 changed files with 37 additions and 35 deletions

View File

@@ -64,6 +64,14 @@ export const useWorkspaceHelper = () => {
currentWorkspace && (await dataCenter.leaveWorkspace(currentWorkspace?.id)); currentWorkspace && (await dataCenter.leaveWorkspace(currentWorkspace?.id));
}; };
const acceptInvite = async (inviteCode: string) => {
let inviteInfo;
if (inviteCode) {
inviteInfo = await dataCenter.acceptInvitation(inviteCode);
}
return inviteInfo;
};
return { return {
createWorkspace, createWorkspace,
publishWorkspace, publishWorkspace,
@@ -71,5 +79,6 @@ export const useWorkspaceHelper = () => {
enableWorkspace, enableWorkspace,
deleteWorkSpace, deleteWorkSpace,
leaveWorkSpace, leaveWorkSpace,
acceptInvite,
}; };
}; };

View File

@@ -1,44 +1,36 @@
import { useWorkspaceHelper } from '@/hooks/use-workspace-helper';
import { useAppState } from '@/providers/app-state-provider';
import { styled } from '@/styles'; import { styled } from '@/styles';
import { Empty } from '@/ui/empty'; import { Empty } from '@/ui/empty';
import { Avatar } from '@mui/material'; // import { Avatar } from '@mui/material';
// import { getDataCenter } from '@affine/datacenter';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
const User = ({ name, avatar }: { name: string; avatar?: string }) => { // const User = ({ name, avatar }: { name: string; avatar?: string }) => {
return ( // return (
<UserContent> // <UserContent>
{avatar ? ( // {avatar ? (
<Avatar src={avatar}></Avatar> // <Avatar src={avatar}></Avatar>
) : ( // ) : (
<UserIcon>{name.slice(0, 1)}</UserIcon> // <UserIcon>{name.slice(0, 1)}</UserIcon>
)} // )}
<span>{name}</span> // <span>{name}</span>
</UserContent> // </UserContent>
); // );
}; // };
export default function DevPage() { export default function DevPage() {
const router = useRouter(); const router = useRouter();
const [successInvited, setSuccessInvited] = useState<boolean>(false); const [successInvited, setSuccessInvited] = useState<boolean>(false);
// eslint-disable-next-line @typescript-eslint/no-explicit-any const { acceptInvite } = useWorkspaceHelper();
const [inviteData, setInviteData] = useState<any>(null); const { user } = useAppState();
useEffect(() => { useEffect(() => {
// getDataCenter() acceptInvite(router.query.invite_code as string).then(data => {
// .then(dc => if (data && data.accepted) {
// dc.apis.acceptInviting({ setSuccessInvited(true);
// invitingCode: router.query.invite_code as string, user && router.push(`/workspace/${data.workspace_id}`);
// }) }
// ) });
// .then(data => {
// setSuccessInvited(true);
// setInviteData(data);
// })
// .catch(err => {
// console.log('err: ', err);
// });
setSuccessInvited(true);
setInviteData(null);
}, [router.query.invite_code]); }, [router.query.invite_code]);
return ( return (
@@ -47,11 +39,12 @@ export default function DevPage() {
<Empty width={310} height={310}></Empty> <Empty width={310} height={310}></Empty>
<Content> <Content>
<User name={inviteData?.name ? inviteData.name : '-'}></User> invited {/* TODO add inviteInfo*/}
you to join {/* <User name={inviteData?.name ? inviteData.name : '-'}></User> invited */}
<User {/* you to join */}
{/* <User
name={inviteData?.workspaceName ? inviteData.workspaceName : '-'} name={inviteData?.workspaceName ? inviteData.workspaceName : '-'}
></User> ></User> */}
{successInvited ? ( {successInvited ? (
<Status> <Status>
<svg <svg