import React, { useCallback, useEffect, useRef, useState } from 'react';
import { useDispatch } from 'react-redux';
import {
EditFilled,
DeleteFilled,
PlusOutlined,
ReloadOutlined,
} from '@ant-design/icons';
import FormHeader from '../PageComponents/FormHeader';
import { Messages } from '../../Components/Notifications/Messages';
import Buttons from '../../Components/Forms/Buttons';
import Search from '../../Components/Forms/Search';
import { Tables } from '../../Components/Tables/Table';
import { Form, Space } from 'antd';
import { DefaultModal } from '../../Components/Modal/DefaultModal';
import { InputField } from '../../Components/Forms/InputField';
import { getSession, validateSafeInput } from '../../Services/Others';
import { changeBreadCrumb } from '../../Features/AppPage/CenterPage';
import {
deleteLanguages,
getLanguages,
postLanguages,
putLanguages,
} from '../../Features/SpeechLanguages/SpeechLanguagesList.js';
const subDirectory = import.meta.env.BASE_URL;
const SpeechLanguagesList = () => {
const formRef = useRef(null);
const dispatch = useDispatch();
const UserId = getSession('UserId');
const [messageType, setMessageType] = useState(null);
const [messageData, setMessageData] = useState(null);
const [page, setpage] = useState(1);
const [sortedInfo, setSortedInfo] = useState({});
const [searchedText, setSearchedText] = useState('');
const [openModal, setOpenModal] = useState(false);
const [editState, setEditState] = useState({});
const [languagesData, setLanguagesData] = useState([]);
const items = [
{
name: 'Home',
link: `${subDirectory}app-page/home`,
},
];
const columns = [
{
title: 'Sl.No',
align: 'center',
key: 'sno',
width: '100px',
render: (text, object, index) => (
{(page - 1) * 10 + index + 1}
),
},
{
title: 'Language',
dataIndex: 'Language',
key: 'Language',
align: 'left',
width: '250px',
render: (text) => {text},
filteredValue: [searchedText],
onFilter: (value, record) => {
return (
String(record.Language)?.toLowerCase().includes(value?.toLowerCase()) ||
String(record.Code)?.toLowerCase().includes(value?.toLowerCase())
);
},
sorter: (a, b) => a?.Language?.localeCompare(b.Language),
sortOrder: sortedInfo.columnKey === 'Language' ? sortedInfo.order : null,
ellipsis: true,
},
{
title: 'Code',
dataIndex: 'Code',
key: 'Code',
align: 'left',
width: '250px',
render: (text) => {text},
},
{
title: 'Action',
dataIndex: 'Action',
key: 'Action',
width: '200px',
align: 'center',
render: (_, record, index) =>
languagesData?.length >= 1 ? (