|
- // material-ui
- import * as React from 'react';
- import {FiDataGrid} from "components/FiDataGrid";
- import {
- Button,
- // Typography,
- useMediaQuery
- } from '@mui/material';
- import * as DateUtils from "utils/DateUtils"
- import {useNavigate} from "react-router-dom";
- import {
- isORGLoggedIn,
- } from "utils/Utils";
- import {useTheme} from "@emotion/react";
- import {getStatusIntl} from "utils/statusUtils/PublicNoteStatusUtils";
- import {FormattedMessage, useIntl} from "react-intl";
- // ==============================|| EVENT TABLE ||============================== //
-
- export default function BaseGrid({setCount, url}) {
- const navigate = useNavigate()
- const theme = useTheme();
- const isMdOrLg = useMediaQuery(theme.breakpoints.up('md'));
- const intl = useIntl();
-
- const handleDetailClick = (params) => () => {
- navigate('/publicNotice/'+ params.id);
- };
-
-
- const columns = [
- {
- id: 'appNo',
- field: 'appNo',
- headerName: intl.formatMessage({id: 'applicationId'}),
- width: isMdOrLg ? 'auto' : 160,
- flex: isMdOrLg ? 1 : undefined,
- },
- {
- id: 'created',
- field: 'created',
- headerName: intl.formatMessage({id: 'submitDate'}),
- width: isMdOrLg ? 'auto' : 300,
- flex: isMdOrLg ? 1 : undefined,
- valueGetter:(params)=>{
- return DateUtils.datetimeStr(params?.value);
- }
- },
-
- {
- id: 'remarks',
- field: 'remarks',
- headerName: isORGLoggedIn()? intl.formatMessage({id: 'gazetteCount2_1'}) : intl.formatMessage({id: 'myRemarks'}),
- width: isMdOrLg ? 'auto' : 400,
- flex: isMdOrLg ? 3 : undefined,
- renderCell: (params) => (
- isORGLoggedIn()?
- <div>
- <FormattedMessage id="gazetteCount" />: {params.row.issueVolume + "/" + params.row.issueYear
- + " No. " + params.row.issueNo}<br />
- <FormattedMessage id="careOf" />: {params.row.careOf} <br/>
- <FormattedMessage variant="pnspsNormalText" id="myRemarks"/>: {params.row.remarks}
-
- </div>:
- <div>
- <FormattedMessage id="gazetteCount" />: {params.row.issueVolume + "/" + params.row.issueYear
- + " No. " + params.row.issueNo}<br />
- <FormattedMessage variant="pnspsNormalText" id="myRemarks"/>:{params.row.remarks}
- {/* <Typography variant="pnspsNormalText">{params.row.remarks}</Typography> */}
- </div>
- )
- },
- {
- id: 'status',
- field: 'status',
- headerName: intl.formatMessage({id: 'status'}),
- width: isMdOrLg ? 'auto' : 160,
- flex: isMdOrLg ? 1 : undefined,
- renderCell: (params) => {
- return [getStatusIntl(params,intl)]
- },
- },
- {
- field: 'actions',
- headerName: '',
- width: 160,
- cellClassName: 'actions',
- renderCell: (params) => {
- return <Button aria-label={intl.formatMessage({id: 'viewDetail'})} onClick={handleDetailClick(params)}>
- <FormattedMessage id="viewDetail"/>
- </Button>;
- },
- }
- ];
-
- function handleRowDoubleClick(params) {
- navigate('/publicNotice/'+ params.id);
- }
-
- return (
- <div style={{minHeight: 400, height:"100%", width: '100%', padding: 4}}>
- <FiDataGrid
- columns={columns}
- customPageSize={10}
- onRowDoubleClick={handleRowDoubleClick}
- getRowHeight={() => 'auto'}
- doLoad={React.useMemo(() => ({
- url: url,
- params:{},
- callback:(responseData)=>{
- setCount(responseData.count??0);
- }
- }), [url])}
- />
- </div>
- );
- }
|