diff --git a/src/pages/Article/ArticleListPage/index.tsx b/src/pages/Article/ArticleListPage/index.tsx index 179baea..118ecbc 100644 --- a/src/pages/Article/ArticleListPage/index.tsx +++ b/src/pages/Article/ArticleListPage/index.tsx @@ -21,6 +21,7 @@ export const ArticleListPage = observer(() => { page: 0, pageSize: 50, }); + const canWriteArticles = authStore.canWrite("sights"); useEffect(() => { const fetchArticles = async () => { @@ -56,7 +57,7 @@ export const ArticleListPage = observer(() => { - {authStore.canWrite("sights") && ( + {canWriteArticles && ( - {authStore.canWrite("sights") && ( + {canWriteMedia && ( @@ -129,7 +130,7 @@ export const RouteListPage = observer(() => { )} - {canWrite && ( + {canWriteRoutes && ( - + {canWriteStations && ids.length > 0 && ( +
+ +
+ )} { - if (Array.isArray(newSelection)) { - const selectedIds = newSelection - .map((id: string | number) => { - const numId = - typeof id === "string" - ? Number.parseInt(id, 10) - : Number(id); - return numId; - }) - .filter( - (id: number) => - !Number.isNaN(id) && id !== null && id !== undefined - ); - setIds(selectedIds); - } else if ( - newSelection && - typeof newSelection === "object" && - "ids" in newSelection - ) { - const idsSet = newSelection.ids as Set; - const selectedIds = Array.from(idsSet) - .map((id: string | number) => { - const numId = - typeof id === "string" - ? Number.parseInt(id, 10) - : Number(id); - return numId; - }) - .filter( - (id: number) => - !Number.isNaN(id) && id !== null && id !== undefined - ); - setIds(selectedIds); - } else { - setIds([]); - } - }} + onRowSelectionModelChange={ + canWriteStations + ? (newSelection: any) => { + if (Array.isArray(newSelection)) { + const selectedIds = newSelection + .map((id: string | number) => { + const numId = + typeof id === "string" + ? Number.parseInt(id, 10) + : Number(id); + return numId; + }) + .filter( + (id: number) => + !Number.isNaN(id) && id !== null && id !== undefined + ); + setIds(selectedIds); + } else if ( + newSelection && + typeof newSelection === "object" && + "ids" in newSelection + ) { + const idsSet = newSelection.ids as Set; + const selectedIds = Array.from(idsSet) + .map((id: string | number) => { + const numId = + typeof id === "string" + ? Number.parseInt(id, 10) + : Number(id); + return numId; + }) + .filter( + (id: number) => + !Number.isNaN(id) && id !== null && id !== undefined + ); + setIds(selectedIds); + } else { + setIds([]); + } + } + : undefined + } localeText={ruRU.components.MuiDataGrid.defaultProps.localeText} slots={{ noRowsOverlay: () => ( diff --git a/src/pages/User/UserListPage/index.tsx b/src/pages/User/UserListPage/index.tsx index 76335b6..9969ddf 100644 --- a/src/pages/User/UserListPage/index.tsx +++ b/src/pages/User/UserListPage/index.tsx @@ -124,7 +124,7 @@ export const UserListPage = observer(() => { )} - {ids.length > 0 && ( + {canWriteUsers && ids.length > 0 && (
- {ids.length > 0 && ( + {canWriteVehicles && ids.length > 0 && (
)} - {selectedIds.length > 0 && ( + {canWriteDevices && selectedIds.length > 0 && (