import { t } from '@lingui/macro'; import { Button, message, Upload, Input, Table } from 'antd'; import { SbtPageHeader } from 'components/page-header'; import { useState } from 'react'; import { Layout } from 'antd'; import FileViewer from '@cyntler/react-doc-viewer'; const { Sider, Content } = Layout; const siderStyle: React.CSSProperties = { backgroundColor: '#fafafa', padding: 10, width: 200, }; const fileList = [ { name: "invoice.pdf", url: "/dummpy.pdf", type: "invoice", isBadQuality: false, }, { name: "invoice.pdf", url: "/dummpy.pdf", type: "imei", isBadQuality: true, } ] const dataSource = [ { key: '1', value: 'Mike', }, { key: '2', value: 'Mike', }, { key: '3', value: 'Mike', }, ]; const columns = [ { title: 'Key', dataIndex: 'key', key: 'key', }, { title: 'Predicted', dataIndex: 'value', key: 'value', }, { title: 'Submitted', dataIndex: 'value', key: 'value', }, { title: 'Revised', dataIndex: 'value', key: 'value', }, ]; const FileCard = ({ file, isSelected, onClick }) => { return ( <div style={{ border: '1px solid #ccc', width: '200px', backgroundColor: isSelected ? '#d4ecff' : '#fff', padding: '4px 8px', marginRight: '4px', marginTop: '4px', }} onClick={onClick}> <div> <span style={{ fontSize: '12px', color: '#333', fontWeight: 'bold', padding: '4px 8px', }}>{file.type.toUpperCase()}</span> <span style={{ fontSize: '12px', color: '#aaa', fontWeight: 'bold', padding: '4px 8px', }}>{file.name}</span> </div> </div> ); }; const InferencePage = () => { const [selectedFileId, setSelectedFileId] = useState(0); const selectFileByIndex = (index) => { setSelectedFileId(index); }; return ( <> {/* <SbtPageHeader title={t`Result Review`} /> */} <Layout style={{ overflow: 'hidden', width: '100%', maxWidth: '100%', minHeight: 'calc(100vh - 100px)', maxHeight: 'calc(100vh - 100px)', display: 'flex', padding: '8px', }}> <Content style={{ textAlign: 'center', color: '#fff', backgroundColor: '#efefef', height: '100%', display: 'flex', flexDirection: 'column', flexGrow: 1, }}> <div style={{ border: "1px solid #ccc", flexGrow: 1, height: '500px', }}> <FileViewer documents={ [ { uri: "/dummy.pdf" } ] } config={{ header: { disableHeader: true, disableFileName: true, retainURLParams: true, }, csvDelimiter: ",", // "," as default, pdfVerticalScrollByDefault: true, // false as default }} /> </div> <div style={{ width: "100%", display: "flex", flexDirection: "row", height: "100px", flexGrow: 0, }}> {fileList.map((file, index) => ( <FileCard key={index} file={file} isSelected={index === selectedFileId} onClick={ () => { setSelectedFileId(index); } } /> ))} </div> </Content> <Sider width="400px" style={siderStyle}> <h2 style={{ margin: "0 0 10px 0" }}>Overview</h2> <Input size='small' addonBefore="Request ID" style={{ marginBottom: "4px" }} readOnly /> <Input size='small' addonBefore="Redemption" style={{ marginBottom: "4px" }} readOnly /> <Input size='small' addonBefore="Uploaded date" style={{ marginBottom: "4px" }} readOnly /> <Input size='small' addonBefore="Request time" style={{ marginBottom: "4px" }} readOnly /> <Input size='small' addonBefore="Processing time" style={{ marginBottom: "4px" }} readOnly /> <div style={{ marginBottom: "8px", marginTop: "8px", display: "flex" }}> <Button type="primary" size='middle'>Confirm result</Button> </div> <Table dataSource={dataSource} columns={columns} /> </Sider> </Layout> </> ); }; export default InferencePage;