mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-05 23:18:53 -05:00
fixes
This commit is contained in:
parent
a320375e16
commit
3e79f5a558
@ -29,7 +29,7 @@ export const BulkActionPermissionModal: React.FC<BulkActionPermissionModalProps>
|
|||||||
}) => {
|
}) => {
|
||||||
const [existingUsers, setExistingUsers] = useState<string[]>([]);
|
const [existingUsers, setExistingUsers] = useState<string[]>([]);
|
||||||
const [existingSearchTerm, setExistingSearchTerm] = useState('');
|
const [existingSearchTerm, setExistingSearchTerm] = useState('');
|
||||||
const [usersToAdd, setUsersToAdd] = useState<string[]>([]);
|
const [usersToAdd, setUsersToAdd] = useState<Array<{ username: string; display: string }>>([]);
|
||||||
const [usersToRemove, setUsersToRemove] = useState<string[]>([]);
|
const [usersToRemove, setUsersToRemove] = useState<string[]>([]);
|
||||||
const [searchResults, setSearchResults] = useState<User[]>([]);
|
const [searchResults, setSearchResults] = useState<User[]>([]);
|
||||||
const [addSearchTerm, setAddSearchTerm] = useState('');
|
const [addSearchTerm, setAddSearchTerm] = useState('');
|
||||||
@ -127,15 +127,15 @@ export const BulkActionPermissionModal: React.FC<BulkActionPermissionModalProps>
|
|||||||
|
|
||||||
const addUserToList = (username: string, name: string, email?: string) => {
|
const addUserToList = (username: string, name: string, email?: string) => {
|
||||||
const userDisplay = `${name} - ${email || username}`;
|
const userDisplay = `${name} - ${email || username}`;
|
||||||
if (!usersToAdd.includes(userDisplay) && !existingUsers.includes(userDisplay)) {
|
if (!usersToAdd.some(u => u.username === username) && !existingUsers.includes(userDisplay)) {
|
||||||
setUsersToAdd([...usersToAdd, userDisplay]);
|
setUsersToAdd([...usersToAdd, { username, display: userDisplay }]);
|
||||||
setAddSearchTerm('');
|
setAddSearchTerm('');
|
||||||
setSearchResults([]);
|
setSearchResults([]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const removeUserFromAddList = (user: string) => {
|
const removeUserFromAddList = (username: string) => {
|
||||||
setUsersToAdd(usersToAdd.filter((u) => u !== user));
|
setUsersToAdd(usersToAdd.filter((u) => u.username !== username));
|
||||||
};
|
};
|
||||||
|
|
||||||
const markUserForRemoval = (user: string) => {
|
const markUserForRemoval = (user: string) => {
|
||||||
@ -149,7 +149,8 @@ export const BulkActionPermissionModal: React.FC<BulkActionPermissionModalProps>
|
|||||||
};
|
};
|
||||||
|
|
||||||
const extractUsername = (userDisplay: string): string => {
|
const extractUsername = (userDisplay: string): string => {
|
||||||
// Extract username from "Name - username" format
|
// For existing users from API, extract username from "Name - username/email" format
|
||||||
|
// Note: This assumes the username is after the last ' - ' separator
|
||||||
const parts = userDisplay.split(' - ');
|
const parts = userDisplay.split(' - ');
|
||||||
return parts.length > 1 ? parts[parts.length - 1] : userDisplay;
|
return parts.length > 1 ? parts[parts.length - 1] : userDisplay;
|
||||||
};
|
};
|
||||||
@ -160,7 +161,7 @@ export const BulkActionPermissionModal: React.FC<BulkActionPermissionModalProps>
|
|||||||
try {
|
try {
|
||||||
// First, add users if any
|
// First, add users if any
|
||||||
if (usersToAdd.length > 0) {
|
if (usersToAdd.length > 0) {
|
||||||
const usernamesToAdd = usersToAdd.map(extractUsername);
|
const usernamesToAdd = usersToAdd.map(u => u.username);
|
||||||
const addResponse = await fetch('/api/v1/media/user/bulk_actions', {
|
const addResponse = await fetch('/api/v1/media/user/bulk_actions', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
@ -264,9 +265,9 @@ export const BulkActionPermissionModal: React.FC<BulkActionPermissionModalProps>
|
|||||||
<div className="empty-message">{translateString('No users to add')}</div>
|
<div className="empty-message">{translateString('No users to add')}</div>
|
||||||
) : (
|
) : (
|
||||||
usersToAdd.map((user) => (
|
usersToAdd.map((user) => (
|
||||||
<div key={user} className="user-item">
|
<div key={user.username} className="user-item">
|
||||||
<span>{user}</span>
|
<span>{user.display}</span>
|
||||||
<button className="remove-btn" onClick={() => removeUserFromAddList(user)}>
|
<button className="remove-btn" onClick={() => removeUserFromAddList(user.username)}>
|
||||||
×
|
×
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user