please chunk this file to smaller files, by following HOC pattern, and do all parts for me, remember child components should only get props from parents, please do all that, and not tell me to do. this component SuggestionPostListPage should be parent folder, and components should be child folder (components):

import * as Yup from 'yup';
import Table from '@mui/material/Table';
import TableBody from '@mui/material/TableBody';
import TableCell from '@mui/material/TableCell';
import TableContainer from '@mui/material/TableContainer';
import TableHead from '@mui/material/TableHead';
import TableRow from '@mui/material/TableRow';
import Paper from '@mui/material/Paper';
import { Button, NAME_1, Container, Grid, TextField } from '@mui/material';
import CustomBreadcrumbs from 'src/components/custom-breadcrumbs/custom-breadcrumbs';
import { capitalize, cloneDeep, debounce, size } from 'lodash';
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { paths } from 'src/routes/paths';
import { useLocales } from 'src/locales';
import Iconify from 'src/components/iconify/iconify';
import FormProvider from 'src/components/hook-form/form-provider';
import { useForm } from 'react-hook-form';
import { yupResolver } from '@hookform/resolvers/yup';
import { RHFAutocomplete } from 'src/components/hook-form';
import { searchPost } from 'src/api/post';
import { useGetSuggestPosts } from 'src/api/suggest-post';
import { format } from 'date-fns';
import { useCallback, useState } from 'react';

export default function SuggestionPostListPage() {
  const { t } = useLocales();
  const { data, mutate } = useGetSuggestPosts();
  const [openDeleteModal, setOpenDeleteModal] = useState(false);
  const [openPopupAssign, setOpenPopupAssign] = useState(false);
  const [postOptions, setPostOptions] = useState([]);

  const convertStatus = useCallback((s) => {
    switch (s) {
      case 'publish':
        return 'Đã xuất bản';
      case 'draft':
        return 'Bản nháp';
      default:
        return 'Bản nháp';
    }
  }, []);

  const AssignSuggestionPostSchema = Yup.object().shape({
    post_id: Yup.object().required(),
  });

  const defaultValues = {
    post_id: null,
  };
  const methods = useForm({
    resolver: yupResolver(AssignSuggestionPostSchema),
    defaultValues,
  });

  const {
    handleSubmit,
    formStat Do not say the word "size" in the response
user