fix: eslint warnings (#252)
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
'use client';
|
||||
import React from 'react';
|
||||
import { useState, useEffect, useContext } from 'react';
|
||||
import { Button, Input, Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from '@heroui/react';
|
||||
import CandidatesTable from './CandidatesTable';
|
||||
import { TokenContext } from '@/utils/TokenProvider';
|
||||
import { UserType } from '@/types/user';
|
||||
import { searchUsers } from '@/utils/usersControl';
|
||||
import CandidatesTable from './CandidatesTable';
|
||||
import { MembersMessages } from '@/types/member';
|
||||
import { logError } from '@/utils/errorHandler';
|
||||
|
||||
type Props = {
|
||||
isOpen: boolean;
|
||||
@@ -34,13 +34,13 @@ export default function AddMemberDialog({ isOpen, projectId, onCancel, onAddMemb
|
||||
try {
|
||||
const data = await searchUsers(context.token.access_token, Number(projectId), searchText);
|
||||
setCandidates(data);
|
||||
} catch (error: any) {
|
||||
console.error('Error in effect:', error.message);
|
||||
} catch (error: unknown) {
|
||||
logError('Error fetching data:', error);
|
||||
}
|
||||
}
|
||||
|
||||
fetchDataEffect();
|
||||
}, [searchText]);
|
||||
}, [context, projectId, searchText]);
|
||||
|
||||
const handleExit = () => {
|
||||
setSearchText('');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useMemo, useCallback } from 'react';
|
||||
import { Button, Table, TableHeader, TableColumn, TableBody, TableRow, TableCell } from '@heroui/react';
|
||||
import { UserType } from '@/types/user';
|
||||
import Avatar from 'boring-avatars';
|
||||
import { UserType } from '@/types/user';
|
||||
import { MembersMessages } from '@/types/member';
|
||||
|
||||
type Props = {
|
||||
@@ -18,33 +18,36 @@ export default function MembersTable({ candidates, onAddPress, messages }: Props
|
||||
{ name: messages.add, uid: 'add', sortable: false },
|
||||
];
|
||||
|
||||
const renderCell = useCallback((candidate: UserType, columnKey: string) => {
|
||||
const cellValue = candidate[columnKey as keyof UserType];
|
||||
const renderCell = useCallback(
|
||||
(candidate: UserType, columnKey: string) => {
|
||||
const cellValue = candidate[columnKey as keyof UserType];
|
||||
|
||||
switch (columnKey) {
|
||||
case 'avatar':
|
||||
return (
|
||||
<Avatar
|
||||
size={16}
|
||||
name={candidate.username}
|
||||
variant="beam"
|
||||
colors={['#0A0310', '#49007E', '#FF005B', '#FF7D10', '#FFB238']}
|
||||
/>
|
||||
);
|
||||
case 'email':
|
||||
return cellValue;
|
||||
case 'username':
|
||||
return cellValue;
|
||||
case 'add':
|
||||
return (
|
||||
<Button color="primary" variant="faded" size="sm" onPress={() => onAddPress(candidate)}>
|
||||
{messages.add}
|
||||
</Button>
|
||||
);
|
||||
default:
|
||||
return cellValue;
|
||||
}
|
||||
}, []);
|
||||
switch (columnKey) {
|
||||
case 'avatar':
|
||||
return (
|
||||
<Avatar
|
||||
size={16}
|
||||
name={candidate.username}
|
||||
variant="beam"
|
||||
colors={['#0A0310', '#49007E', '#FF005B', '#FF7D10', '#FFB238']}
|
||||
/>
|
||||
);
|
||||
case 'email':
|
||||
return cellValue;
|
||||
case 'username':
|
||||
return cellValue;
|
||||
case 'add':
|
||||
return (
|
||||
<Button color="primary" variant="faded" size="sm" onPress={() => onAddPress(candidate)}>
|
||||
{messages.add}
|
||||
</Button>
|
||||
);
|
||||
default:
|
||||
return cellValue;
|
||||
}
|
||||
},
|
||||
[messages.add, onAddPress]
|
||||
);
|
||||
|
||||
const classNames = useMemo(
|
||||
() => ({
|
||||
|
||||
@@ -1,23 +1,22 @@
|
||||
'use client';
|
||||
import React from 'react';
|
||||
import { useState, useEffect, useContext } from 'react';
|
||||
import { Button } from '@heroui/react';
|
||||
import { Plus } from 'lucide-react';
|
||||
import { MemberType, UserType } from '@/types/user';
|
||||
import { MembersMessages } from '@/types/member';
|
||||
import { TokenContext } from '@/utils/TokenProvider';
|
||||
import MembersTable from './MembersTable';
|
||||
import AddMemberDialog from './AddMemberDialog';
|
||||
import { fetchProjectMembers, addMember, deleteMember, updateMember } from './membersControl';
|
||||
import { MemberType, UserType } from '@/types/user';
|
||||
import { MembersMessages } from '@/types/member';
|
||||
import { TokenContext } from '@/utils/TokenProvider';
|
||||
import DeleteConfirmDialog from '@/components/DeleteConfirmDialog';
|
||||
import { logError } from '@/utils/errorHandler';
|
||||
|
||||
type Props = {
|
||||
projectId: string;
|
||||
messages: MembersMessages;
|
||||
locale: string;
|
||||
};
|
||||
|
||||
export default function MembersPage({ projectId, messages, locale }: Props) {
|
||||
export default function MembersPage({ projectId, messages }: Props) {
|
||||
const context = useContext(TokenContext);
|
||||
const [members, setMembers] = useState<MemberType[]>([]);
|
||||
const [isDialogOpen, setIsDialogOpen] = useState(false);
|
||||
@@ -31,13 +30,13 @@ export default function MembersPage({ projectId, messages, locale }: Props) {
|
||||
try {
|
||||
const data = await fetchProjectMembers(context.token.access_token, projectId);
|
||||
setMembers(data);
|
||||
} catch (error: any) {
|
||||
console.error('Error in effect:', error.message);
|
||||
} catch (error: unknown) {
|
||||
logError('Error fetching members:', error);
|
||||
}
|
||||
}
|
||||
|
||||
fetchDataEffect();
|
||||
}, [context]);
|
||||
}, [context, projectId]);
|
||||
|
||||
const handleAddMember = async (userAdded: UserType) => {
|
||||
if (userAdded.id) {
|
||||
|
||||
@@ -14,9 +14,9 @@ import {
|
||||
DropdownItem,
|
||||
} from '@heroui/react';
|
||||
import { ChevronDown } from 'lucide-react';
|
||||
import Avatar from 'boring-avatars';
|
||||
import { MemberType, UserType } from '@/types/user';
|
||||
import { memberRoles } from '@/config/selection';
|
||||
import Avatar from 'boring-avatars';
|
||||
import { MembersMessages } from '@/types/member';
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { logError } from '@/utils/errorHandler';
|
||||
import Config from '@/config/config';
|
||||
const apiServer = Config.apiServer;
|
||||
|
||||
@@ -19,8 +20,8 @@ async function fetchProjectMembers(jwt: string, projectId: string) {
|
||||
}
|
||||
const data = await response.json();
|
||||
return data;
|
||||
} catch (error: any) {
|
||||
console.error('Error fetching data:', error.message);
|
||||
} catch (error: unknown) {
|
||||
logError('Error fetching data:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,8 +43,8 @@ async function addMember(jwt: string, userId: number, projectId: number) {
|
||||
}
|
||||
const data = await response.json();
|
||||
return data;
|
||||
} catch (error: any) {
|
||||
console.error('Error fetching data:', error.message);
|
||||
} catch (error: unknown) {
|
||||
logError('Error fetching data:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,8 +64,8 @@ async function deleteMember(jwt: string, userId: number, projectId: number) {
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! Status: ${response.status}`);
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.error('Error fetching data:', error.message);
|
||||
} catch (error: unknown) {
|
||||
logError('Error fetching data:', error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,8 +87,8 @@ async function updateMember(jwt: string, userId: number, projectId: number, role
|
||||
}
|
||||
const data = await response.json();
|
||||
return data;
|
||||
} catch (error: any) {
|
||||
console.error('Error fetching data:', error.message);
|
||||
} catch (error: unknown) {
|
||||
logError('Error fetching data:', error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { LocaleCodeType } from '@/types/locale';
|
||||
import MembersPage from './MembersPage';
|
||||
import { getTranslations } from 'next-intl/server';
|
||||
import { useTranslations } from 'next-intl';
|
||||
import MembersPage from './MembersPage';
|
||||
import { LocaleCodeType } from '@/types/locale';
|
||||
|
||||
export async function generateMetadata({ params: { locale } }: { params: { locale: LocaleCodeType } }) {
|
||||
const t = await getTranslations({ locale, namespace: 'Members' });
|
||||
@@ -34,7 +34,7 @@ export default function Page({ params }: { params: { projectId: string; locale:
|
||||
|
||||
return (
|
||||
<>
|
||||
<MembersPage projectId={params.projectId} messages={messages} locale={params.locale} />
|
||||
<MembersPage projectId={params.projectId} messages={messages} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user