Banda-Media/lunchMemo

View on GitHub
pages/groups/[groupId].tsx

Summary

Maintainability
A
0 mins
Test Coverage
import Layout from '@components/layouts/Layout';
import { useState, useEffect } from 'react';
import { useRouter } from 'next/router';
import Loading from '@common/Loading';
import LunchGroup from '@components/modules/dashboard/components/LunchGroup';
import LunchGroupProvider, { useLunchGroup } from '@hooks/LunchGroupContext';
import { ILunchGroup } from '@typing/types';

const GroupPage: React.FC = () => {
  const router = useRouter();
  const { getGroup } = useLunchGroup();
  const { groupId } = router.query;
  const [group, setGroup] = useState<ILunchGroup>();
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    const loadGroup = async () => {
      setLoading(true);
      const group = await getGroup(groupId as string);
      setGroup(group);
      setLoading(false);
    };
    loadGroup();
  }, [groupId]);

  return (
    <LunchGroupProvider>
      <Layout>
        {loading ? <Loading /> : group && <LunchGroup group={group} hasDetailButton={false} />}
      </Layout>
    </LunchGroupProvider>
  );
};
export default GroupPage;