Compare commits
1 Commits
main
...
react-wind
| Author | SHA1 | Date | |
|---|---|---|---|
|
f23b725c81
|
38
package-lock.json
generated
38
package-lock.json
generated
@@ -15,7 +15,8 @@
|
||||
"better-sqlite3": "^7.5.0",
|
||||
"next": "12.1.2",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2"
|
||||
"react-dom": "^17.0.2",
|
||||
"react-window": "^1.8.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "8.12.0",
|
||||
@@ -2996,6 +2997,11 @@
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/memoize-one": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-5.2.1.tgz",
|
||||
"integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
|
||||
},
|
||||
"node_modules/merge2": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
|
||||
@@ -3561,6 +3567,22 @@
|
||||
"react-dom": ">=16.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-window": {
|
||||
"version": "1.8.7",
|
||||
"resolved": "https://registry.npmmirror.com/react-window/-/react-window-1.8.7.tgz",
|
||||
"integrity": "sha512-JHEZbPXBpKMmoNO1bNhoXOOLg/ujhL/BU4IqVU9r8eQPcy5KQnGHIHDRkJ0ns9IM5+Aq5LNwt3j8t3tIrePQzA==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.0.0",
|
||||
"memoize-one": ">=3.1.1 <6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">8.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/readable-stream": {
|
||||
"version": "2.3.7",
|
||||
"resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz",
|
||||
@@ -6445,6 +6467,11 @@
|
||||
"yallist": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"memoize-one": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-5.2.1.tgz",
|
||||
"integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
|
||||
},
|
||||
"merge2": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
|
||||
@@ -6878,6 +6905,15 @@
|
||||
"prop-types": "^15.6.2"
|
||||
}
|
||||
},
|
||||
"react-window": {
|
||||
"version": "1.8.7",
|
||||
"resolved": "https://registry.npmmirror.com/react-window/-/react-window-1.8.7.tgz",
|
||||
"integrity": "sha512-JHEZbPXBpKMmoNO1bNhoXOOLg/ujhL/BU4IqVU9r8eQPcy5KQnGHIHDRkJ0ns9IM5+Aq5LNwt3j8t3tIrePQzA==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.0.0",
|
||||
"memoize-one": ">=3.1.1 <6"
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.7",
|
||||
"resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz",
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
"better-sqlite3": "^7.5.0",
|
||||
"next": "12.1.2",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2"
|
||||
"react-dom": "^17.0.2",
|
||||
"react-window": "^1.8.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "8.12.0",
|
||||
|
||||
@@ -9,15 +9,13 @@ import {
|
||||
DialogTitle,
|
||||
DialogContent,
|
||||
DialogActions,
|
||||
List,
|
||||
ListItem,
|
||||
ListItemText,
|
||||
Typography,
|
||||
TextField,
|
||||
TableContainer,
|
||||
Table,
|
||||
TableHead,
|
||||
TableRow,
|
||||
TableCell,
|
||||
TableBody,
|
||||
} from "@mui/material";
|
||||
import { FixedSizeList } from "react-window";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useRouter } from "next/router";
|
||||
import config from "../next.config";
|
||||
@@ -330,24 +328,29 @@ export default function Time(props) {
|
||||
服务器负载 (QPS): {stats.apiqps}
|
||||
</Typography>
|
||||
</Box>
|
||||
<TableContainer>
|
||||
<Table>
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<TableCell>名称</TableCell>
|
||||
<TableCell>时间段</TableCell>
|
||||
<TableCell>操作</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{ranges.map((range) => (
|
||||
<TableRow key={range.id}>
|
||||
<TableCell>{range.name}</TableCell>
|
||||
<TableCell>{range.range}</TableCell>
|
||||
<TableCell>
|
||||
|
||||
<Box sx={{
|
||||
height: "100%",
|
||||
}}>
|
||||
<FixedSizeList
|
||||
height={500}
|
||||
width={"100%"}
|
||||
itemSize={50}
|
||||
itemData={ranges}
|
||||
itemCount={ranges.length}
|
||||
innerElementType={List}
|
||||
style={{
|
||||
maxWidth: "29rem",
|
||||
}}
|
||||
>
|
||||
{({ index, style, data }) => {
|
||||
const range = data[index];
|
||||
return (
|
||||
<ListItem style={style} key={index}>
|
||||
<Button
|
||||
sx={{
|
||||
userSelect: "none",
|
||||
mx: "1rem",
|
||||
}}
|
||||
disabled={range.username !== ""}
|
||||
variant="contained"
|
||||
@@ -356,30 +359,15 @@ export default function Time(props) {
|
||||
>
|
||||
{range.username ? range.username : "抢!"}
|
||||
</Button>
|
||||
{isAdmin() && (
|
||||
<>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="secondary"
|
||||
onClick={() => setModifyTime(range)}
|
||||
>
|
||||
修改
|
||||
</Button>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="secondary"
|
||||
onClick={() => deleteRange(range.id)}
|
||||
>
|
||||
删除
|
||||
</Button>
|
||||
</>
|
||||
)}
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
<ListItemText>
|
||||
{range.name} {range.range}
|
||||
</ListItemText>
|
||||
</ListItem>
|
||||
);
|
||||
}}
|
||||
</FixedSizeList>
|
||||
</Box>
|
||||
|
||||
<Snackbar
|
||||
open={snackbarError}
|
||||
autoHideDuration={1000}
|
||||
|
||||
Reference in New Issue
Block a user