update list for /sight & /station routes

This commit is contained in:
maxim
2025-02-21 21:40:23 +03:00
parent 550299f1a8
commit a989b80642
4 changed files with 86 additions and 12 deletions

View File

@ -1,13 +1,16 @@
import {DataGrid, type GridColDef} from '@mui/x-data-grid'
import React, {useState, useEffect} from 'react'
import {DataGrid, type GridColDef, type GridColumnVisibilityModel} from '@mui/x-data-grid'
import {DeleteButton, EditButton, List, ShowButton, useDataGrid} from '@refinedev/mui'
import React from 'react'
import {Box, Button, Stack} from '@mui/material'
import Cookies from 'js-cookie'
import {localeText} from '../../locales/ru/localeText'
export const SightList = () => {
const {dataGridProps} = useDataGrid({
resource: 'sight/',
})
const {dataGridProps} = useDataGrid({resource: 'sight/'})
const initialShowCoordinates = Cookies.get('showCoordinates') === 'true'
const [showCoordinates, setShowCoordinates] = useState(initialShowCoordinates)
const columns = React.useMemo<GridColDef[]>(
() => [
@ -79,9 +82,34 @@ export const SightList = () => {
[],
)
const [columnVisibilityModel, setColumnVisibilityModel] = useState<GridColumnVisibilityModel>({
latitude: showCoordinates,
longitude: showCoordinates,
})
useEffect(() => {
setColumnVisibilityModel({
latitude: showCoordinates,
longitude: showCoordinates,
})
Cookies.set('showCoordinates', String(showCoordinates))
}, [showCoordinates])
const toggleCoordinates = () => {
setShowCoordinates((prev) => !prev)
}
return (
<List>
<DataGrid {...dataGridProps} columns={columns} localeText={localeText} getRowId={(row: any) => row.id} />
<Stack gap={2.5}>
<DataGrid {...dataGridProps} columns={columns} localeText={localeText} getRowId={(row: any) => row.id} columnVisibilityModel={columnVisibilityModel} onColumnVisibilityModelChange={(model) => setColumnVisibilityModel(model)} />
<Box sx={{mb: 2}}>
<Button variant="contained" onClick={toggleCoordinates}>
{showCoordinates ? 'Скрыть координаты' : 'Показать координаты'}
</Button>
</Box>
</Stack>
</List>
)
}

View File

@ -1,13 +1,16 @@
import {DataGrid, type GridColDef} from '@mui/x-data-grid'
import React, {useState, useEffect} from 'react'
import {DataGrid, type GridColDef, type GridColumnVisibilityModel} from '@mui/x-data-grid'
import {DeleteButton, EditButton, List, ShowButton, useDataGrid} from '@refinedev/mui'
import React from 'react'
import {Box, Button, Stack} from '@mui/material'
import Cookies from 'js-cookie'
import {localeText} from '../../locales/ru/localeText'
export const StationList = () => {
const {dataGridProps} = useDataGrid({
resource: 'station/',
})
const {dataGridProps} = useDataGrid({resource: 'station/'})
const initialShowCoordinates = Cookies.get('showCoordinates') === 'true'
const [showCoordinates, setShowCoordinates] = useState(initialShowCoordinates)
const columns = React.useMemo<GridColDef[]>(
() => [
@ -77,10 +80,34 @@ export const StationList = () => {
],
[],
)
const [columnVisibilityModel, setColumnVisibilityModel] = useState<GridColumnVisibilityModel>({
latitude: showCoordinates,
longitude: showCoordinates,
})
useEffect(() => {
setColumnVisibilityModel({
latitude: showCoordinates,
longitude: showCoordinates,
})
Cookies.set('showCoordinates', String(showCoordinates))
}, [showCoordinates])
const toggleCoordinates = () => {
setShowCoordinates((prev) => !prev)
}
return (
<List>
<DataGrid {...dataGridProps} columns={columns} localeText={localeText} getRowId={(row: any) => row.id} />
<Stack gap={2.5}>
<DataGrid {...dataGridProps} columns={columns} localeText={localeText} getRowId={(row: any) => row.id} columnVisibilityModel={columnVisibilityModel} onColumnVisibilityModelChange={(model) => setColumnVisibilityModel(model)} />
<Box sx={{mb: 2}}>
<Button variant="contained" onClick={toggleCoordinates}>
{showCoordinates ? 'Скрыть координаты' : 'Показать координаты'}
</Button>
</Box>
</Stack>
</List>
)
}