bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/components-data/userGrapQlMiniMongoAdapter/component.tsx

38 lines
1.0 KiB
TypeScript
Raw Normal View History

2024-02-23 23:01:53 +08:00
import { useSubscription } from '@apollo/client';
import React, { useEffect, useState } from 'react';
import CURRENT_USER_SUBSCRIPTION from '/imports/ui/core/graphql/queries/currentUserSubscription';
import { User } from '/imports/ui/Types/user';
import Users from '/imports/api/users';
import logger from '/imports/startup/client/logger';
interface UserCurrentResponse {
user_current: Array<User>;
}
const UserGrapQlMiniMongoAdapter: React.FC = () => {
2024-02-23 23:01:53 +08:00
const {
error,
data,
} = useSubscription<UserCurrentResponse>(CURRENT_USER_SUBSCRIPTION);
const [userDataSetted, setUserDataSetted] = useState(false);
useEffect(() => {
if (error) {
logger.error('Error in UserGrapQlMiniMongoAdapter', error);
}
}, [error]);
useEffect(() => {
if (data && data.user_current) {
const { userId } = data.user_current[0];
Users.upsert({ userId }, data.user_current[0]);
if (!userDataSetted) {
setUserDataSetted(true);
}
}
}, [data]);
return null;
2024-02-23 23:01:53 +08:00
};
export default UserGrapQlMiniMongoAdapter;