@deix/rossini-identity-management 5.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/lib/src/components/AddItemDialog.d.ts.map +1 -1
  2. package/lib/src/components/AddItemDialog.js +7 -20
  3. package/lib/src/components/DeleteConfirmationDialog.d.ts.map +1 -1
  4. package/lib/src/components/DeleteConfirmationDialog.js +5 -22
  5. package/lib/src/components/groups/CreateGroupDialog.d.ts.map +1 -1
  6. package/lib/src/components/groups/CreateGroupDialog.js +3 -3
  7. package/lib/src/components/groups/GroupForm.d.ts.map +1 -1
  8. package/lib/src/components/groups/GroupForm.js +4 -4
  9. package/lib/src/components/groups/GroupTabs.d.ts.map +1 -1
  10. package/lib/src/components/groups/GroupTabs.js +3 -3
  11. package/lib/src/components/groups/GroupUsers.d.ts.map +1 -1
  12. package/lib/src/components/groups/GroupUsers.js +13 -23
  13. package/lib/src/components/groups/Groups.d.ts.map +1 -1
  14. package/lib/src/components/groups/Groups.js +7 -5
  15. package/lib/src/components/groups/GroupsTable.d.ts.map +1 -1
  16. package/lib/src/components/groups/GroupsTable.js +5 -6
  17. package/lib/src/components/tables/Table.d.ts +29 -0
  18. package/lib/src/components/tables/Table.d.ts.map +1 -0
  19. package/lib/src/components/tables/Table.js +96 -0
  20. package/lib/src/components/users/CreateUserDialog.d.ts.map +1 -1
  21. package/lib/src/components/users/CreateUserDialog.js +3 -3
  22. package/lib/src/components/users/UserCredentials.d.ts.map +1 -1
  23. package/lib/src/components/users/UserCredentials.js +3 -3
  24. package/lib/src/components/users/UserForm.d.ts.map +1 -1
  25. package/lib/src/components/users/UserForm.js +4 -6
  26. package/lib/src/components/users/UserGroups.d.ts.map +1 -1
  27. package/lib/src/components/users/UserGroups.js +5 -7
  28. package/lib/src/components/users/Users.d.ts.map +1 -1
  29. package/lib/src/components/users/Users.js +16 -6
  30. package/lib/src/components/users/UsersTable.d.ts +4 -1
  31. package/lib/src/components/users/UsersTable.d.ts.map +1 -1
  32. package/lib/src/components/users/UsersTable.js +14 -37
  33. package/lib/src/components/users/UsersTabs.d.ts.map +1 -1
  34. package/lib/src/components/users/UsersTabs.js +3 -3
  35. package/lib/src/lang/common.d.ts +6 -0
  36. package/lib/src/lang/common.d.ts.map +1 -0
  37. package/lib/src/lang/common.js +35 -0
  38. package/lib/src/lang/groups.d.ts.map +1 -1
  39. package/lib/src/lang/groups.js +4 -0
  40. package/lib/src/lang/tables.d.ts +6 -0
  41. package/lib/src/lang/tables.d.ts.map +1 -0
  42. package/lib/src/lang/tables.js +11 -0
  43. package/lib/src/lang/users.d.ts.map +1 -1
  44. package/lib/src/lang/users.js +16 -0
  45. package/lib/src/utils/hooks/groups.d.ts.map +1 -1
  46. package/lib/src/utils/hooks/groups.js +10 -10
  47. package/lib/src/utils/hooks/useTranslate.d.ts +6 -0
  48. package/lib/src/utils/hooks/useTranslate.d.ts.map +1 -0
  49. package/lib/src/utils/hooks/useTranslate.js +16 -0
  50. package/lib/src/utils/hooks/users.d.ts.map +1 -1
  51. package/lib/src/utils/hooks/users.js +19 -19
  52. package/lib/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +16 -9
@@ -2,7 +2,6 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  import { Box, Button, IconButton, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, } from '@mui/material';
3
3
  import AddIcon from '@mui/icons-material/Add';
4
4
  import DeleteIcon from '@mui/icons-material/Delete';
5
- import { isStringTranslation, useLocale } from '@deix/rossini-core';
6
5
  import { useAddUserToGroup, useRemoveUserFromGroup, useUserGroups, } from '../../utils/hooks/users';
7
6
  import { useState } from 'react';
8
7
  import DeleteConfirmationDialog from '../DeleteConfirmationDialog';
@@ -11,14 +10,15 @@ import usersTranslations from '../../lang/users';
11
10
  import AddItemDialog from '../AddItemDialog';
12
11
  import { useGroups } from '../../utils/hooks/groups';
13
12
  import { useAPIClient } from '../../utils/hooks/useAPIClient';
13
+ import useTranslate from '../../utils/hooks/useTranslate';
14
14
  const userGroupsTableColumns = [
15
15
  {
16
16
  id: 'name',
17
- label: { en: 'Group', it: 'Gruppo' },
17
+ label: usersTranslations.group,
18
18
  },
19
19
  ];
20
20
  const UserGroups = ({ user }) => {
21
- const locale = useLocale();
21
+ const t = useTranslate();
22
22
  const apiClient = useAPIClient();
23
23
  const queryClient = useQueryClient();
24
24
  const { data: groups } = useGroups(apiClient);
@@ -28,13 +28,11 @@ const UserGroups = ({ user }) => {
28
28
  const [openAddGroupDialog, setOpenAddGroupDialog] = useState(false);
29
29
  const [openConfirmationDialog, setOpenConfirmationDialog] = useState(false);
30
30
  const [deleteId, setDeleteId] = useState();
31
- return (_jsxs(_Fragment, { children: [userGroups && userGroups.length > 0 && (_jsx(Box, { sx: { maxWidth: 'sm' }, children: _jsx(TableContainer, { children: _jsxs(Table, { size: 'small', children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [userGroupsTableColumns.map((col) => (_jsx(TableCell, { align: col.align || 'inherit', children: isStringTranslation(col.label)
32
- ? col.label[locale]
33
- : col.label }, col.id))), _jsx(TableCell, { padding: 'none', children: '' })] }) }), _jsx(TableBody, { children: userGroups?.map((group, rowIdx) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: group.name }), _jsx(TableCell, { padding: 'none', align: 'right', children: _jsx(IconButton, { size: 'small', onClick: (evt) => {
31
+ return (_jsxs(_Fragment, { children: [userGroups && userGroups.length > 0 && (_jsx(Box, { sx: { maxWidth: 'sm' }, children: _jsx(TableContainer, { children: _jsxs(Table, { size: 'small', children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [userGroupsTableColumns.map((col) => (_jsx(TableCell, { align: col.align || 'inherit', children: t(col.label) }, col.id))), _jsx(TableCell, { padding: 'none', children: '' })] }) }), _jsx(TableBody, { children: userGroups?.map((group, rowIdx) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: group.name }), _jsx(TableCell, { padding: 'none', align: 'right', children: _jsx(IconButton, { size: 'small', onClick: (evt) => {
34
32
  evt.stopPropagation();
35
33
  setOpenConfirmationDialog(true);
36
34
  setDeleteId(group.id);
37
- }, children: _jsx(DeleteIcon, {}) }) })] }, rowIdx))) })] }) }) })), _jsx(Button, { variant: 'outlined', startIcon: _jsx(AddIcon, {}), onClick: () => setOpenAddGroupDialog(true), sx: { marginTop: 2 }, children: usersTranslations.addGroup[locale] }), _jsx(AddItemDialog, { open: openAddGroupDialog, onClose: () => setOpenAddGroupDialog(false), onConfirm: (value) => {
35
+ }, children: _jsx(DeleteIcon, {}) }) })] }, rowIdx))) })] }) }) })), _jsx(Button, { variant: 'outlined', startIcon: _jsx(AddIcon, {}), onClick: () => setOpenAddGroupDialog(true), sx: { marginTop: 2 }, children: t(usersTranslations.addGroup) }), _jsx(AddItemDialog, { open: openAddGroupDialog, onClose: () => setOpenAddGroupDialog(false), onConfirm: (value) => {
38
36
  if (value) {
39
37
  addUserToGroup({ userId: user.id, groupId: value?.value });
40
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Users.d.ts","sourceRoot":"","sources":["../../../../src/components/users/Users.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGhD,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAE3B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAEtD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAEvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAEpC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,QAAA,MAAM,KAAK,4JAWR,UAAU,sBA+JZ,CAAC;eAEa,KAAK"}
1
+ {"version":3,"file":"Users.d.ts","sourceRoot":"","sources":["../../../../src/components/users/Users.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAYnD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAKhD,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAE3B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAEtD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IAEvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAEpC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,QAAA,MAAM,KAAK,4JAWR,UAAU,sBAyKZ,CAAC;eAEa,KAAK"}
@@ -5,7 +5,7 @@ import PersonAddIcon from '@mui/icons-material/PersonAdd';
5
5
  import { Box, Button, Grid, IconButton, Link } from '@mui/material';
6
6
  import ArrowBackIcon from '@mui/icons-material/ArrowBack';
7
7
  import KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';
8
- import { useAPI, useLocale } from '@deix/rossini-core';
8
+ import { useAPI } from '@deix/rossini-core';
9
9
  import { useQueryClient } from '@tanstack/react-query';
10
10
  import { SearchField } from '../../components';
11
11
  import CreateUserDialog from './CreateUserDialog';
@@ -14,8 +14,10 @@ import usersTranslations from '../../lang/users';
14
14
  import { useDeleteUser, useUsers } from '../../utils/hooks/users';
15
15
  import UserTabs from './UsersTabs';
16
16
  import { APIClientProvider } from '../../utils/hooks/useAPIClient';
17
+ import commonTranslations from '../../lang/common';
18
+ import useTranslate from '../../utils/hooks/useTranslate';
17
19
  const Users = ({ apiUrl, additionalTabs = [], onUserCreate, onUserUpdate, onUserDelete, editUsername, filteredGroup, emailAsUsername = false, hideGroupsSelection = false, disableDelete = false, }) => {
18
- const locale = useLocale();
20
+ const t = useTranslate();
19
21
  const apiClient = useAPI(apiUrl);
20
22
  const queryClient = useQueryClient();
21
23
  const { data: users } = useUsers(apiClient, filteredGroup);
@@ -24,6 +26,11 @@ const Users = ({ apiUrl, additionalTabs = [], onUserCreate, onUserUpdate, onUser
24
26
  const [filteredUsers, setFilteredUsers] = useState();
25
27
  const [selectedUser, setSelectedUser] = useState();
26
28
  const [openCreateUserDialog, setOpenCreateUserDialog] = useState(false);
29
+ // Kept here so the current page survives opening a user's details
30
+ const [paginationModel, setPaginationModel] = useState({
31
+ page: 0,
32
+ pageSize: 25,
33
+ });
27
34
  // Update the filtered users using the search string
28
35
  useEffect(() => {
29
36
  if (users && searchString === '') {
@@ -66,12 +73,15 @@ const Users = ({ apiUrl, additionalTabs = [], onUserCreate, onUserUpdate, onUser
66
73
  paddingTop: 3,
67
74
  paddingLeft: 3,
68
75
  paddingRight: 3,
69
- }, children: [!selectedUser && (_jsxs(_Fragment, { children: [_jsxs(Grid, { container: true, spacing: 2, sx: { marginBottom: 2 }, children: [_jsx(Grid, { children: _jsx(SearchField, { placeholder: usersTranslations.search[locale], onSearch: (value) => setSearchString(value) }) }), _jsx(Grid, { children: _jsx(Button, { variant: 'contained', startIcon: _jsx(PersonAddIcon, {}), onClick: () => {
76
+ }, children: [!selectedUser && (_jsxs(_Fragment, { children: [_jsxs(Grid, { container: true, spacing: 2, sx: { marginBottom: 2 }, children: [_jsx(Grid, { children: _jsx(SearchField, { placeholder: t(usersTranslations.search), onSearch: (value) => {
77
+ setSearchString(value);
78
+ setPaginationModel((model) => ({ ...model, page: 0 }));
79
+ } }) }), _jsx(Grid, { children: _jsx(Button, { variant: 'contained', startIcon: _jsx(PersonAddIcon, {}), onClick: () => {
70
80
  setOpenCreateUserDialog(true);
71
81
  setSelectedUser(undefined);
72
- }, children: usersTranslations.new[locale] }) })] }), _jsx(UsersTable, { users: filteredUsers, selectedUser: selectedUser, setSelectedUser: (user) => {
82
+ }, children: t(usersTranslations.new) }) })] }), _jsx(UsersTable, { users: filteredUsers, selectedUser: selectedUser, setSelectedUser: (user) => {
73
83
  setSelectedUser(user);
74
- }, onDelete: handleDelete, emailAsUsername: emailAsUsername, disableDelete: disableDelete })] })), selectedUser && (_jsxs(Box, { sx: {
84
+ }, onDelete: handleDelete, emailAsUsername: emailAsUsername, disableDelete: disableDelete, paginationModel: paginationModel, onPaginationModelChange: setPaginationModel })] })), selectedUser && (_jsxs(Box, { sx: {
75
85
  display: 'flex',
76
86
  flexDirection: 'column',
77
87
  alignItems: 'flex-start',
@@ -80,7 +90,7 @@ const Users = ({ apiUrl, additionalTabs = [], onUserCreate, onUserUpdate, onUser
80
90
  display: 'flex',
81
91
  flexDirection: 'row',
82
92
  alignItems: 'center',
83
- }, children: [_jsx(IconButton, { "aria-label": 'delete', color: 'primary', onClick: () => setSelectedUser(undefined), sx: { mr: 2 }, children: _jsx(ArrowBackIcon, {}) }), _jsx(Link, { underline: 'none', href: '#', onClick: () => setSelectedUser(undefined), children: usersTranslations.title[locale] }), _jsx(KeyboardArrowRightIcon, {}), selectedUser.username] }), _jsx(UserTabs, { user: selectedUser, additionalTabs: additionalTabs, onUserUpdate: onUserUpdate, editUsername: editUsername, emailAsUsername: emailAsUsername, hideGroupsSelection: hideGroupsSelection })] })), _jsx(CreateUserDialog, { open: openCreateUserDialog, onClose: () => {
93
+ }, children: [_jsx(IconButton, { "aria-label": t(commonTranslations.back), color: 'primary', onClick: () => setSelectedUser(undefined), sx: { mr: 2 }, children: _jsx(ArrowBackIcon, {}) }), _jsx(Link, { underline: 'none', href: '#', onClick: () => setSelectedUser(undefined), children: t(usersTranslations.title) }), _jsx(KeyboardArrowRightIcon, {}), selectedUser.username] }), _jsx(UserTabs, { user: selectedUser, additionalTabs: additionalTabs, onUserUpdate: onUserUpdate, editUsername: editUsername, emailAsUsername: emailAsUsername, hideGroupsSelection: hideGroupsSelection })] })), _jsx(CreateUserDialog, { open: openCreateUserDialog, onClose: () => {
84
94
  setOpenCreateUserDialog(false);
85
95
  }, onUserCreate: onUserCreate, filteredGroup: filteredGroup, emailAsUsername: emailAsUsername })] }) }));
86
96
  };
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { GridPaginationModel } from '@mui/x-data-grid';
2
3
  import { Group } from '../../types/groups';
3
4
  import { User } from '../../types/users';
4
5
  export interface TableProps {
@@ -9,7 +10,9 @@ export interface TableProps {
9
10
  onDelete: (user: User) => void;
10
11
  emailAsUsername?: boolean;
11
12
  disableDelete?: boolean;
13
+ paginationModel?: GridPaginationModel;
14
+ onPaginationModelChange?: (model: GridPaginationModel) => void;
12
15
  }
13
- declare const UsersTable: ({ users, selectedUser, setSelectedUser, onDelete, emailAsUsername, disableDelete, }: TableProps) => React.JSX.Element;
16
+ declare const UsersTable: ({ users, selectedUser, setSelectedUser, onDelete, emailAsUsername, disableDelete, paginationModel, onPaginationModelChange, }: TableProps) => React.JSX.Element;
14
17
  export default UsersTable;
15
18
  //# sourceMappingURL=UsersTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UsersTable.d.ts","sourceRoot":"","sources":["../../../../src/components/users/UsersTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAiB1B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAuBzC,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,QAAA,MAAM,UAAU,wFAOb,UAAU,sBAwEZ,CAAC;eAEa,UAAU"}
1
+ {"version":3,"file":"UsersTable.d.ts","sourceRoot":"","sources":["../../../../src/components/users/UsersTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAyBzC,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAChE;AAED,QAAA,MAAM,UAAU,kIASb,UAAU,sBAYZ,CAAC;eAEa,UAAU"}
@@ -1,48 +1,25 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { isStringTranslation, useLocale } from '@deix/rossini-core';
3
- import CheckIcon from '@mui/icons-material/Check';
4
- import CloseIcon from '@mui/icons-material/Close';
5
- import DeleteIcon from '@mui/icons-material/Delete';
6
- import { IconButton, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, useTheme, } from '@mui/material';
7
- import { useState } from 'react';
8
- import DeleteConfirmationDialog from '../DeleteConfirmationDialog';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import usersTranslations from '../../lang/users';
3
+ import Table from '../tables/Table';
9
4
  const usersTableColumns = [
10
5
  {
11
- id: 'firstName',
12
- label: { en: 'First Name', it: 'Nome' },
6
+ field: 'firstName',
7
+ label: usersTranslations.firstName,
13
8
  },
14
9
  {
15
- id: 'lastName',
16
- label: { en: 'Last Name', it: 'Cognome' },
10
+ field: 'lastName',
11
+ label: usersTranslations.lastName,
17
12
  },
18
13
  {
19
- id: 'username',
20
- label: { en: 'Username', it: 'Username' },
14
+ field: 'username',
15
+ label: usersTranslations.username,
21
16
  },
22
- { id: 'email', label: 'Email' },
17
+ { field: 'email', label: usersTranslations.emailColumn },
23
18
  {
24
- id: 'enabled',
25
- label: { en: 'Enabled', it: 'Utente Abilitato' },
19
+ field: 'enabled',
20
+ label: usersTranslations.userEnabled,
21
+ type: 'boolean',
26
22
  },
27
23
  ];
28
- const UsersTable = ({ users = [], selectedUser, setSelectedUser, onDelete, emailAsUsername = false, disableDelete = false, }) => {
29
- const locale = useLocale();
30
- const muiTheme = useTheme();
31
- const [openConfirmationDialog, setOpenConfirmationDialog] = useState(false);
32
- const [deleteUser, setDeleteUser] = useState();
33
- return (_jsxs(_Fragment, { children: [_jsx(TableContainer, { children: _jsxs(Table, { size: 'small', children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [usersTableColumns
34
- .filter((c) => c.id !== 'username' || !emailAsUsername)
35
- .map((col) => (_jsx(TableCell, { align: col.align || 'inherit', children: isStringTranslation(col.label)
36
- ? col.label[locale]
37
- : col.label }, col.id))), _jsx(TableCell, { padding: 'none', children: '' })] }) }), _jsx(TableBody, { children: users.map((user, rowIdx) => (_jsxs(TableRow, { onClick: () => setSelectedUser(user), sx: {
38
- cursor: 'pointer',
39
- background: selectedUser && user.id === selectedUser.id
40
- ? muiTheme.palette.primary.light
41
- : undefined,
42
- }, children: [_jsx(TableCell, { children: user.firstName }), _jsx(TableCell, { children: user.lastName }), !emailAsUsername && _jsx(TableCell, { children: user.username }), _jsx(TableCell, { children: user.email }), _jsx(TableCell, { children: user.enabled ? _jsx(CheckIcon, {}) : _jsx(CloseIcon, {}) }), !disableDelete && (_jsx(TableCell, { padding: 'none', align: 'right', children: _jsx(IconButton, { size: 'small', onClick: (evt) => {
43
- evt.stopPropagation();
44
- setOpenConfirmationDialog(true);
45
- setDeleteUser(user);
46
- }, children: _jsx(DeleteIcon, {}) }) }))] }, rowIdx))) })] }) }), _jsx(DeleteConfirmationDialog, { open: openConfirmationDialog, onClose: () => setOpenConfirmationDialog(false), onConfirm: () => (deleteUser ? onDelete(deleteUser) : {}) })] }));
47
- };
24
+ const UsersTable = ({ users = [], selectedUser, setSelectedUser, onDelete, emailAsUsername = false, disableDelete = false, paginationModel, onPaginationModelChange, }) => (_jsx(Table, { rows: users, columns: usersTableColumns.filter((c) => c.field !== 'username' || !emailAsUsername), selectedRowId: selectedUser?.id, onRowClick: setSelectedUser, onDelete: disableDelete ? undefined : onDelete, paginationModel: paginationModel, onPaginationModelChange: onPaginationModelChange }));
48
25
  export default UsersTable;
@@ -1 +1 @@
1
- {"version":3,"file":"UsersTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/users/UsersTabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAa,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAKzC,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,QAAA,MAAM,QAAQ,gGAOX,aAAa,sBA+Df,CAAC;eAEa,QAAQ"}
1
+ {"version":3,"file":"UsersTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/users/UsersTabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAMzC,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,QAAA,MAAM,QAAQ,gGAOX,aAAa,sBAyDf,CAAC;eAEa,QAAQ"}
@@ -2,13 +2,13 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
4
  import { Box, Tab, Tabs } from '@mui/material';
5
- import { useLocale } from '@deix/rossini-core';
6
5
  import usersTranslations from '../../lang/users';
7
6
  import UserDetails from './UserDetails';
8
7
  import UserGroups from './UserGroups';
9
8
  import UserCredentials from './UserCredentials';
9
+ import useTranslate from '../../utils/hooks/useTranslate';
10
10
  const UserTabs = ({ user, additionalTabs = [], onUserUpdate, editUsername, emailAsUsername = false, hideGroupsSelection = false, }) => {
11
- const locale = useLocale();
11
+ const t = useTranslate();
12
12
  const [selectedTab, setSelectedTab] = useState('DETAILS');
13
13
  return (_jsxs(Box, { sx: {
14
14
  flexGrow: 1,
@@ -17,6 +17,6 @@ const UserTabs = ({ user, additionalTabs = [], onUserUpdate, editUsername, email
17
17
  alignSelf: 'stretch',
18
18
  }, children: [_jsx(Box, { sx: { borderBottom: 1, borderColor: 'divider' }, children: _jsxs(Tabs, { value: selectedTab, onChange: (_evt, newValue) => {
19
19
  setSelectedTab(newValue);
20
- }, "aria-label": 'basic tabs example', children: [_jsx(Tab, { label: usersTranslations.details[locale], value: 'DETAILS' }), !hideGroupsSelection && (_jsx(Tab, { label: usersTranslations.userGroups[locale], value: 'USER_GROUPS' })), _jsx(Tab, { label: usersTranslations.credentials[locale], value: 'CREDENTIALS' }), additionalTabs.map((tab, index) => (_jsx(Tab, { label: tab.title[locale], value: `ADDITIONAL_TAB_${index}` }, `tab${index}`)))] }) }), _jsxs(Box, { sx: { p: 1 }, children: [selectedTab === 'DETAILS' && (_jsx(UserDetails, { user: user, onUserUpdate: onUserUpdate, editUsername: editUsername, emailAsUsername: emailAsUsername })), selectedTab === 'USER_GROUPS' && !hideGroupsSelection && (_jsx(UserGroups, { user: user })), selectedTab === 'CREDENTIALS' && _jsx(UserCredentials, { user: user }), additionalTabs.map((tab, index) => selectedTab === `ADDITIONAL_TAB_${index}` && (_jsx(tab.component, { user: user }, `tab${index}`)))] })] }));
20
+ }, "aria-label": t(usersTranslations.details), children: [_jsx(Tab, { label: t(usersTranslations.details), value: 'DETAILS' }), !hideGroupsSelection && (_jsx(Tab, { label: t(usersTranslations.userGroups), value: 'USER_GROUPS' })), _jsx(Tab, { label: t(usersTranslations.credentials), value: 'CREDENTIALS' }), additionalTabs.map((tab, index) => (_jsx(Tab, { label: t(tab.title), value: `ADDITIONAL_TAB_${index}` }, `tab${index}`)))] }) }), _jsxs(Box, { sx: { p: 1 }, children: [selectedTab === 'DETAILS' && (_jsx(UserDetails, { user: user, onUserUpdate: onUserUpdate, editUsername: editUsername, emailAsUsername: emailAsUsername })), selectedTab === 'USER_GROUPS' && !hideGroupsSelection && (_jsx(UserGroups, { user: user })), selectedTab === 'CREDENTIALS' && _jsx(UserCredentials, { user: user }), additionalTabs.map((tab, index) => selectedTab === `ADDITIONAL_TAB_${index}` && (_jsx(tab.component, { user: user }, `tab${index}`)))] })] }));
21
21
  };
22
22
  export default UserTabs;
@@ -0,0 +1,6 @@
1
+ import { StringTranslation } from '@deix/rossini-core';
2
+ declare const commonTranslations: {
3
+ [key: string]: StringTranslation;
4
+ };
5
+ export default commonTranslations;
6
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/lang/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,kBAAkB,EAiCnB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;eAE3B,kBAAkB"}
@@ -0,0 +1,35 @@
1
+ const commonTranslations = {
2
+ add: {
3
+ en: 'Add',
4
+ it: 'Aggiungi',
5
+ },
6
+ cancel: {
7
+ en: 'Cancel',
8
+ it: 'Annulla',
9
+ },
10
+ search: {
11
+ en: 'Search...',
12
+ it: 'Cerca...',
13
+ },
14
+ back: {
15
+ en: 'Back',
16
+ it: 'Indietro',
17
+ },
18
+ yes: {
19
+ en: 'Yes',
20
+ it: 'Si',
21
+ },
22
+ no: {
23
+ en: 'No',
24
+ it: 'No',
25
+ },
26
+ deleteTitle: {
27
+ en: 'Delete item?',
28
+ it: 'Cancellare elemento?',
29
+ },
30
+ deleteMessage: {
31
+ en: 'This is a permanent action',
32
+ it: "Questa è un'azione permanente",
33
+ },
34
+ };
35
+ export default commonTranslations;
@@ -1 +1 @@
1
- {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../src/lang/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,kBAAkB,EAqEnB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;eAE3B,kBAAkB"}
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../src/lang/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,kBAAkB,EAyEnB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;eAE3B,kBAAkB"}
@@ -23,6 +23,10 @@ const groupsTranslations = {
23
23
  en: 'Group Name',
24
24
  it: 'Nome Gruppo',
25
25
  },
26
+ nameColumn: {
27
+ en: 'Name',
28
+ it: 'Nome',
29
+ },
26
30
  cancel: {
27
31
  en: 'Cancel',
28
32
  it: 'Annulla',
@@ -0,0 +1,6 @@
1
+ import { StringTranslation } from '@deix/rossini-core';
2
+ declare const tablesTranslations: {
3
+ [key: string]: StringTranslation;
4
+ };
5
+ export default tablesTranslations;
6
+ //# sourceMappingURL=tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/lang/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,kBAAkB,EASnB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;eAE3B,kBAAkB"}
@@ -0,0 +1,11 @@
1
+ const tablesTranslations = {
2
+ noData: {
3
+ en: 'No data available',
4
+ it: 'Non ci sono dati',
5
+ },
6
+ delete: {
7
+ en: 'Delete',
8
+ it: 'Elimina',
9
+ },
10
+ };
11
+ export default tablesTranslations;
@@ -1 +1 @@
1
- {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/lang/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,iBAAiB,EA6HlB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;eAE3B,iBAAiB"}
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/lang/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,iBAAiB,EA6IlB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC;eAE3B,iBAAiB"}
@@ -35,6 +35,10 @@ const usersTranslations = {
35
35
  en: 'Last Name',
36
36
  it: 'Cognome',
37
37
  },
38
+ fullName: {
39
+ en: 'Full Name',
40
+ it: 'Nome Completo',
41
+ },
38
42
  email: {
39
43
  en: 'Email Address',
40
44
  it: 'Indirizzo Email',
@@ -51,6 +55,18 @@ const usersTranslations = {
51
55
  en: 'Groups',
52
56
  it: 'Gruppi',
53
57
  },
58
+ emailColumn: {
59
+ en: 'Email',
60
+ it: 'Email',
61
+ },
62
+ userEnabled: {
63
+ en: 'Enabled',
64
+ it: 'Utente Abilitato',
65
+ },
66
+ group: {
67
+ en: 'Group',
68
+ it: 'Gruppo',
69
+ },
54
70
  credentials: {
55
71
  en: 'Credentials',
56
72
  it: 'Credenziali',
@@ -1 +1 @@
1
- {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,cAAc,EAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAUzC,eAAO,MAAM,SAAS,cACT,aAAa,KACvB,cAAc,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE,KAAK,CAM3C,CAAC;AAcF,eAAO,MAAM,WAAW,gBACT,WAAW,aACb,aAAa,oDA6BzB,CAAC;AAiBF,eAAO,MAAM,cAAc,gBACZ,WAAW,aACb,aAAa,oDA8BzB,CAAC;AAgBF,eAAO,MAAM,cAAc,gBACZ,WAAW,aACb,aAAa,6EA6BzB,CAAC;AAgBF,eAAO,MAAM,aAAa,OACpB,MAAM,GAAG,SAAS,aACX,aAAa,KACvB,cAAc,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,KAAK,CAM1C,CAAC"}
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,cAAc,EAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAWzC,eAAO,MAAM,SAAS,cACT,aAAa,KACvB,cAAc,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE,KAAK,CAM3C,CAAC;AAcF,eAAO,MAAM,WAAW,gBACT,WAAW,aACb,aAAa,oDA6BzB,CAAC;AAiBF,eAAO,MAAM,cAAc,gBACZ,WAAW,aACb,aAAa,oDA8BzB,CAAC;AAgBF,eAAO,MAAM,cAAc,gBACZ,WAAW,aACb,aAAa,6EA6BzB,CAAC;AAgBF,eAAO,MAAM,aAAa,OACpB,MAAM,GAAG,SAAS,aACX,aAAa,KACvB,cAAc,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,KAAK,CAM1C,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { useMutation, useQuery, } from '@tanstack/react-query';
2
2
  import { enqueueSnackbar } from 'notistack';
3
- import { useLocale } from '@deix/rossini-core';
4
3
  import groupsTranslations from '../../lang/groups';
4
+ import useTranslate from './useTranslate';
5
5
  // Get list of groups
6
6
  const getGroups = async (apiClient) => {
7
7
  const { data } = await apiClient.get(`/groups`, {
@@ -22,16 +22,16 @@ const addGroup = async ({ newGroup, apiClient, }) => {
22
22
  return data;
23
23
  };
24
24
  export const useAddGroup = (queryClient, apiClient) => {
25
- const locale = useLocale();
25
+ const t = useTranslate();
26
26
  return useMutation({
27
27
  mutationFn: (newGroup) => addGroup({ newGroup, apiClient }),
28
28
  onError: (error) => {
29
- enqueueSnackbar(`${groupsTranslations.addGroupError[locale]}. ${error.message}`, {
29
+ enqueueSnackbar(`${t(groupsTranslations.addGroupError)}. ${error.message}`, {
30
30
  variant: 'error',
31
31
  });
32
32
  },
33
33
  onSuccess: () => {
34
- enqueueSnackbar(groupsTranslations.addGroupSuccess[locale], {
34
+ enqueueSnackbar(t(groupsTranslations.addGroupSuccess), {
35
35
  variant: 'success',
36
36
  });
37
37
  },
@@ -53,16 +53,16 @@ const updateGroup = async ({ updatedGroup, apiClient, }) => {
53
53
  return data;
54
54
  };
55
55
  export const useUpdateGroup = (queryClient, apiClient) => {
56
- const locale = useLocale();
56
+ const t = useTranslate();
57
57
  return useMutation({
58
58
  mutationFn: (updatedGroup) => updateGroup({ updatedGroup, apiClient }),
59
59
  onError: (error) => {
60
- enqueueSnackbar(`${groupsTranslations.updateGroupError[locale]}. ${error.message}`, {
60
+ enqueueSnackbar(`${t(groupsTranslations.updateGroupError)}. ${error.message}`, {
61
61
  variant: 'error',
62
62
  });
63
63
  },
64
64
  onSuccess: () => {
65
- enqueueSnackbar(groupsTranslations.updateGroupSuccess[locale], {
65
+ enqueueSnackbar(t(groupsTranslations.updateGroupSuccess), {
66
66
  variant: 'success',
67
67
  });
68
68
  },
@@ -86,16 +86,16 @@ const deleteGroup = async ({ id, apiClient, }) => {
86
86
  }
87
87
  };
88
88
  export const useDeleteGroup = (queryClient, apiClient) => {
89
- const locale = useLocale();
89
+ const t = useTranslate();
90
90
  return useMutation({
91
91
  mutationFn: (id) => deleteGroup({ id, apiClient }),
92
92
  onError: (error) => {
93
- enqueueSnackbar(`${groupsTranslations.deleteGroupError[locale]}. ${error.message}`, {
93
+ enqueueSnackbar(`${t(groupsTranslations.deleteGroupError)}. ${error.message}`, {
94
94
  variant: 'error',
95
95
  });
96
96
  },
97
97
  onSuccess: () => {
98
- enqueueSnackbar(groupsTranslations.deleteGroupSuccess[locale], {
98
+ enqueueSnackbar(t(groupsTranslations.deleteGroupSuccess), {
99
99
  variant: 'success',
100
100
  });
101
101
  },
@@ -0,0 +1,6 @@
1
+ import { Locale, StringTranslation } from '@deix/rossini-core';
2
+ export declare const defaultLocale: Locale;
3
+ export declare const translate: (text: string | StringTranslation | undefined, locale: Locale) => string;
4
+ declare const useTranslate: () => (text: string | StringTranslation | undefined) => string;
5
+ export default useTranslate;
6
+ //# sourceMappingURL=useTranslate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslate.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/useTranslate.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,MAAM,EACN,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,aAAa,EAAE,MAAa,CAAC;AAG1C,eAAO,MAAM,SAAS,SACd,MAAM,GAAG,iBAAiB,GAAG,SAAS,UACpC,MAAM,KACb,MAKF,CAAC;AAGF,QAAA,MAAM,YAAY,eAGP,MAAM,GAAG,iBAAiB,GAAG,SAAS,WAGhD,CAAC;eAEa,YAAY"}
@@ -0,0 +1,16 @@
1
+ import { useCallback } from 'react';
2
+ import { isStringTranslation, useLocale, } from '@deix/rossini-core';
3
+ export const defaultLocale = 'en';
4
+ // Resolve a label in the given locale, falling back to English
5
+ export const translate = (text, locale) => {
6
+ if (isStringTranslation(text)) {
7
+ return text[locale] ?? text[defaultLocale] ?? '';
8
+ }
9
+ return text ?? '';
10
+ };
11
+ // Translation function bound to the current locale (from rossini-core)
12
+ const useTranslate = () => {
13
+ const locale = useLocale();
14
+ return useCallback((text) => translate(text, locale), [locale]);
15
+ };
16
+ export default useTranslate;
@@ -1 +1 @@
1
- {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/users.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGjE,eAAO,MAAM,QAAQ,cACR,aAAa,aACb,MAAM,UACT,MAAM,WACN,MAAM,UACP,MAAM,oBAqBd,CAAC;AAEF,eAAO,MAAM,QAAQ,cACR,aAAa,UAChB,MAAM,WACN,MAAM,UACP,MAAM,KACZ,cAAc,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,KAAK,CAW1C,CAAC;AAQF,eAAO,MAAM,OAAO,OACd,MAAM,aACC,aAAa,KACvB,cAAc,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,CAMxC,CAAC;AAGF,eAAO,MAAM,OAAO,yDAKjB;IACD,OAAO,EAAE,IAAI,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,kBAWA,CAAC;AAEF,eAAO,MAAM,UAAU,gBACR,WAAW,aACb,aAAa;UAQd,cAAc;YACZ,MAAM,EAAE,GAAG,SAAS;WA6BjC,CAAC;AAiBF,eAAO,MAAM,aAAa,gBACX,WAAW,aACb,aAAa,kFA6BzB,CAAC;AAgBF,eAAO,MAAM,aAAa,gBACX,WAAW,aACb,aAAa,4GA6BzB,CAAC;AAcF,eAAO,MAAM,aAAa,OACpB,MAAM,GAAG,SAAS,aACX,aAAa,KACvB,cAAc,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE,KAAK,CAM3C,CAAC;AAmBF,eAAO,MAAM,iBAAiB,gBACf,WAAW,aACb,aAAa;;;;YAIsB,MAAM;aAAW,MAAM;WA8BtE,CAAC;AAmBF,eAAO,MAAM,sBAAsB,gBACpB,WAAW,aACb,aAAa;;;;YAIsB,MAAM;aAAW,MAAM;WA8BtE,CAAC;AAkBF,eAAO,MAAM,0BAA0B,gBACxB,WAAW,aACb,aAAa;;0BAoBzB,CAAC;AAEF,eAAO,MAAM,aAAa,cACb,aAAa,aACb,MAAM,UACT,MAAM,oBAmBf,CAAC;AAEF,eAAO,MAAM,aAAa,cACb,aAAa,UAChB,MAAM,KACb,cAAc,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,CAM1C,CAAC"}
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../../src/utils/hooks/users.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAIjE,eAAO,MAAM,QAAQ,cACR,aAAa,aACb,MAAM,UACT,MAAM,WACN,MAAM,UACP,MAAM,oBAqBd,CAAC;AAEF,eAAO,MAAM,QAAQ,cACR,aAAa,UAChB,MAAM,WACN,MAAM,UACP,MAAM,KACZ,cAAc,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,KAAK,CAW1C,CAAC;AAQF,eAAO,MAAM,OAAO,OACd,MAAM,aACC,aAAa,KACvB,cAAc,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,CAMxC,CAAC;AAGF,eAAO,MAAM,OAAO,yDAKjB;IACD,OAAO,EAAE,IAAI,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,kBAWA,CAAC;AAEF,eAAO,MAAM,UAAU,gBACR,WAAW,aACb,aAAa;UAQd,cAAc;YACZ,MAAM,EAAE,GAAG,SAAS;WA6BjC,CAAC;AAiBF,eAAO,MAAM,aAAa,gBACX,WAAW,aACb,aAAa,kFA6BzB,CAAC;AAgBF,eAAO,MAAM,aAAa,gBACX,WAAW,aACb,aAAa,4GA6BzB,CAAC;AAcF,eAAO,MAAM,aAAa,OACpB,MAAM,GAAG,SAAS,aACX,aAAa,KACvB,cAAc,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE,KAAK,CAM3C,CAAC;AAmBF,eAAO,MAAM,iBAAiB,gBACf,WAAW,aACb,aAAa;;;;YAIsB,MAAM;aAAW,MAAM;WA8BtE,CAAC;AAmBF,eAAO,MAAM,sBAAsB,gBACpB,WAAW,aACb,aAAa;;;;YAIsB,MAAM;aAAW,MAAM;WA8BtE,CAAC;AAkBF,eAAO,MAAM,0BAA0B,gBACxB,WAAW,aACb,aAAa;;0BAoBzB,CAAC;AAEF,eAAO,MAAM,aAAa,cACb,aAAa,aACb,MAAM,UACT,MAAM,oBAmBf,CAAC;AAEF,eAAO,MAAM,aAAa,cACb,aAAa,UAChB,MAAM,KACb,cAAc,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,CAM1C,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { useMutation, useQuery, } from '@tanstack/react-query';
2
2
  import { enqueueSnackbar } from 'notistack';
3
- import { useLocale } from '@deix/rossini-core';
4
3
  import usersTranslations from '../../lang/users';
4
+ import useTranslate from './useTranslate';
5
5
  // Get list of users
6
6
  export const getUsers = async (apiClient, username, group, offset = 0, limit = 1000) => {
7
7
  if (group) {
@@ -61,19 +61,19 @@ export const addUser = async ({ newUser, sendEmailOnCreation, apiClient, groups,
61
61
  return null;
62
62
  };
63
63
  export const useAddUser = (queryClient, apiClient) => {
64
- const locale = useLocale();
64
+ const t = useTranslate();
65
65
  return useMutation({
66
66
  mutationFn: ({ data, groups, }) => {
67
67
  const { sendEmailOnCreation, ...newUser } = data;
68
68
  return addUser({ newUser, sendEmailOnCreation, apiClient, groups });
69
69
  },
70
70
  onError: (error) => {
71
- enqueueSnackbar(`${usersTranslations.addUserError[locale]}. ${error.message}`, {
71
+ enqueueSnackbar(`${t(usersTranslations.addUserError)}. ${error.message}`, {
72
72
  variant: 'error',
73
73
  });
74
74
  },
75
75
  onSuccess: () => {
76
- enqueueSnackbar(usersTranslations.addUserSuccess[locale], {
76
+ enqueueSnackbar(t(usersTranslations.addUserSuccess), {
77
77
  variant: 'success',
78
78
  });
79
79
  },
@@ -95,16 +95,16 @@ const updateUser = async ({ updatedUser, apiClient, }) => {
95
95
  return data;
96
96
  };
97
97
  export const useUpdateUser = (queryClient, apiClient) => {
98
- const locale = useLocale();
98
+ const t = useTranslate();
99
99
  return useMutation({
100
100
  mutationFn: (updatedUser) => updateUser({ updatedUser, apiClient }),
101
101
  onError: (error) => {
102
- enqueueSnackbar(`${usersTranslations.updateUserError[locale]}. ${error.message}`, {
102
+ enqueueSnackbar(`${t(usersTranslations.updateUserError)}. ${error.message}`, {
103
103
  variant: 'error',
104
104
  });
105
105
  },
106
106
  onSuccess: () => {
107
- enqueueSnackbar(usersTranslations.updateUserSuccess[locale], {
107
+ enqueueSnackbar(t(usersTranslations.updateUserSuccess), {
108
108
  variant: 'success',
109
109
  });
110
110
  },
@@ -128,16 +128,16 @@ const deleteUser = async ({ id, apiClient, }) => {
128
128
  }
129
129
  };
130
130
  export const useDeleteUser = (queryClient, apiClient) => {
131
- const locale = useLocale();
131
+ const t = useTranslate();
132
132
  return useMutation({
133
133
  mutationFn: (id) => deleteUser({ id, apiClient }),
134
134
  onError: (error) => {
135
- enqueueSnackbar(`${usersTranslations.deleteUserError[locale]} ${error.message}`, {
135
+ enqueueSnackbar(`${t(usersTranslations.deleteUserError)} ${error.message}`, {
136
136
  variant: 'error',
137
137
  });
138
138
  },
139
139
  onSuccess: () => {
140
- enqueueSnackbar(usersTranslations.deleteUserSuccess[locale], {
140
+ enqueueSnackbar(t(usersTranslations.deleteUserSuccess), {
141
141
  variant: 'success',
142
142
  });
143
143
  },
@@ -178,16 +178,16 @@ const addUserToGroup = async ({ userId, groupId, apiClient, }) => {
178
178
  };
179
179
  };
180
180
  export const useAddUserToGroup = (queryClient, apiClient) => {
181
- const locale = useLocale();
181
+ const t = useTranslate();
182
182
  return useMutation({
183
183
  mutationFn: ({ userId, groupId }) => addUserToGroup({ userId, groupId, apiClient }),
184
184
  onError: (error) => {
185
- enqueueSnackbar(`${usersTranslations.addUserToGroupError[locale]}. ${error.message}`, {
185
+ enqueueSnackbar(`${t(usersTranslations.addUserToGroupError)}. ${error.message}`, {
186
186
  variant: 'error',
187
187
  });
188
188
  },
189
189
  onSuccess: () => {
190
- enqueueSnackbar(usersTranslations.addUserToGroupSuccess[locale], {
190
+ enqueueSnackbar(t(usersTranslations.addUserToGroupSuccess), {
191
191
  variant: 'success',
192
192
  });
193
193
  },
@@ -216,16 +216,16 @@ const removeUserFromGroup = async ({ userId, groupId, apiClient, }) => {
216
216
  };
217
217
  };
218
218
  export const useRemoveUserFromGroup = (queryClient, apiClient) => {
219
- const locale = useLocale();
219
+ const t = useTranslate();
220
220
  return useMutation({
221
221
  mutationFn: ({ userId, groupId }) => removeUserFromGroup({ userId, groupId, apiClient }),
222
222
  onError: (error) => {
223
- enqueueSnackbar(`${usersTranslations.removeUserFromGroupError[locale]}. ${error.message}`, {
223
+ enqueueSnackbar(`${t(usersTranslations.removeUserFromGroupError)}. ${error.message}`, {
224
224
  variant: 'error',
225
225
  });
226
226
  },
227
227
  onSuccess: () => {
228
- enqueueSnackbar(usersTranslations.removeUserFromGroupSuccess[locale], {
228
+ enqueueSnackbar(t(usersTranslations.removeUserFromGroupSuccess), {
229
229
  variant: 'success',
230
230
  });
231
231
  },
@@ -255,16 +255,16 @@ const sendUpdatePasswordEmail = async ({ userId, apiClient, }) => {
255
255
  };
256
256
  };
257
257
  export const useSendUpdatePasswordEmail = (queryClient, apiClient) => {
258
- const locale = useLocale();
258
+ const t = useTranslate();
259
259
  return useMutation({
260
260
  mutationFn: (userId) => sendUpdatePasswordEmail({ userId, apiClient }),
261
261
  onError: (error) => {
262
- enqueueSnackbar(`${usersTranslations.sendEmailError[locale]}. ${error.message}`, {
262
+ enqueueSnackbar(`${t(usersTranslations.sendEmailError)}. ${error.message}`, {
263
263
  variant: 'error',
264
264
  });
265
265
  },
266
266
  onSuccess: () => {
267
- enqueueSnackbar(usersTranslations.sendEmailSuccess[locale], {
267
+ enqueueSnackbar(t(usersTranslations.sendEmailSuccess), {
268
268
  variant: 'success',
269
269
  });
270
270
  },