bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/app/app-graphql/time-sync/component.tsx

26 lines
726 B
TypeScript

import { useLazyQuery } from '@apollo/client';
import React, { useEffect } from 'react';
import { GET_SERVER_TIME, GetServerTimeResponse } from './queries';
import { setTimeSync } from '/imports/ui/core/local-states/useTimeSync';
const TimeSync: React.FC = () => {
const [
loadGetServerTime,
{ called, loading, data, error },
] = useLazyQuery<GetServerTimeResponse>(GET_SERVER_TIME);
useEffect(() => {
if (!called) {
loadGetServerTime();
}
}, []);
useEffect(() => {
if (!loading && data) {
const time = new Date(data.current_time[0].currentTimestamp);
setTimeSync(time.getTime() - new Date().getTime());
}
}, [data, loading]);
return null;
};
export default TimeSync;