Add eslint rule and fix as many issues as possible

This commit is contained in:
Khoa Le
2023-06-19 23:42:04 -04:00
parent e9eacc445d
commit 9d33e4756b
689 changed files with 9446 additions and 21821 deletions
@@ -1,14 +1,14 @@
import { useState } from 'react';
import { Controller, useForm } from 'react-hook-form';
import { useState } from "react";
import { Controller, useForm } from "react-hook-form";
import {
faContactBook,
faMagnifyingGlass,
faPlus,
faTrash
} from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { yupResolver } from '@hookform/resolvers/yup';
import * as yup from 'yup';
} from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { yupResolver } from "@hookform/resolvers/yup";
import * as yup from "yup";
import {
Button,
@@ -28,10 +28,10 @@ import {
Th,
THead,
Tr
} from '@app/components/v2';
import { usePopUp } from '@app/hooks';
import { useFetchServerStatus } from '@app/hooks/api/serverDetails';
import { IncidentContact } from '@app/hooks/api/types';
} from "@app/components/v2";
import { usePopUp } from "@app/hooks";
import { useFetchServerStatus } from "@app/hooks/api/serverDetails";
import { IncidentContact } from "@app/hooks/api/types";
type Props = {
isLoading?: boolean;
@@ -41,7 +41,7 @@ type Props = {
};
const addContactFormSchema = yup.object({
email: yup.string().email().required().label('Email').trim()
email: yup.string().email().required().label("Email").trim()
});
type TAddContactForm = yup.InferType<typeof addContactFormSchema>;
@@ -52,12 +52,12 @@ export const OrgIncidentContactsTable = ({
onRemoveContact,
isLoading
}: Props) => {
const [searchContact, setSearchContact] = useState('');
const [searchContact, setSearchContact] = useState("");
const {data: serverDetails } = useFetchServerStatus()
const { handlePopUpToggle, popUp, handlePopUpOpen, handlePopUpClose } = usePopUp([
'addContact',
'removeContact',
'setUpEmail'
"addContact",
"removeContact",
"setUpEmail"
] as const);
const {
@@ -69,14 +69,14 @@ export const OrgIncidentContactsTable = ({
const onAddIncidentContact = ({ email }: TAddContactForm) => {
onAddContact(email);
handlePopUpClose('addContact');
handlePopUpClose("addContact");
reset();
};
const onRemoveIncidentContact = async () => {
const incidentContactEmail = (popUp?.removeContact?.data as { email: string })?.email;
await onRemoveContact(incidentContactEmail);
handlePopUpClose('removeContact');
handlePopUpClose("removeContact");
};
const filteredContacts = contacts.filter(({ email }) =>
@@ -99,9 +99,9 @@ export const OrgIncidentContactsTable = ({
leftIcon={<FontAwesomeIcon icon={faPlus} />}
onClick={() => {
if (serverDetails?.emailConfigured){
handlePopUpOpen('addContact');
handlePopUpOpen("addContact");
} else {
handlePopUpOpen('setUpEmail');
handlePopUpOpen("setUpEmail");
}
}}
>
@@ -127,7 +127,7 @@ export const OrgIncidentContactsTable = ({
<IconButton
ariaLabel="delete"
colorSchema="danger"
onClick={() => handlePopUpOpen('removeContact', { email })}
onClick={() => handlePopUpOpen("removeContact", { email })}
>
<FontAwesomeIcon icon={faTrash} />
</IconButton>
@@ -144,7 +144,7 @@ export const OrgIncidentContactsTable = ({
<Modal
isOpen={popUp?.addContact?.isOpen}
onOpenChange={(isOpen) => {
handlePopUpToggle('addContact', isOpen);
handlePopUpToggle("addContact", isOpen);
reset();
}}
>
@@ -176,7 +176,7 @@ export const OrgIncidentContactsTable = ({
<Button
colorSchema="secondary"
variant="plain"
onClick={() => handlePopUpClose('addContact')}
onClick={() => handlePopUpClose("addContact")}
>
Cancel
</Button>
@@ -188,12 +188,12 @@ export const OrgIncidentContactsTable = ({
isOpen={popUp.removeContact.isOpen}
deleteKey="remove"
title="Do you want to remove this email from incident contact?"
onChange={(isOpen) => handlePopUpToggle('removeContact', isOpen)}
onChange={(isOpen) => handlePopUpToggle("removeContact", isOpen)}
onDeleteApproved={onRemoveIncidentContact}
/>
<EmailServiceSetupModal
isOpen={popUp.setUpEmail?.isOpen}
onOpenChange={(isOpen) => handlePopUpToggle('setUpEmail', isOpen)}
onOpenChange={(isOpen) => handlePopUpToggle("setUpEmail", isOpen)}
/>
</div>
);
@@ -1 +1 @@
export { OrgIncidentContactsTable } from './OrgIncidentContactsTable';
export { OrgIncidentContactsTable } from "./OrgIncidentContactsTable";
@@ -1,10 +1,10 @@
import { Dispatch, SetStateAction, useEffect, useMemo, useState } from 'react';
import { Controller, useForm } from 'react-hook-form';
import { useRouter } from 'next/router';
import { faCheck, faCopy, faMagnifyingGlass, faPlus, faTrash, faUsers } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { yupResolver } from '@hookform/resolvers/yup';
import * as yup from 'yup';
import { Dispatch, SetStateAction, useEffect, useMemo, useState } from "react";
import { Controller, useForm } from "react-hook-form";
import { useRouter } from "next/router";
import { faCheck, faCopy, faMagnifyingGlass, faPlus, faTrash, faUsers } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { yupResolver } from "@hookform/resolvers/yup";
import * as yup from "yup";
import {
Button,
@@ -26,10 +26,10 @@ import {
Th,
THead,
Tr,
UpgradePlanModal} from '@app/components/v2';
import { usePopUp, useToggle } from '@app/hooks';
import { useFetchServerStatus } from '@app/hooks/api/serverDetails';
import { OrgUser, Workspace } from '@app/hooks/api/types';
UpgradePlanModal} from "@app/components/v2";
import { usePopUp, useToggle } from "@app/hooks";
import { useFetchServerStatus } from "@app/hooks/api/serverDetails";
import { OrgUser, Workspace } from "@app/hooks/api/types";
type Props = {
members?: OrgUser[];
@@ -48,7 +48,7 @@ type Props = {
};
const addMemberFormSchema = yup.object({
email: yup.string().email().required().label('Email').trim()
email: yup.string().email().required().label("Email").trim()
});
type TAddMemberForm = yup.InferType<typeof addMemberFormSchema>;
@@ -68,14 +68,14 @@ export const OrgMembersTable = ({
setCompleteInviteLink
}: Props) => {
const router = useRouter();
const [searchMemberFilter, setSearchMemberFilter] = useState('');
const [searchMemberFilter, setSearchMemberFilter] = useState("");
const {data: serverDetails } = useFetchServerStatus()
const [isInviteLinkCopied, setInviteLinkCopied] = useToggle(false);
const { handlePopUpToggle, popUp, handlePopUpOpen, handlePopUpClose } = usePopUp([
'addMember',
'removeMember',
'upgradePlan',
'setUpEmail'
"addMember",
"removeMember",
"upgradePlan",
"setUpEmail"
] as const);
const {
@@ -88,7 +88,7 @@ export const OrgMembersTable = ({
const onAddMember = async ({ email }: TAddMemberForm) => {
await onInviteMember(email);
if (serverDetails?.emailConfigured){
handlePopUpClose('addMember');
handlePopUpClose("addMember");
}
reset();
@@ -97,11 +97,11 @@ export const OrgMembersTable = ({
const onRemoveOrgMemberApproved = async () => {
const orgMembershipId = (popUp?.removeMember?.data as { id: string })?.id;
await onRemoveMember(orgMembershipId);
handlePopUpClose('removeMember');
handlePopUpClose("removeMember");
};
const isIamOwner = useMemo(
() => members.find(({ user }) => userId === user?._id)?.role === 'owner',
() => members.find(({ user }) => userId === user?._id)?.role === "owner",
[userId, members]
);
@@ -145,9 +145,9 @@ export const OrgMembersTable = ({
leftIcon={<FontAwesomeIcon icon={faPlus} />}
onClick={() => {
if (isMoreUserNotAllowed) {
handlePopUpOpen('upgradePlan');
handlePopUpOpen("upgradePlan");
} else {
handlePopUpOpen('addMember');
handlePopUpOpen("addMember");
}
}}
>
@@ -170,7 +170,7 @@ export const OrgMembersTable = ({
{isLoading && <TableSkeleton columns={5} key="org-members" />}
{!isLoading &&
filterdUser.map(({ user, inviteEmail, role, _id: orgMembershipId, status }) => {
const name = user ? `${user.firstName} ${user.lastName}` : '-';
const name = user ? `${user.firstName} ${user.lastName}` : "-";
const email = user?.email || inviteEmail;
const userWs = workspaceMemberships?.[user?._id];
@@ -179,7 +179,7 @@ export const OrgMembersTable = ({
<Td>{name}</Td>
<Td>{email}</Td>
<Td>
{status === 'accepted' && (
{status === "accepted" && (
<Select
defaultValue={role}
isDisabled={userId === user?._id}
@@ -189,19 +189,19 @@ export const OrgMembersTable = ({
onRoleChange(orgMembershipId, selectedRole)
}
>
{(isIamOwner || role === 'owner') && (
{(isIamOwner || role === "owner") && (
<SelectItem value="owner">owner</SelectItem>
)}
<SelectItem value="admin">admin</SelectItem>
<SelectItem value="member">member</SelectItem>
</Select>
)}
{((status === 'invited' || status === 'verified') && serverDetails?.emailConfigured) && (
{((status === "invited" || status === "verified") && serverDetails?.emailConfigured) && (
<Button className='w-40' colorSchema="primary" variant="outline_bg" onClick={() => onInviteMember(email)}>
Resend Invite
</Button>
)}
{status === 'completed' && (
{status === "completed" && (
<Button
colorSchema="secondary"
onClick={() => onGrantAccess(user?._id, user?.publicKey)}
@@ -219,10 +219,10 @@ export const OrgMembersTable = ({
))
) : (
<div className='flex flex-row'>
{((status === 'invited' || status === 'verified') && serverDetails?.emailConfigured)
{((status === "invited" || status === "verified") && serverDetails?.emailConfigured)
? <Tag colorSchema="red">This user hasn&apos;t accepted the invite yet</Tag>
: <Tag colorSchema="red">This user isn&apos;t part of any projects yet</Tag>}
{router.query.id !== 'undefined' && !((status === 'invited' || status === 'verified') && serverDetails?.emailConfigured) && <button
{router.query.id !== "undefined" && !((status === "invited" || status === "verified") && serverDetails?.emailConfigured) && <button
type="button"
onClick={() => router.push(`/users/${router.query.id}`)}
className='text-sm bg-mineshaft w-max px-1.5 py-0.5 hover:bg-primary duration-200 hover:text-black cursor-pointer rounded-sm'
@@ -239,7 +239,7 @@ export const OrgMembersTable = ({
ariaLabel="delete"
colorSchema="danger"
isDisabled={userId === user?._id}
onClick={() => handlePopUpOpen('removeMember', { id: orgMembershipId })}
onClick={() => handlePopUpOpen("removeMember", { id: orgMembershipId })}
>
<FontAwesomeIcon icon={faTrash} />
</IconButton>
@@ -258,7 +258,7 @@ export const OrgMembersTable = ({
<Modal
isOpen={popUp?.addMember?.isOpen}
onOpenChange={(isOpen) => {
handlePopUpToggle('addMember', isOpen);
handlePopUpToggle("addMember", isOpen);
setCompleteInviteLink(undefined)
}}
>
@@ -299,7 +299,7 @@ export const OrgMembersTable = ({
<Button
colorSchema="secondary"
variant="plain"
onClick={() => handlePopUpClose('addMember')}
onClick={() => handlePopUpClose("addMember")}
>
Cancel
</Button>
@@ -326,17 +326,17 @@ export const OrgMembersTable = ({
isOpen={popUp.removeMember.isOpen}
deleteKey="remove"
title="Do you want to remove this user from the org?"
onChange={(isOpen) => handlePopUpToggle('removeMember', isOpen)}
onChange={(isOpen) => handlePopUpToggle("removeMember", isOpen)}
onDeleteApproved={onRemoveOrgMemberApproved}
/>
<UpgradePlanModal
isOpen={popUp.upgradePlan.isOpen}
onOpenChange={(isOpen) => handlePopUpToggle('upgradePlan', isOpen)}
onOpenChange={(isOpen) => handlePopUpToggle("upgradePlan", isOpen)}
text="You can add custom environments if you switch to Infisical's Team plan."
/>
<EmailServiceSetupModal
isOpen={popUp.setUpEmail?.isOpen}
onOpenChange={(isOpen) => handlePopUpToggle('setUpEmail', isOpen)}
onOpenChange={(isOpen) => handlePopUpToggle("setUpEmail", isOpen)}
/>
</div>
);
@@ -1 +1 @@
export { OrgMembersTable } from './OrgMembersTable';
export { OrgMembersTable } from "./OrgMembersTable";
@@ -1,12 +1,12 @@
import { useEffect } from 'react';
import { Controller, useForm } from 'react-hook-form';
import { useTranslation } from 'react-i18next';
import { faCheck } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { yupResolver } from '@hookform/resolvers/yup';
import * as yup from 'yup';
import { useEffect } from "react";
import { Controller, useForm } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { faCheck } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { yupResolver } from "@hookform/resolvers/yup";
import * as yup from "yup";
import { Button, FormControl, Input } from '@app/components/v2';
import { Button, FormControl, Input } from "@app/components/v2";
type Props = {
orgName?: string;
@@ -14,7 +14,7 @@ type Props = {
};
const formSchema = yup.object({
name: yup.string().required().label('Project Name')
name: yup.string().required().label("Project Name")
});
type FormData = yup.InferType<typeof formSchema>;
@@ -39,7 +39,7 @@ export const OrgNameChangeSection = ({ onOrgNameChange, orgName }: Props): JSX.E
return (
<form onSubmit={handleSubmit(onFormSubmit)}>
<div className="mb-6 flex w-full flex-col items-start rounded-md bg-white/5 px-6 pb-6 pt-3">
<p className="mb-4 mt-2 text-xl font-semibold">{t('common.display-name')}</p>
<p className="mb-4 mt-2 text-xl font-semibold">{t("common.display-name")}</p>
<div className="mb-2 w-full max-w-lg">
<Controller
defaultValue=""
@@ -61,7 +61,7 @@ export const OrgNameChangeSection = ({ onOrgNameChange, orgName }: Props): JSX.E
isDisabled={!isDirty || isSubmitting}
leftIcon={<FontAwesomeIcon icon={faCheck} />}
>
{t('common.save-changes')}
{t("common.save-changes")}
</Button>
</div>
</form>
@@ -1 +1 @@
export { OrgNameChangeSection } from './OrgNameChangeSection';
export { OrgNameChangeSection } from "./OrgNameChangeSection";
@@ -1,6 +1,6 @@
import { useEffect, useMemo,useState } from 'react';
import { Controller,useForm } from 'react-hook-form';
import { useRouter } from 'next/router';
import { useEffect, useMemo,useState } from "react";
import { Controller,useForm } from "react-hook-form";
import { useRouter } from "next/router";
import {
faCheck,
faCopy,
@@ -8,12 +8,12 @@ import {
faPencil,
faPlus,
faServer,
faTrash} from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { yupResolver } from '@hookform/resolvers/yup';
import * as yup from 'yup';
faTrash} from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { yupResolver } from "@hookform/resolvers/yup";
import * as yup from "yup";
import { generateKeyPair } from '@app/components/utilities/cryptography/crypto';
import { generateKeyPair } from "@app/components/utilities/cryptography/crypto";
import {
Button,
DeleteActionModal,
@@ -33,26 +33,26 @@ import {
Th,
THead,
Tr
} from '@app/components/v2';
import { useOrganization, useWorkspace } from '@app/context';
import { usePopUp, useToggle } from '@app/hooks';
} from "@app/components/v2";
import { useOrganization, useWorkspace } from "@app/context";
import { usePopUp, useToggle } from "@app/hooks";
import {
useCreateServiceAccount,
useDeleteServiceAccount,
useGetServiceAccounts} from '@app/hooks/api';
useGetServiceAccounts} from "@app/hooks/api";
const serviceAccountExpiration = [
{ label: '1 Day', value: 86400 },
{ label: '7 Days', value: 604800 },
{ label: '1 Month', value: 2592000 },
{ label: '6 months', value: 15552000 },
{ label: '12 months', value: 31104000 },
{ label: 'Never', value: -1 }
{ label: "1 Day", value: 86400 },
{ label: "7 Days", value: 604800 },
{ label: "1 Month", value: 2592000 },
{ label: "6 months", value: 15552000 },
{ label: "12 months", value: 31104000 },
{ label: "Never", value: -1 }
];
const addServiceAccountFormSchema = yup.object({
name: yup.string().required().label('Name').trim(),
expiresIn: yup.string().required().label('Service Account Expiration')
name: yup.string().required().label("Name").trim(),
expiresIn: yup.string().required().label("Service Account Expiration")
});
type TAddServiceAccountForm = yup.InferType<typeof addServiceAccountFormSchema>;
@@ -62,18 +62,18 @@ export const OrgServiceAccountsTable = () => {
const { currentOrg } = useOrganization();
const { currentWorkspace } = useWorkspace();
const orgId = currentOrg?._id || '';
const orgId = currentOrg?._id || "";
const [step, setStep] = useState(0);
const [isAccessKeyCopied, setIsAccessKeyCopied] = useToggle(false);
const [isPublicKeyCopied, setIsPublicKeyCopied] = useToggle(false);
const [isPrivateKeyCopied, setIsPrivateKeyCopied] = useToggle(false);
const [accessKey, setAccessKey] = useState('');
const [publicKey, setPublicKey] = useState('');
const [privateKey, setPrivateKey] = useState('');
const [searchServiceAccountFilter, setSearchServiceAccountFilter] = useState('');
const [accessKey, setAccessKey] = useState("");
const [publicKey, setPublicKey] = useState("");
const [privateKey, setPrivateKey] = useState("");
const [searchServiceAccountFilter, setSearchServiceAccountFilter] = useState("");
const { handlePopUpToggle, popUp, handlePopUpOpen, handlePopUpClose } = usePopUp([
'addServiceAccount',
'removeServiceAccount',
"addServiceAccount",
"removeServiceAccount",
] as const);
const { data: serviceAccounts = [], isLoading: isServiceAccountsLoading } = useGetServiceAccounts(orgId);
@@ -128,7 +128,7 @@ export const OrgServiceAccountsTable = () => {
const onRemoveServiceAccount = async () => {
const serviceAccountId = (popUp?.removeServiceAccount?.data as { _id: string })?._id;
await removeServiceAccount.mutateAsync(serviceAccountId);
handlePopUpClose('removeServiceAccount');
handlePopUpClose("removeServiceAccount");
}
const filteredServiceAccounts = useMemo(
@@ -195,7 +195,7 @@ export const OrgServiceAccountsTable = () => {
<Button
colorSchema="secondary"
variant="plain"
onClick={() => handlePopUpClose('addServiceAccount')}
onClick={() => handlePopUpClose("addServiceAccount")}
>
Cancel
</Button>
@@ -283,7 +283,7 @@ export const OrgServiceAccountsTable = () => {
onClick={() => {
setStep(0);
reset();
handlePopUpOpen('addServiceAccount');
handlePopUpOpen("addServiceAccount");
}}
>
Add Service Account
@@ -325,7 +325,7 @@ export const OrgServiceAccountsTable = () => {
<IconButton
ariaLabel="delete"
colorSchema="danger"
onClick={() => handlePopUpOpen('removeServiceAccount', { _id: serviceAccountId })}
onClick={() => handlePopUpOpen("removeServiceAccount", { _id: serviceAccountId })}
>
<FontAwesomeIcon icon={faTrash} />
</IconButton>
@@ -344,7 +344,7 @@ export const OrgServiceAccountsTable = () => {
<Modal
isOpen={popUp?.addServiceAccount?.isOpen}
onOpenChange={(isOpen) => {
handlePopUpToggle('addServiceAccount', isOpen);
handlePopUpToggle("addServiceAccount", isOpen);
reset();
}}
>
@@ -359,7 +359,7 @@ export const OrgServiceAccountsTable = () => {
isOpen={popUp.removeServiceAccount.isOpen}
deleteKey="remove"
title="Do you want to remove this service account from the org?"
onChange={(isOpen) => handlePopUpToggle('removeServiceAccount', isOpen)}
onChange={(isOpen) => handlePopUpToggle("removeServiceAccount", isOpen)}
onDeleteApproved={onRemoveServiceAccount}
/>
</div>
@@ -1 +1 @@
export { OrgServiceAccountsTable } from './OrgServiceAccountsTable';
export { OrgServiceAccountsTable } from "./OrgServiceAccountsTable";
@@ -1,5 +1,5 @@
export { OrgIncidentContactsTable } from './OrgIncidentContactsTable';
export { OrgMembersTable } from './OrgMembersTable';
export { OrgNameChangeSection } from './OrgNameChangeSection';
export { OrgServiceAccountsTable } from './OrgServiceAccountsTable';
export { OrgIncidentContactsTable } from "./OrgIncidentContactsTable";
export { OrgMembersTable } from "./OrgMembersTable";
export { OrgNameChangeSection } from "./OrgNameChangeSection";
export { OrgServiceAccountsTable } from "./OrgServiceAccountsTable";