Uname:Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64

Base Dir : /var/www/machinox.in

User : root


403WebShell
403Webshell
Server IP : 13.235.167.51  /  Your IP : 216.73.217.116
Web Server : Apache
System : Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64
User : root ( 0)
PHP Version : 8.2.29
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/control.machinox.in/src/components/ManageContactQueries/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/control.machinox.in/src/components/ManageContactQueries/PendingListing.tsx
import React, { useEffect, useState } from "react";
import { HiMiniChevronUpDown } from "react-icons/hi2";
import { BsThreeDotsVertical } from "react-icons/bs";
import Link from "next/link";
import RentCityPagination from "@/Common/Pagination/RentCityPagination";
import CommonFunction from "@/Services/CommonFunction";
import HelperService from "@/Services/HelperService";
import NoDataFound from "@/Common/NoDataFound/NoDataFound";
import { Button, Col, Dropdown, Form, InputGroup, Modal, OverlayTrigger, Row, Tab, Tabs, Tooltip } from "react-bootstrap";
import { toast } from "react-toastify";
import WebService from "@/Services/WebService";
import CompoLoader from "@/Common/ComponentLoader/CompoLoader";
import { Label } from "@/Common/Label/Label";


const PendingListing = (props: any) => {
    const [getList, setList] = useState([]);
    const [totalCount, setTotalCount] = useState<any>(0);
    const [pageLoader, setPageLoader] = useState<any>(false);
    const [offset, setOffset] = useState<any>(0);
    const [orderBy, setOrderBy] = useState("DESC");
    const [sortBy, setSortBy] = useState("id");
    const [keyword, setKeyword] = useState("");
    const [approveModal, setApproveModal] = useState(false);
    const [errFlag, setErrFlag] = useState(false);
    const [submitId, setsubmitId] = useState("");
    const [feedback, setFeedback] = useState({
        feedback: ""
    })
    const [currentPage, setCurrentPage] = useState(1);
    const getSrNo = (index: number) => {
        const itemsPerPage = 10;
        const offset = (currentPage - 1) * itemsPerPage;
        return offset + index + 1;
    };

    useEffect(() => {
        handlegetList(keyword)
    }, [props.type, offset, orderBy, sortBy])

    const handlegetList = (
        keyword: any,
    ) => {
        setPageLoader(true);
        return WebService.CommonApi({
            method: "GET",
            action: `admin/queries/${props.type}?keyword=${keyword}&offset=${offset}&order_by=${orderBy}&sort_by=${sortBy}`,
            body: null,
            isShowError: false,
        })
            .then((res: any) => {
                setList(res.list);
                setTotalCount(res?.count ?? 0);
                setPageLoader(false);
                setCurrentPage(res?.current_page);
            })
            .catch((error: any) => {
                setPageLoader(false);
                toast.error(error?.response?.data?.message);
                return error;
            });
    };

    const handleSort = (column: string) => {
        if (sortBy == column) {
            setOrderBy(prev => (prev === 'DESC' ? 'ASC' : 'DESC'));
        } else {
            setSortBy(column);
            setOrderBy('DESC');
        }
    };

    const updateStatus = () => {
        let flag = false;
        if (feedback.feedback === "") {
            flag = true
        }
        if (flag) {
            setErrFlag(true)
        } else {
            WebService.putAPI({
                action: `admin/contact/queries/${submitId}`,
                body: feedback,
                isShowError: true
            }).then((res: any) => {
                toast.success(res.message)
                setApproveModal(false);
                handlegetList(keyword)
            }).catch((error: any) => {
                return false;
            })
        }
    }

    const handleId = (id: any) => {
        setApproveModal(true);
        setsubmitId(id);
    }

    return (
        <>
            {pageLoader && <CompoLoader />}
            <div className="table-style-1 table-employee table-responsive position-relative">
                <table className="table">
                    <thead className="">
                        <tr>
                            <th>
                                Sr.No{" "}
                            </th>
                            <th onClick={() => handleSort('created_at')}>
                                Date{" "}
                                {/* <span className="sorting-icon" style={{ cursor: "pointer" }}>
                                    <HiMiniChevronUpDown />
                                </span> */}
                            </th>
                            <th onClick={() => handleSort('name')}>
                                Name{" "}
                                {/* <span className="sorting-icon" style={{ cursor: "pointer" }}>
                                    <HiMiniChevronUpDown />
                                </span> */}
                            </th>
                            <th>
                                Email{" "}
                            </th>
                            <th>
                                Query{" "}
                            </th>
                            <th >
                                Mobile No.{" "}
                            </th>
                            <th className="text-center">Action</th>
                        </tr>
                    </thead>
                    <tbody>
                        {getList && getList.length > 0 ? (
                            getList?.map((data: any, index: any) => {
                                return (
                                    <tr key={index}>
                                        <td className="col-id">
                                            {getSrNo(index)}
                                        </td>
                                        <td className="col-designation">
                                            {HelperService.formatDate(data?.created_at)}
                                        </td>
                                        <td className="col-designation">
                                            {data?.name}
                                        </td>
                                        <td className="col-designation">
                                            {data?.email}
                                        </td>
                                        <td className="col-designation">
                                            {data?.message}
                                        </td>
                                        <td className="col-designation">
                                            {data?.user?.mobile_number ? data?.user?.dial_code + " " + data?.user?.mobile_number : ""}
                                        </td>
                                        <td className="col-action">{
                                            <Button
                                                id="save-btn"
                                                className="btn-md btn-brand mx-3 btn text-center"
                                                type="button"
                                                onClick={() => handleId(data.id)}
                                            >
                                                Resolve
                                            </Button>
                                        }
                                        </td>
                                    </tr>
                                );
                            })
                        ) : !pageLoader && (
                            <tr>
                                <td colSpan={8}>
                                    <NoDataFound />
                                </td>
                            </tr>
                        )}
                    </tbody>
                </table>
                {totalCount > 10 && (
                    <div className="float-end me-2">
                        <RentCityPagination
                            totalCount={totalCount}
                            itemCountPerPage={10}
                            changePage={(page: any) => {
                                setOffset(page - 1);
                            }}
                        />
                    </div>
                )}
            </div>

            {
                <Modal show={approveModal} onHide={() => setApproveModal(false)} centered>
                    <Modal.Header closeButton>
                        <h5>Feedback</h5>
                    </Modal.Header>
                    <Modal.Body>
                        <div className="mb-3">
                            <Form.Control
                                type="text"
                                placeholder="Enter Feedback..."
                                value={feedback?.feedback || ""}
                                onChange={(e: any) => {
                                    setFeedback((prePlan: any) => {
                                        return { ...prePlan, feedback: e.target.value };
                                    })
                                }}
                            />
                            {feedback.feedback === "" && errFlag && (
                                <Label
                                    title="Please enter feedback"
                                    modeError={true}
                                />
                            )}
                        </div>
                    </Modal.Body>
                    <Modal.Footer>
                        <Button id="save-option-btn" className="btn-brand" onClick={updateStatus}>
                            Save
                        </Button>
                    </Modal.Footer>
                </Modal>
            }
        </>
    )
}

export default PendingListing;

Youez - 2016 - github.com/yon3zu
LinuXploit